Rename uic to tquic

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/197/head
Michele Calgaro 2 months ago
parent 8066b05478
commit e93b60dfa2
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -370,7 +370,7 @@ and do some global operations on the project. You can now open the
project file and have one-click access to all the *.ui forms in the project file and have one-click access to all the *.ui forms in the
project. project.
In addition to generating code via uic, TQt Designer now supports the In addition to generating code via tquic, TQt Designer now supports the
dynamic creation of widgets directly from XML user interface dynamic creation of widgets directly from XML user interface
description files (*.ui files) at runtime. This eliminates the need of description files (*.ui files) at runtime. This eliminates the need of
recompiling your application when the GUI changes, and could be used recompiling your application when the GUI changes, and could be used

@ -49,7 +49,7 @@ were done using <a href="designer-manual.html">TQt Designer</a>.
*****************************************************************************/ *****************************************************************************/
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions or slots use ** If you wish to add, delete or rename functions or slots use
** TQt Designer which will update this file, preserving your code. Create an ** TQt Designer which will update this file, preserving your code. Create an

@ -73,8 +73,8 @@ the relevant release of TQt.
<p> <dd>Programmers need to run <em>tqmoc</em> and other tools such as <em>tquic</em>. These <p> <dd>Programmers need to run <em>tqmoc</em> and other tools such as <em>tquic</em>. These
tools are usually located in the <tt>bin</tt> subdirectory of TQt distributions. tools are usually located in the <tt>bin</tt> subdirectory of TQt distributions.
Either run <tt>"$TQTDIR"/bin/tqmoc</tt> and <tt>"$TQTDIR"/bin/tquic</tt> or add <tt>"$TQTDIR"/bin</tt> Either run <tt>"$TQTDIR"/bin/tqmoc</tt> and <tt>"$TQTDIR"/bin/tquic</tt> or add <tt>"$TQTDIR"/bin</tt>
to your <tt>PATH</tt> and run <a href="tqmoc.html#tqmoc">tqmoc</a> and <tt>uic</tt>. If you use <tt>qmake</tt> the to your <tt>PATH</tt> and run <a href="tqmoc.html#tqmoc">tqmoc</a> and <tt>tquic</tt>. If you use <tt>qmake</tt> the
appropriate lines will be added to your Makefiles so that <em>uic</em> and appropriate lines will be added to your Makefiles so that <em>tquic</em> and
<em>tqmoc</em> will be executed as required. <em>tqmoc</em> will be executed as required.
<p> <dt>Static or shared libraries - Link time <p> <dt>Static or shared libraries - Link time
<p> <dd>Programmers need to link with the TQt static or shared libraries. The TQt <p> <dd>Programmers need to link with the TQt static or shared libraries. The TQt

@ -39,7 +39,7 @@ body { background: #ffffff; color: black; }
<li><p>Chapter two, <a href="designer-manual-3.html">Creating a Main Window Application</a>, introduces <em>TQt Designer</em> and takes you step by step through the creation of a small but fully functional application. Along the way you will learn how to create a main window with menus, toolbars and a status bar. Most of the application's implementation will be covered, but the custom dialogs are deferred until chapter three. In the course of this chapter you will use the form and property editors to customize the application. You'll also learn how to use TQt's signals and slots mechanism and <em>TQt Designer</em>'s built-in code editor to make the application functional. We will also explain how to use <tt>qmake</tt> to generate a Makefile so that you can compile and run the application.</p> <li><p>Chapter two, <a href="designer-manual-3.html">Creating a Main Window Application</a>, introduces <em>TQt Designer</em> and takes you step by step through the creation of a small but fully functional application. Along the way you will learn how to create a main window with menus, toolbars and a status bar. Most of the application's implementation will be covered, but the custom dialogs are deferred until chapter three. In the course of this chapter you will use the form and property editors to customize the application. You'll also learn how to use TQt's signals and slots mechanism and <em>TQt Designer</em>'s built-in code editor to make the application functional. We will also explain how to use <tt>qmake</tt> to generate a Makefile so that you can compile and run the application.</p>
<li><p>In chapter three, <a href="designer-manual-4.html">Creating Dialogs</a>, we will create the custom dialogs required by the main window application created in chapter two. In addition to demonstrating various ways of creating dialogs, you will also learn how to lay out forms using the layout tools.</p> <li><p>In chapter three, <a href="designer-manual-4.html">Creating Dialogs</a>, we will create the custom dialogs required by the main window application created in chapter two. In addition to demonstrating various ways of creating dialogs, you will also learn how to lay out forms using the layout tools.</p>
<li><p>Chapter four, <a href="designer-manual-5.html#the-designer-approach">The Designer Approach</a>, provides information on the <em>TQt Designer</em> approach to developing applications, and explains some of the rationale behind <em>TQt Designer</em>.</p> <li><p>Chapter four, <a href="designer-manual-5.html#the-designer-approach">The Designer Approach</a>, provides information on the <em>TQt Designer</em> approach to developing applications, and explains some of the rationale behind <em>TQt Designer</em>.</p>
<li><p>Chapter five, <a href="designer-manual-6.html">Subclassing and Dynamic Dialogs</a>, will show you how to subclass a form; this allows you to clearly separate the user interface from the underlying code that implements its functionality. Additional information on <tt>qmake</tt> and <tt>uic</tt> is included in this chapter. This chapter will also explain how you can dynamically load dialogs from<!-- index .ui --> <tt>.ui</tt> files into your application using <a href="tqwidgetfactory.html">TQWidgetFactory</a> and how to access the widgets and sub-widgets of these dialogs.</p> <li><p>Chapter five, <a href="designer-manual-6.html">Subclassing and Dynamic Dialogs</a>, will show you how to subclass a form; this allows you to clearly separate the user interface from the underlying code that implements its functionality. Additional information on <tt>qmake</tt> and <tt>tquic</tt> is included in this chapter. This chapter will also explain how you can dynamically load dialogs from<!-- index .ui --> <tt>.ui</tt> files into your application using <a href="tqwidgetfactory.html">TQWidgetFactory</a> and how to access the widgets and sub-widgets of these dialogs.</p>
<li><p>Chapter six, <a href="designer-manual-7.html">Creating Custom Widgets</a>, explains how you can create your own custom widgets. Both the simple method, that was introduced with the first version of <em>TQt Designer</em>, and the new more powerful method using plugins, are explained.</p> <li><p>Chapter six, <a href="designer-manual-7.html">Creating Custom Widgets</a>, explains how you can create your own custom widgets. Both the simple method, that was introduced with the first version of <em>TQt Designer</em>, and the new more powerful method using plugins, are explained.</p>
<li><p>Chapter seven, <a href="designer-manual-8.html">Creating Database Applications</a> introduces TQt's SQL classes and takes you through an example that demonstrates how to execute SQL queries and how to set up master-detail relationships, perform drilldown and handle foreign keys.</p> <li><p>Chapter seven, <a href="designer-manual-8.html">Creating Database Applications</a> introduces TQt's SQL classes and takes you through an example that demonstrates how to execute SQL queries and how to set up master-detail relationships, perform drilldown and handle foreign keys.</p>
<li><p>Chapter eight, <a href="designer-manual-9.html">Customizing and Integrating TQt Designer</a>, focuses on <em>TQt Designer</em> itself, showing you how to customize Designer, how to integrate Designer with Visual Studio and how to create Makefiles.</p> <li><p>Chapter eight, <a href="designer-manual-9.html">Customizing and Integrating TQt Designer</a>, focuses on <em>TQt Designer</em> itself, showing you how to customize Designer, how to integrate Designer with Visual Studio and how to create Makefiles.</p>

@ -59,7 +59,7 @@ body { background: #ffffff; color: black; }
<p>The 'Insert Into' drop-down combobox lists the open projects, defaulting to the current project. New files are added to the project displayed in this combobox. To add a new file to a different project, choose the project you want to use in the 'Insert Into' combobox.</p> <p>The 'Insert Into' drop-down combobox lists the open projects, defaulting to the current project. New files are added to the project displayed in this combobox. To add a new file to a different project, choose the project you want to use in the 'Insert Into' combobox.</p>
<p>The 'Dialog' file type is highlighted by default when the <em>New File</em> dialog pops up. Click on the file type you want to use and click <b>OK</b> to create it. Click <b>Cancel</b> to leave the dialog without creating a new file. Note that if you select C++ Project, the 'Insert Into' combobox will be disabled, since it is not possible to insert a new C++ Project into an existing project.</p> <p>The 'Dialog' file type is highlighted by default when the <em>New File</em> dialog pops up. Click on the file type you want to use and click <b>OK</b> to create it. Click <b>Cancel</b> to leave the dialog without creating a new file. Note that if you select C++ Project, the 'Insert Into' combobox will be disabled, since it is not possible to insert a new C++ Project into an existing project.</p>
<h5><a name="3-1-1"></a>C++ Project Files</h5> <h5><a name="3-1-1"></a>C++ Project Files</h5>
<p>Click <b>C++ Project</b> to start a new project. This option invokes the <a href="designer-manual-13.html#5-4">Project Settings Dialog</a>. C++ projects are saved as <tt>.pro</tt> files, which include the information <em>TQt Designer</em> needs to manage projects. When you add a form to your project in <em>TQt Designer</em>, it is automatically added to the FORMS section of the project file. The <tt>.pro</tt> file contains the list of forms (<tt>.ui</tt> files) used in the project. <em>TQt Designer</em> reads and writes <tt>.ui</tt> files, e.g. form.ui. The uic (user interface compiler) creates both a header file, e.g. form.h, and an implementation file, e.g. form.cpp, from the <tt>.ui</tt> file.</p> <p>Click <b>C++ Project</b> to start a new project. This option invokes the <a href="designer-manual-13.html#5-4">Project Settings Dialog</a>. C++ projects are saved as <tt>.pro</tt> files, which include the information <em>TQt Designer</em> needs to manage projects. When you add a form to your project in <em>TQt Designer</em>, it is automatically added to the FORMS section of the project file. The <tt>.pro</tt> file contains the list of forms (<tt>.ui</tt> files) used in the project. <em>TQt Designer</em> reads and writes <tt>.ui</tt> files, e.g. form.ui. The tquic (user interface compiler) creates both a header file, e.g. form.h, and an implementation file, e.g. form.cpp, from the <tt>.ui</tt> file.</p>
<h5><a name="3-1-2"></a>Dialog Forms</h5> <h5><a name="3-1-2"></a>Dialog Forms</h5>
<p>Click <b>Dialog</b> to create a plain dialog form. Typically, this type of form is used to present the user with configuration options, or to present related sets of choices, for example, printer setting dialogs and find and replace dialogs.</p> <p>Click <b>Dialog</b> to create a plain dialog form. Typically, this type of form is used to present the user with configuration options, or to present related sets of choices, for example, printer setting dialogs and find and replace dialogs.</p>
<h5><a name="3-1-3"></a>Wizard Forms</h5> <h5><a name="3-1-3"></a>Wizard Forms</h5>
@ -144,7 +144,7 @@ body { background: #ffffff; color: black; }
<h5><a name="4-3-1"></a>Settings</h5> <h5><a name="4-3-1"></a>Settings</h5>
<p>In the Settings section, you can change or add the name of the class that will be created by typing in the 'Class Name' line edit. Note that the default name is the form name, but it can be changed. You can also enter text to the 'Comment' and 'Author' line edits or leave them blank, since they are not required.</p> <p>In the Settings section, you can change or add the name of the class that will be created by typing in the 'Class Name' line edit. Note that the default name is the form name, but it can be changed. You can also enter text to the 'Comment' and 'Author' line edits or leave them blank, since they are not required.</p>
<h5><a name="4-3-2"></a>Pixmaps</h5> <h5><a name="4-3-2"></a>Pixmaps</h5>
<p>The default (for projects) is 'Project Imagefile'. This is the recommended option. Images are handled automatically, with <em>TQt Designer</em> storing the images in a subdirectory, and <tt>uic</tt> producing code that contains the images and the necessary supporting code. Each image is stored just once, no matter how many forms it is used in.</p> <p>The default (for projects) is 'Project Imagefile'. This is the recommended option. Images are handled automatically, with <em>TQt Designer</em> storing the images in a subdirectory, and <tt>tquic</tt> producing code that contains the images and the necessary supporting code. Each image is stored just once, no matter how many forms it is used in.</p>
<p>If you do not want <em>TQt Designer</em> to handle the images, (or are not using a project) choose either 'Save Inline' or 'Use Function'. 'Save Inline' saves the pixmaps in the <tt>.ui</tt> files. The disadvantage of this approach is that it stores images in the forms in which they're used, meaning that images cannot be shared across forms. Click 'Use Function' to use your own icon-loader function for loading pixmaps. Type the function's name (with no signature) in the 'Use Function' line edit. This function will be used in the generated code for loading pixmaps. Your function will be called with the text you put in the pixmap property (e.g. the image name) whenever an image is required.</p> <p>If you do not want <em>TQt Designer</em> to handle the images, (or are not using a project) choose either 'Save Inline' or 'Use Function'. 'Save Inline' saves the pixmaps in the <tt>.ui</tt> files. The disadvantage of this approach is that it stores images in the forms in which they're used, meaning that images cannot be shared across forms. Click 'Use Function' to use your own icon-loader function for loading pixmaps. Type the function's name (with no signature) in the 'Use Function' line edit. This function will be used in the generated code for loading pixmaps. Your function will be called with the text you put in the pixmap property (e.g. the image name) whenever an image is required.</p>
<h5><a name="4-3-3"></a>Layouts</h5> <h5><a name="4-3-3"></a>Layouts</h5>
<p>Click the 'Default Margin' spinbox or the 'Default Spacing' spinbox to change the default layout settings of the current form.</p> <p>Click the 'Default Margin' spinbox or the 'Default Spacing' spinbox to change the default layout settings of the current form.</p>

@ -185,7 +185,7 @@ body { background: #ffffff; color: black; }
<p>If you have a class that requires some Windows-specific export macro, e.g. for classes in a DLL that need to be declared like this: <tt>class win_specific_declaration_goes_here Class</tt>, you can use the <tt>&lt;exportmacro&gt;</tt> tag. (In standard TQt we use the <tt>TQ_EXPORT</tt> macro, e.g. <tt>class TQ_EXPORT TQWidget</tt>.) If you use this tag you must also:</p> <p>If you have a class that requires some Windows-specific export macro, e.g. for classes in a DLL that need to be declared like this: <tt>class win_specific_declaration_goes_here Class</tt>, you can use the <tt>&lt;exportmacro&gt;</tt> tag. (In standard TQt we use the <tt>TQ_EXPORT</tt> macro, e.g. <tt>class TQ_EXPORT TQWidget</tt>.) If you use this tag you must also:</p>
<ol type=1><li><p><a href="designer-manual-16.html#1-11">include</a> the file which contains the macro definition;</p> <ol type=1><li><p><a href="designer-manual-16.html#1-11">include</a> the file which contains the macro definition;</p>
<li><p>add the export macro to the form -- this is achieved by entering the macro's name in the 'export macro' sub-property of the form's name property.</p> <li><p>add the export macro to the form -- this is achieved by entering the macro's name in the 'export macro' sub-property of the form's name property.</p>
</ol><p>Following these steps will ensure that <a href="uic.html">uic</a> will create the correct <tt>class YOUR_MACRO Form</tt> declarations.</p> </ol><p>Following these steps will ensure that <a href="tquic.html">tquic</a> will create the correct <tt>class YOUR_MACRO Form</tt> declarations.</p>
<pre> <pre>
&lt;exportmacro&gt;EDITOR_EXPORT&lt;/exportmacro&gt; &lt;exportmacro&gt;EDITOR_EXPORT&lt;/exportmacro&gt;
</pre> </pre>

@ -32,7 +32,7 @@ body { background: #ffffff; color: black; }
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><p align="right">[<a href="designer-manual-4.html">Prev: Creating Dialogs</a>] [<a href="designer-manual.html">Home</a>] [<a href="designer-manual-6.html">Next: Subclassing and Dynamic Dialogs</a>]</p> <td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><p align="right">[<a href="designer-manual-4.html">Prev: Creating Dialogs</a>] [<a href="designer-manual.html">Home</a>] [<a href="designer-manual-6.html">Next: Subclassing and Dynamic Dialogs</a>]</p>
<h2 align="center"> The Designer Approach</h2> <h2 align="center"> The Designer Approach</h2>
<a name="the-designer-approach"></a><h3><a name="1"></a>Introduction</h3> <a name="the-designer-approach"></a><h3><a name="1"></a>Introduction</h3>
<p>In TQt 2.x, <em>TQt Designer</em> was a visual form designer for editing files in the <tt>.ui</tt> file format. <em>TQt Designer</em>'s primary goal was to turn the most tedious part of GUI programming -- dialog design -- into a pleasant experience. From an architectural point of view, <em>TQt Designer</em> in 2.x is a fairly simple program. It reads and writes <tt>.ui</tt> files. Each <tt>.ui</tt> file contains an XML description of a single dialog form. A second utility -- the user interface compiler <tt>uic</tt> -- is used during the build process of an application to generate C++ code from those XML descriptions.</p> <p>In TQt 2.x, <em>TQt Designer</em> was a visual form designer for editing files in the <tt>.ui</tt> file format. <em>TQt Designer</em>'s primary goal was to turn the most tedious part of GUI programming -- dialog design -- into a pleasant experience. From an architectural point of view, <em>TQt Designer</em> in 2.x is a fairly simple program. It reads and writes <tt>.ui</tt> files. Each <tt>.ui</tt> file contains an XML description of a single dialog form. A second utility -- the user interface compiler <tt>tquic</tt> -- is used during the build process of an application to generate C++ code from those XML descriptions.</p>
<p>For TQt 3.0 our ambitions for <em>TQt Designer</em> have grown beyond single dialog editing. In addition to many new design features like the ability to creating main windows and actions, the new version introduces:</p> <p>For TQt 3.0 our ambitions for <em>TQt Designer</em> have grown beyond single dialog editing. In addition to many new design features like the ability to creating main windows and actions, the new version introduces:</p>
<ul><li><p><em>project management</em> for the user interface part of your application;</p> <ul><li><p><em>project management</em> for the user interface part of your application;</p>
<li><p><em>code in forms</em> <em>TQt Designer</em> provides a code editor so that you can code your slots directly; the code is stored in <tt>.ui.h</tt> files and eliminates the need for sub-classing (although you can still subclass if you prefer);</p> <li><p><em>code in forms</em> <em>TQt Designer</em> provides a code editor so that you can code your slots directly; the code is stored in <tt>.ui.h</tt> files and eliminates the need for sub-classing (although you can still subclass if you prefer);</p>
@ -58,35 +58,35 @@ body { background: #ffffff; color: black; }
<p>When you've opened or created a project you can set up its database connections using the <em>Edit Database Connections</em> dialog (invoked by the <b>Project|Database Connections</b> menu option). The connections you make are stored in a <tt>.db</tt> file. When you reload a project you can reconnect by going to the <em>Edit Database Connections</em> dialog, clicking a connection in the list and clicking the <b>Connect</b> button.</p> <p>When you've opened or created a project you can set up its database connections using the <em>Edit Database Connections</em> dialog (invoked by the <b>Project|Database Connections</b> menu option). The connections you make are stored in a <tt>.db</tt> file. When you reload a project you can reconnect by going to the <em>Edit Database Connections</em> dialog, clicking a connection in the list and clicking the <b>Connect</b> button.</p>
<p>In most non-trivial database applications you will want to access the database from more than one form. This is why the <tt>.db</tt> file is part of a project, not just part of a single form.</p> <p>In most non-trivial database applications you will want to access the database from more than one form. This is why the <tt>.db</tt> file is part of a project, not just part of a single form.</p>
<h4><a name="2-4"></a>.pro files</h4> <h4><a name="2-4"></a>.pro files</h4>
<p><em>TQt Designer</em> needs to store information on projects, for example, the list of forms, the image collection and information about available databases and how to access them. The majority of TQt users already use a project file format to create multiplatform makefiles: <tt>tmake</tt> (and with TQt 3.0 <tt>qmake</tt>) project <tt>.pro</tt> files. These files already contain the list of forms, <tt>.ui</tt> files, used in the project for <tt>uic</tt>.</p> <p><em>TQt Designer</em> needs to store information on projects, for example, the list of forms, the image collection and information about available databases and how to access them. The majority of TQt users already use a project file format to create multiplatform makefiles: <tt>tmake</tt> (and with TQt 3.0 <tt>qmake</tt>) project <tt>.pro</tt> files. These files already contain the list of forms, <tt>.ui</tt> files, used in the project for <tt>tquic</tt>.</p>
<p>We've extended the sections in the <tt>.pro</tt> file to include the extra information that <em>TQt Designer</em> needs to manage projects. For example, when you add a form to your project in <em>TQt Designer</em>, it is automatically added to the FORMS section of the project file, and thus <tt>qmake</tt> will generate the required build rules without any further work. Similarly, the images are added to the IMAGES section and thus gets automatically compiled into your executable.</p> <p>We've extended the sections in the <tt>.pro</tt> file to include the extra information that <em>TQt Designer</em> needs to manage projects. For example, when you add a form to your project in <em>TQt Designer</em>, it is automatically added to the FORMS section of the project file, and thus <tt>qmake</tt> will generate the required build rules without any further work. Similarly, the images are added to the IMAGES section and thus gets automatically compiled into your executable.</p>
<p>We don't force you to use <tt>qmake</tt>; if you prefer another build system, for example automake/autoconf or jam, you can still continue to use it. Look upon the <tt>.pro</tt> file as a file that describes the GUI part of your application. All you need to do -- as previously -- is add the <tt>.ui</tt> files and the images collection to your own Makefiles.</p> <p>We don't force you to use <tt>qmake</tt>; if you prefer another build system, for example automake/autoconf or jam, you can still continue to use it. Look upon the <tt>.pro</tt> file as a file that describes the GUI part of your application. All you need to do -- as previously -- is add the <tt>.ui</tt> files and the images collection to your own Makefiles.</p>
<h3><a name="3"></a>Extending the functionality of a form</h3> <h3><a name="3"></a>Extending the functionality of a form</h3>
<p>First let us look at a small figure that shows the relationship between <tt>.ui</tt> files, generated code and application code:</p> <p>First let us look at a small figure that shows the relationship between <tt>.ui</tt> files, generated code and application code:</p>
<p align="center"><img align="middle" src="designer1.jpg"> <p align="center"><img align="middle" src="designer1.jpg">
</p> </p>
<p><em>TQt Designer</em> reads and writes <tt>.ui</tt> files, e.g. <tt>form.ui</tt>. The user interface compiler, <tt>uic</tt>, creates both a header file, e.g. <tt>form.h</tt>, and an implementation file, e.g. <tt>form.cpp</tt>, from the <tt>.ui</tt> file. The application code in <tt>main.cpp</tt> <tt>#include</tt>s <tt>form.h</tt>. Typically <tt>main.cpp</tt> is used to instantiate the TQApplication object and start off the event loop.</p> <p><em>TQt Designer</em> reads and writes <tt>.ui</tt> files, e.g. <tt>form.ui</tt>. The user interface compiler, <tt>tquic</tt>, creates both a header file, e.g. <tt>form.h</tt>, and an implementation file, e.g. <tt>form.cpp</tt>, from the <tt>.ui</tt> file. The application code in <tt>main.cpp</tt> <tt>#include</tt>s <tt>form.h</tt>. Typically <tt>main.cpp</tt> is used to instantiate the TQApplication object and start off the event loop.</p>
<p>While this approach is simple, it isn't sufficient for more complex dialogs. Complex dialogs tend to have quite a lot of logic attached to the form's widgets, more logic than can usually be expressed with predefined signals and slots. One way of handling this extra logic is to write a controller class in the application code that adds functionality to the form. This is possible because <tt>uic</tt> generated classes expose a form's controls and their signals to the public space. The big disadvantage of this method is that it's not exactly TQt-style. If you were not using <em>TQt Designer</em>, you would almost always add the logic to the form itself, where it belongs.</p> <p>While this approach is simple, it isn't sufficient for more complex dialogs. Complex dialogs tend to have quite a lot of logic attached to the form's widgets, more logic than can usually be expressed with predefined signals and slots. One way of handling this extra logic is to write a controller class in the application code that adds functionality to the form. This is possible because <tt>tquic</tt> generated classes expose a form's controls and their signals to the public space. The big disadvantage of this method is that it's not exactly TQt-style. If you were not using <em>TQt Designer</em>, you would almost always add the logic to the form itself, where it belongs.</p>
<p>This is why the capability of adding custom slots and member variables to a form was added to <em>TQt Designer</em> early on. The big additional benefit with this approach is that you can use <em>TQt Designer</em> to connect signals to those custom slots, in the same elegant graphical way that is used to connect signals to predefined slots. The <tt>uic</tt> then adds an empty stub for each custom slot to the generated <tt>form.cpp</tt> implementation file.</p> <p>This is why the capability of adding custom slots and member variables to a form was added to <em>TQt Designer</em> early on. The big additional benefit with this approach is that you can use <em>TQt Designer</em> to connect signals to those custom slots, in the same elegant graphical way that is used to connect signals to predefined slots. The <tt>tquic</tt> then adds an empty stub for each custom slot to the generated <tt>form.cpp</tt> implementation file.</p>
<p>The big question now is how to add custom implementation code to those custom slots. Adding code to the generated <tt>form.cpp</tt> is not an option, as this file gets recreated by the <tt>uic</tt> whenever the form changes -- and we don't want a combination of generated and handwritten code. There are two possible solutions, which we'll cover next.</p> <p>The big question now is how to add custom implementation code to those custom slots. Adding code to the generated <tt>form.cpp</tt> is not an option, as this file gets recreated by the <tt>tquic</tt> whenever the form changes -- and we don't want a combination of generated and handwritten code. There are two possible solutions, which we'll cover next.</p>
<h4><a name="3-1"></a>The subclassing approach</h4> <h4><a name="3-1"></a>The subclassing approach</h4>
<p>A very clean way to implement custom slots for generated forms is via C++ inheritance as shown in the next figure:</p> <p>A very clean way to implement custom slots for generated forms is via C++ inheritance as shown in the next figure:</p>
<p align="center"><img align="middle" src="designer2.jpg"> <p align="center"><img align="middle" src="designer2.jpg">
</p> </p>
<p>Here the user wrote an additional class <b>FormImpl</b>, which is split into the header file <tt>formimpl.h</tt> and the implementation file <tt>formimpl.cpp</tt>. The header file includes the <tt>uic</tt> generated <tt>form.h</tt> and reimplements all the custom slots. This is possible because <tt>uic</tt> generated custom slots are virtual. In addition to implementing custom slots, this approach gives the user a way to do extra initialization work in the constructor of the subclass, and extra cleanups in the destructor.</p> <p>Here the user wrote an additional class <b>FormImpl</b>, which is split into the header file <tt>formimpl.h</tt> and the implementation file <tt>formimpl.cpp</tt>. The header file includes the <tt>tquic</tt> generated <tt>form.h</tt> and reimplements all the custom slots. This is possible because <tt>tquic</tt> generated custom slots are virtual. In addition to implementing custom slots, this approach gives the user a way to do extra initialization work in the constructor of the subclass, and extra cleanups in the destructor.</p>
<p>Because of these benefits and its flexibility, this approach became the primary way of using <em>TQt Designer</em> in TQt 2.x.</p> <p>Because of these benefits and its flexibility, this approach became the primary way of using <em>TQt Designer</em> in TQt 2.x.</p>
<p><b>Note:</b> To keep the namespace clean, most users did not follow the Form and FormImpl naming scheme shown in the figure, but instead named their <em>TQt Designer</em> forms FormBase and their subclasses Form. This made a lot of sense, because they always subclassed and were using those subclasses in application code.</p> <p><b>Note:</b> To keep the namespace clean, most users did not follow the Form and FormImpl naming scheme shown in the figure, but instead named their <em>TQt Designer</em> forms FormBase and their subclasses Form. This made a lot of sense, because they always subclassed and were using those subclasses in application code.</p>
<h4><a name="3-2"></a>The ui.h extension approach</h4> <h4><a name="3-2"></a>The ui.h extension approach</h4>
<p>Despite its flexibility and cleanness, the subclassing approach has some disadvantages:</p> <p>Despite its flexibility and cleanness, the subclassing approach has some disadvantages:</p>
<ul><li><p>Subclassing is not natural and easy for everybody. Newcomers to object-oriented techniques may feel uneasy about being <em>forced</em> to subclass for such a simple and natural thing like the implementation of a custom slot.</p> <ul><li><p>Subclassing is not natural and easy for everybody. Newcomers to object-oriented techniques may feel uneasy about being <em>forced</em> to subclass for such a simple and natural thing like the implementation of a custom slot.</p>
<li><p>Inheriting generated classes is an additional possible source of programming mistakes, especially if the number of reimplemented functions is high and the signatures change often during the design process. To make the development process smoother, <tt>uic</tt> generates empty stubs for custom slots rather than pure virtual functions. While this approach keeps the code compiling and running, programmers can find themselves in a situation where they miss a runtime warning message and lose time before they find a small spelling error in their subclass.</p> <li><p>Inheriting generated classes is an additional possible source of programming mistakes, especially if the number of reimplemented functions is high and the signatures change often during the design process. To make the development process smoother, <tt>tquic</tt> generates empty stubs for custom slots rather than pure virtual functions. While this approach keeps the code compiling and running, programmers can find themselves in a situation where they miss a runtime warning message and lose time before they find a small spelling error in their subclass.</p>
<li><p>In larger projects with hundreds of forms, the additional subclasses can make a noticeable difference in terms of compilation speed and code size.</p> <li><p>In larger projects with hundreds of forms, the additional subclasses can make a noticeable difference in terms of compilation speed and code size.</p>
</ul><p>There may be more disadvantages, but these were reason enough for us to investigate alternative solutions. For TQt 3.0, we came up with a new concept, the <em>ui.h extension</em>.</p> </ul><p>There may be more disadvantages, but these were reason enough for us to investigate alternative solutions. For TQt 3.0, we came up with a new concept, the <em>ui.h extension</em>.</p>
<p>This is how it works:</p> <p>This is how it works:</p>
<p align="center"><img align="middle" src="designer3.jpg"> <p align="center"><img align="middle" src="designer3.jpg">
</p> </p>
<p>In addition to the <tt>.ui</tt> file, <tt>form.ui</tt>, <em>TQt Designer</em> reads and writes another associated file <tt>form.ui.h</tt>. This <tt>.ui.h</tt> file is an <em>ordinary C++ source file</em> that contains <em>implementations</em> of custom slots. The file gets included from the generated form implementation file <tt>form.cpp</tt> and thus can be totally ignored by other user code. The reason we use a <tt>.h</tt> extension for the <tt>.ui.h</tt> file even though it contains C++ code is because it is always <em>included</em>, and because it is easier to integrate into the build process with a <tt>.h</tt> extension.</p> <p>In addition to the <tt>.ui</tt> file, <tt>form.ui</tt>, <em>TQt Designer</em> reads and writes another associated file <tt>form.ui.h</tt>. This <tt>.ui.h</tt> file is an <em>ordinary C++ source file</em> that contains <em>implementations</em> of custom slots. The file gets included from the generated form implementation file <tt>form.cpp</tt> and thus can be totally ignored by other user code. The reason we use a <tt>.h</tt> extension for the <tt>.ui.h</tt> file even though it contains C++ code is because it is always <em>included</em>, and because it is easier to integrate into the build process with a <tt>.h</tt> extension.</p>
<p>The <tt>form.ui.h</tt> file has a special position among all other files. It is a <em>shared</em> source file that gets written and read by both the user and <em>TQt Designer</em>. As such it is an ordinary revision controlled source file and not generated by <tt>uic</tt>. <em>TQt Designer</em>'s responsibility is to keep the file in sync with the custom slot definitions of the associated form:</p> <p>The <tt>form.ui.h</tt> file has a special position among all other files. It is a <em>shared</em> source file that gets written and read by both the user and <em>TQt Designer</em>. As such it is an ordinary revision controlled source file and not generated by <tt>tquic</tt>. <em>TQt Designer</em>'s responsibility is to keep the file in sync with the custom slot definitions of the associated form:</p>
<ol type=1><li><p>Whenever the users adds a new slots to the form, <em>TQt Designer</em> adds a stub to the <tt>.ui.h</tt> file.</p> <ol type=1><li><p>Whenever the users adds a new slots to the form, <em>TQt Designer</em> adds a stub to the <tt>.ui.h</tt> file.</p>
<li><p>Whenever the user changes a custom slot's signature, <em>TQt Designer</em> updates the corresponding implementation.</p> <li><p>Whenever the user changes a custom slot's signature, <em>TQt Designer</em> updates the corresponding implementation.</p>
<li><p>Whenever the user removes a custom slot, <em>TQt Designer</em> removes it from the <tt>.ui.h</tt> file.</p> <li><p>Whenever the user removes a custom slot, <em>TQt Designer</em> removes it from the <tt>.ui.h</tt> file.</p>

@ -35,7 +35,7 @@ body { background: #ffffff; color: black; }
<h3><a name="1"></a>Subclassing</h3> <h3><a name="1"></a>Subclassing</h3>
<p>We'll start with a general description of how to subclass a form and follow with a short example. Note that subclassing has some disadvantages compared with putting your code into a form directly; see <a href="designer-manual-5.html#3">Extending the functionality of a form</a> in <a href="designer-manual-5.html#the-designer-approach">The Designer Approach</a> chapter for details.</p> <p>We'll start with a general description of how to subclass a form and follow with a short example. Note that subclassing has some disadvantages compared with putting your code into a form directly; see <a href="designer-manual-5.html#3">Extending the functionality of a form</a> in <a href="designer-manual-5.html#the-designer-approach">The Designer Approach</a> chapter for details.</p>
<h4><a name="1-1"></a>Generating Source Code from <em>TQt Designer</em> .ui Files</h4> <h4><a name="1-1"></a>Generating Source Code from <em>TQt Designer</em> .ui Files</h4>
<p><em>TQt Designer</em> reads and writes <tt>qmake</tt><!-- index .pro --> <tt>.pro</tt> (project) files which are used to record the files used to build the application and from which Makefiles are generated. <em>TQt Designer</em> also reads and writes<!-- index .ui --> <tt>.ui</tt> (user interface) files. These are XML files that record the widgets, layouts, source code and settings you've used for a form. Every<!-- index .ui --> <tt>.ui</tt> file is converted by the <tt>uic</tt> (user interface compiler) into a C++<!-- index .h --> <tt>.h</tt> file and a C++<!-- index .cpp --> <tt>.cpp</tt> file. These C++ files are then read by <tt>tqmoc</tt> (meta object compiler), and finally compiled by your compiler into a working application.</p> <p><em>TQt Designer</em> reads and writes <tt>qmake</tt><!-- index .pro --> <tt>.pro</tt> (project) files which are used to record the files used to build the application and from which Makefiles are generated. <em>TQt Designer</em> also reads and writes<!-- index .ui --> <tt>.ui</tt> (user interface) files. These are XML files that record the widgets, layouts, source code and settings you've used for a form. Every<!-- index .ui --> <tt>.ui</tt> file is converted by the <tt>tquic</tt> (user interface compiler) into a C++<!-- index .h --> <tt>.h</tt> file and a C++<!-- index .cpp --> <tt>.cpp</tt> file. These C++ files are then read by <tt>tqmoc</tt> (meta object compiler), and finally compiled by your compiler into a working application.</p>
<!-- index Makefiles --><!-- index Projects!Adding Files --><!-- index Adding!Files to Projects --><p>If you create applications wholly within <em>TQt Designer</em> you only need to create a<!-- index main.cpp --> <tt>main.cpp</tt>.</p> <!-- index Makefiles --><!-- index Projects!Adding Files --><!-- index Adding!Files to Projects --><p>If you create applications wholly within <em>TQt Designer</em> you only need to create a<!-- index main.cpp --> <tt>main.cpp</tt>.</p>
<p>If you create the <tt>main.cpp</tt> file within <em>TQt Designer</em>, it will automatically be added to your project file by <em>TQt Designer</em>. If you create the <tt>main.cpp</tt> file outside of <em>TQt Designer</em> you must add it to the project file manually by adding the following line at the end of your project's<!-- index .pro --> <tt>.pro</tt> file:</p> <p>If you create the <tt>main.cpp</tt> file within <em>TQt Designer</em>, it will automatically be added to your project file by <em>TQt Designer</em>. If you create the <tt>main.cpp</tt> file outside of <em>TQt Designer</em> you must add it to the project file manually by adding the following line at the end of your project's<!-- index .pro --> <tt>.pro</tt> file:</p>
<pre> <pre>

@ -107,7 +107,7 @@ DBFILE = vcr.db
<p>Incorporating custom widgets that have their own slots and properties is achieved in a similar way to adding signals. All the required information is in our custom widget's header file.</p> <p>Incorporating custom widgets that have their own slots and properties is achieved in a similar way to adding signals. All the required information is in our custom widget's header file.</p>
<a name="creatingplugins"></a><h3><a name="2"></a>Creating Custom Widgets with Plugins</h3> <a name="creatingplugins"></a><h3><a name="2"></a>Creating Custom Widgets with Plugins</h3>
<!-- index Custom Widgets!Plugins --><!-- index Plugins!Implementing Custom Widgets --><p>This section will show you how to write a custom widget and how to embed the custom widget into a plugin. There are no restrictions or special considerations that must be taken into account when creating a widget that is destined to become a plugin. If you are an experienced TQt programmer you can safely skip the section on creating a custom widget and go directly to <a href="designer-manual-7.html#2-2">Creating a Plugin</a>.</p> <!-- index Custom Widgets!Plugins --><!-- index Plugins!Implementing Custom Widgets --><p>This section will show you how to write a custom widget and how to embed the custom widget into a plugin. There are no restrictions or special considerations that must be taken into account when creating a widget that is destined to become a plugin. If you are an experienced TQt programmer you can safely skip the section on creating a custom widget and go directly to <a href="designer-manual-7.html#2-2">Creating a Plugin</a>.</p>
<p>Be aware that if you use the plugin approach to custom widgets, the plugin needs to be available not only to <em>TQt Designer</em> but also to <tt>uic</tt> at compile-time.</p> <p>Be aware that if you use the plugin approach to custom widgets, the plugin needs to be available not only to <em>TQt Designer</em> but also to <tt>tquic</tt> at compile-time.</p>
<h4><a name="2-1"></a>Creating a Custom Widget</h4> <h4><a name="2-1"></a>Creating a Custom Widget</h4>
<!-- index Creating Custom Widgets --><!-- index Widgets!Creating a Custom Widget --><!-- index Subclassing!Widgets --><p>A custom widget is often a specialization (subclass) of another widget or a combination of widgets working together or a blend of both these approaches. If you simply want a collection of widgets in a particular configuration it is easiest to create them, select them as a group, and copy and paste them as required within <em>TQt Designer</em>. Custom widgets are generally created when you need to add new functionality to existing widgets or groups of widgets.</p> <!-- index Creating Custom Widgets --><!-- index Widgets!Creating a Custom Widget --><!-- index Subclassing!Widgets --><p>A custom widget is often a specialization (subclass) of another widget or a combination of widgets working together or a blend of both these approaches. If you simply want a collection of widgets in a particular configuration it is easiest to create them, select them as a group, and copy and paste them as required within <em>TQt Designer</em>. Custom widgets are generally created when you need to add new functionality to existing widgets or groups of widgets.</p>
<!-- index Properties!Creating Custom Properties --><p>We have two recommendations that you should consider when creating a custom widget for a plugin:</p> <!-- index Properties!Creating Custom Properties --><p>We have two recommendations that you should consider when creating a custom widget for a plugin:</p>

@ -111,20 +111,20 @@ body { background: #ffffff; color: black; }
<p>If you wish to delete the add-in remove it from the toolbar then delete the<!-- index qmsdev.dll --> <tt>qmsdev.dll</tt> file from the add-ins directory.</p> <p>If you wish to delete the add-in remove it from the toolbar then delete the<!-- index qmsdev.dll --> <tt>qmsdev.dll</tt> file from the add-ins directory.</p>
<h4><a name="3-1"></a>Creating Makefiles without qmake</h4> <h4><a name="3-1"></a>Creating Makefiles without qmake</h4>
<!-- index Makefiles --><p>The <tt>qmake</tt> tool provided with TQt can create Makefiles appropriate to your platform based on<!-- index .pro --> <tt>.pro</tt> project files. This section describes the dependencies involved in building a TQt application and gives a couple of simple example Makefiles. This section assumes that you have a good understanding of Makefiles.</p> <!-- index Makefiles --><p>The <tt>qmake</tt> tool provided with TQt can create Makefiles appropriate to your platform based on<!-- index .pro --> <tt>.pro</tt> project files. This section describes the dependencies involved in building a TQt application and gives a couple of simple example Makefiles. This section assumes that you have a good understanding of Makefiles.</p>
<!-- index Macros!TQ_OBJECT --><!-- index TQ_OBJECT --><p><em>TQt Designer</em> produces<!-- index .ui --> <tt>.ui</tt> files which are used to generate<!-- index .h --> <tt>.h</tt> and<!-- index .cpp --> <tt>.cpp</tt> files for the compiler to compile. The<!-- index .ui --> <tt>.ui</tt> files are processed by <tt>uic</tt>. Classes which inherit from <a href="tqobject.html">TQObject</a>, e.g. those which use slots and signals, require an additional<!-- index .cpp --> <tt>.cpp</tt> file to be generated. These files are generated by <tt>tqmoc</tt> and are named '<em>tqmoc_</em>file.cpp' where the original<!-- index .cpp --> <tt>.cpp</tt> file is called 'file.cpp'. If your<!-- index .cpp --> <tt>.cpp</tt> file contains the <tt>TQ_OBJECT</tt> macro an additional file 'file.moc' should be generated which must be <tt>#include</tt>d in the<!-- index .cpp --> <tt>.cpp</tt>, normally at the end. This requires an extra dependency being created.</p> <!-- index Macros!TQ_OBJECT --><!-- index TQ_OBJECT --><p><em>TQt Designer</em> produces<!-- index .ui --> <tt>.ui</tt> files which are used to generate<!-- index .h --> <tt>.h</tt> and<!-- index .cpp --> <tt>.cpp</tt> files for the compiler to compile. The<!-- index .ui --> <tt>.ui</tt> files are processed by <tt>tquic</tt>. Classes which inherit from <a href="tqobject.html">TQObject</a>, e.g. those which use slots and signals, require an additional<!-- index .cpp --> <tt>.cpp</tt> file to be generated. These files are generated by <tt>tqmoc</tt> and are named '<em>tqmoc_</em>file.cpp' where the original<!-- index .cpp --> <tt>.cpp</tt> file is called 'file.cpp'. If your<!-- index .cpp --> <tt>.cpp</tt> file contains the <tt>TQ_OBJECT</tt> macro an additional file 'file.moc' should be generated which must be <tt>#include</tt>d in the<!-- index .cpp --> <tt>.cpp</tt>, normally at the end. This requires an extra dependency being created.</p>
<p>Processing<!-- index .ui --> <tt>.ui</tt> files with <tt>uic</tt> is done <em>twice</em>:</p> <p>Processing<!-- index .ui --> <tt>.ui</tt> files with <tt>tquic</tt> is done <em>twice</em>:</p>
<pre> <pre>
uic myform.ui -o myform.h tquic myform.ui -o myform.h
uic myform.ui -i myform.h -o myform.cpp tquic myform.ui -i myform.h -o myform.cpp
</pre> </pre>
<p>The first execution creates the header file, the second creates the<!-- index .cpp --> <tt>.cpp</tt> file. If you wish to subclass a form you can use <tt>uic</tt> to generate subclass skeletons:</p> <p>The first execution creates the header file, the second creates the<!-- index .cpp --> <tt>.cpp</tt> file. If you wish to subclass a form you can use <tt>tquic</tt> to generate subclass skeletons:</p>
<pre> <pre>
uic formbase.ui -o formbase.h tquic formbase.ui -o formbase.h
uic formbase.ui -i formbase.h -o formbase.cpp tquic formbase.ui -i formbase.h -o formbase.cpp
uic -subdecl Form formbase.h formbase.ui -o form.h tquic -subdecl Form formbase.h formbase.ui -o form.h
uic -subimpl Form form.h formbase.ui -o form.cpp tquic -subimpl Form form.h formbase.ui -o form.cpp
</pre> </pre>
<p>First we generate the header and implementation file for our base class. Then we generate the header and implementation skeletons for our subclass. Note that the use of <tt>uic</tt> to generate skeletons is not something that would be done in a Makefile, we mention it here because it can be useful for command line users. Note also that the command line for <tt>-subdecl</tt> and for <tt>-subimpl</tt> are subtly different.</p> <p>First we generate the header and implementation file for our base class. Then we generate the header and implementation skeletons for our subclass. Note that the use of <tt>tquic</tt> to generate skeletons is not something that would be done in a Makefile, we mention it here because it can be useful for command line users. Note also that the command line for <tt>-subdecl</tt> and for <tt>-subimpl</tt> are subtly different.</p>
<p>For implementation files that contain classes which inherit from <a href="tqobject.html">TQObject</a> we must create tqmoc files:</p> <p>For implementation files that contain classes which inherit from <a href="tqobject.html">TQObject</a> we must create tqmoc files:</p>
<pre> <pre>
tqmoc myform.h -o tqmoc_myform.cpp tqmoc myform.h -o tqmoc_myform.cpp
@ -147,12 +147,12 @@ myform.o: myform.cpp
g++ -o myform.o myform.cpp g++ -o myform.o myform.cpp
myform.cpp: myform.h myform.ui myform.cpp: myform.h myform.ui
uic myform.ui -i myform.h -o myform.cpp tquic myform.ui -i myform.h -o myform.cpp
myform.h: myform.ui myform.h: myform.ui
uic myform.ui -o myform.h tquic myform.ui -o myform.h
</pre> </pre>
<p>Note that you may need to include the full path to the commands in your Makefile, and under Windows the filenames are<!-- index tqmoc.exe --> <tt>tqmoc.exe</tt> and<!-- index uic.exe --> <tt>uic.exe</tt>.</p> <p>Note that you may need to include the full path to the commands in your Makefile, and under Windows the filenames are<!-- index tqmoc.exe --> <tt>tqmoc.exe</tt> and<!-- index tquic.exe --> <tt>tquic.exe</tt>.</p>
<p>In Unix/Linux environments the <tt>make</tt> command may be able to do more for us, so we should be able to use a simpler Makefile like this:</p> <p>In Unix/Linux environments the <tt>make</tt> command may be able to do more for us, so we should be able to use a simpler Makefile like this:</p>
<pre> <pre>
myapp: tqmoc_myform.o myform.o main.o myapp: tqmoc_myform.o myform.o main.o
@ -165,10 +165,10 @@ tqmoc_%.cpp: %.h
tqmoc $^ -o $@ tqmoc $^ -o $@
myform.cpp: myform.h myform.ui myform.cpp: myform.h myform.ui
uic myform.ui -i myform.h -o myform.cpp tquic myform.ui -i myform.h -o myform.cpp
myform.h: myform.ui myform.h: myform.ui
uic myform.ui -o myform.h tquic myform.ui -o myform.h
</pre> </pre>
<p>To see more sophisticated Makefiles simply generate them using <tt>qmake</tt> on any of your TQt projects or any of the examples supplied with TQt.</p> <p>To see more sophisticated Makefiles simply generate them using <tt>qmake</tt> on any of your TQt projects or any of the examples supplied with TQt.</p>
<h3><a name="4"></a>Importing Foreign File Formats</h3> <h3><a name="4"></a>Importing Foreign File Formats</h3>

@ -54,7 +54,7 @@ distributed with TQt.
<p> <hr> <p> <hr>
<p> Implementation: <p> Implementation:
<p> <pre>/**************************************************************************** <p> <pre>/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions or slots use ** If you wish to add, delete or rename functions or slots use
** TQt Designer which will update this file, preserving your code. Create an ** TQt Designer which will update this file, preserving your code. Create an

@ -59,7 +59,7 @@ DBFILE = extension.db
<p> <hr> <p> <hr>
<p> Implementation: <p> Implementation:
<p> <pre>/**************************************************************************** <p> <pre>/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions use TQt Designer which will ** If you wish to add, delete or rename functions use TQt Designer which will
** update this file, preserving your code. Create an init() function in place ** update this file, preserving your code. Create an init() function in place
@ -107,7 +107,7 @@ void MainForm::quit()
</pre> </pre>
<pre>/**************************************************************************** <pre>/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions use TQt Designer which will ** If you wish to add, delete or rename functions use TQt Designer which will
** update this file, preserving your code. Create an init() function in place ** update this file, preserving your code. Create an init() function in place
@ -133,7 +133,7 @@ void DialogForm::toggleDetails()
</pre> </pre>
<pre>/**************************************************************************** <pre>/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions use TQt Designer which will ** If you wish to add, delete or rename functions use TQt Designer which will
** update this file, preserving your code. Create an init() function in place ** update this file, preserving your code. Create an init() function in place

@ -49,7 +49,7 @@ commands. The GUI parts are done in the Designer.
/**************************************************************************** /****************************************************************************
** **
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** The init() function is used in place of a constructor. ** The init() function is used in place of a constructor.
** The destroy() function is used in place of a destructor. ** The destroy() function is used in place of a destructor.

@ -7806,7 +7806,7 @@
"Trademarks" trademarks.html "Trademarks" trademarks.html
"Transformed Graphics Demo" xform-example.html "Transformed Graphics Demo" xform-example.html
"Tutorial #2" tutorial2.html "Tutorial #2" tutorial2.html
"User Interface Compiler (uic)" uic.html "User Interface Compiler (tquic)" tquic.html
"Using menus" menu-example.html "Using menus" menu-example.html
"Using the Meta Object Compiler" tqmoc.html "Using the Meta Object Compiler" tqmoc.html
"Walkthrough: A Simple Application" simple-application.html "Walkthrough: A Simple Application" simple-application.html

@ -281,7 +281,7 @@ to read and edit *.pro files, add and remove files to/from the project
and do some global operations on the project. You can now open the and do some global operations on the project. You can now open the
project file and have one-click access to all the *.ui forms in the project file and have one-click access to all the *.ui forms in the
project. project.
<p> In addition to generating code via uic, TQt Designer now supports the <p> In addition to generating code via tquic, TQt Designer now supports the
dynamic creation of widgets directly from XML user interface dynamic creation of widgets directly from XML user interface
description files (*.ui files) at runtime. This eliminates the need of description files (*.ui files) at runtime. This eliminates the need of
recompiling your application when the GUI changes, and could be used recompiling your application when the GUI changes, and could be used

@ -34,7 +34,7 @@ body { background: #ffffff; color: black; }
<p> <p>
<p> This example shows you how to start other processes with TQt and how <p> This example shows you how to start other processes with TQt and how
IO redirection is done. The example tries to start the uic (a tool IO redirection is done. The example tries to start the tquic (a tool
that comes with the TQt Designer) on a certain ui file and displays the that comes with the TQt Designer) on a certain ui file and displays the
output of the command. output of the command.
<p> <hr> <p> <hr>
@ -91,8 +91,8 @@ private:
// Set up the command and arguments. // Set up the command and arguments.
// On the command line you would do: // On the command line you would do:
// uic -tr <a href="i18n.html#i18n">i18n</a> "small_dialog.ui" // tquic -tr <a href="i18n.html#i18n">i18n</a> "small_dialog.ui"
<a name="x97"></a> proc-&gt;<a href="tqprocess.html#addArgument">addArgument</a>( "uic" ); <a name="x97"></a> proc-&gt;<a href="tqprocess.html#addArgument">addArgument</a>( "tquic" );
proc-&gt;<a href="tqprocess.html#addArgument">addArgument</a>( "-tr" ); proc-&gt;<a href="tqprocess.html#addArgument">addArgument</a>( "-tr" );
proc-&gt;<a href="tqprocess.html#addArgument">addArgument</a>( "i18n" ); proc-&gt;<a href="tqprocess.html#addArgument">addArgument</a>( "i18n" );
proc-&gt;<a href="tqprocess.html#addArgument">addArgument</a>( "small_dialog.ui" ); proc-&gt;<a href="tqprocess.html#addArgument">addArgument</a>( "small_dialog.ui" );
@ -106,7 +106,7 @@ private:
// error handling // error handling
<a name="x96"></a> TQMessageBox::<a href="tqmessagebox.html#critical">critical</a>( 0, <a name="x96"></a> TQMessageBox::<a href="tqmessagebox.html#critical">critical</a>( 0,
<a href="tqobject.html#tr">tr</a>("Fatal error"), <a href="tqobject.html#tr">tr</a>("Fatal error"),
<a href="tqobject.html#tr">tr</a>("Could not start the uic command."), <a href="tqobject.html#tr">tr</a>("Could not start the tquic command."),
<a href="tqobject.html#tr">tr</a>("Quit") ); <a href="tqobject.html#tr">tr</a>("Quit") );
exit( -1 ); exit( -1 );
} }

@ -156,7 +156,7 @@ HEADERS = myclass.h \
INCLUDEPATH = c:\msdev\include d:\stl\include INCLUDEPATH = c:\msdev\include d:\stl\include
</pre> </pre>
<a name="FORMS"></a><h5><a name="4-1-8"></a>FORMS</h5> <a name="FORMS"></a><h5><a name="4-1-8"></a>FORMS</h5>
<p>This variable specifies the .ui files (see <a href="designer-manual.html">TQt Designer</a>) to be processed through <em>uic</em> before compiling. All dependencies, headers and source files required to build these .ui files will automatically be added to the project.</p> <p>This variable specifies the .ui files (see <a href="designer-manual.html">TQt Designer</a>) to be processed through <em>tquic</em> before compiling. All dependencies, headers and source files required to build these .ui files will automatically be added to the project.</p>
<p>For example:</p> <p>For example:</p>
<pre> <pre>
FORMS = mydialog.ui \ FORMS = mydialog.ui \
@ -192,21 +192,21 @@ unix:OBJECTS_DIR = ../myproject/tmp
win32:OBJECTS__DIR = c:\myproject\tmp win32:OBJECTS__DIR = c:\myproject\tmp
</pre> </pre>
<a name="UI_DIR"></a><h5><a name="4-1-13"></a>UI_DIR</h5> <a name="UI_DIR"></a><h5><a name="4-1-13"></a>UI_DIR</h5>
<p>This variable specifies the directory where all intermediate files from uic should be placed. This variable overrides both UI_SOURCES_DIR and UI_HEADERS_DIR.</p> <p>This variable specifies the directory where all intermediate files from tquic should be placed. This variable overrides both UI_SOURCES_DIR and UI_HEADERS_DIR.</p>
<p>For example:</p> <p>For example:</p>
<pre> <pre>
unix:UI_DIR = ../myproject/ui unix:UI_DIR = ../myproject/ui
win32:UI_DIR = c:\myproject\ui win32:UI_DIR = c:\myproject\ui
</pre> </pre>
<a name="UI_HEADERS_DIR"></a><h5><a name="4-1-14"></a>UI_HEADERS_DIR</h5> <a name="UI_HEADERS_DIR"></a><h5><a name="4-1-14"></a>UI_HEADERS_DIR</h5>
<p>This variable specifies the directory where all declaration files (as generated by uic) should be placed.</p> <p>This variable specifies the directory where all declaration files (as generated by tquic) should be placed.</p>
<p>For example:</p> <p>For example:</p>
<pre> <pre>
unix:UI_HEADERS_DIR = ../myproject/ui/include unix:UI_HEADERS_DIR = ../myproject/ui/include
win32:UI_HEADERS_DIR = c:\myproject\ui\include win32:UI_HEADERS_DIR = c:\myproject\ui\include
</pre> </pre>
<a name="UI_SOURCES_DIR"></a><h5><a name="4-1-15"></a>UI_SOURCES_DIR</h5> <a name="UI_SOURCES_DIR"></a><h5><a name="4-1-15"></a>UI_SOURCES_DIR</h5>
<p>This variable specifies the directory where all implementation files (as generated by uic) should be placed.</p> <p>This variable specifies the directory where all implementation files (as generated by tquic) should be placed.</p>
<p>For example:</p> <p>For example:</p>
<pre> <pre>
unix:UI_SOURCES_DIR = ../myproject/ui/src unix:UI_SOURCES_DIR = ../myproject/ui/src
@ -500,10 +500,10 @@ app {
<h5><a name="4-2-93"></a>QMAKE_TARGET</h5> <h5><a name="4-2-93"></a>QMAKE_TARGET</h5>
<p>This variable contains the name of the project target. The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p> <p>This variable contains the name of the project target. The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p>
<h5><a name="4-2-94"></a>QMAKE_UIC</h5> <h5><a name="4-2-94"></a>QMAKE_UIC</h5>
<p>This variable contains the location of uic if it is not in the path. The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p> <p>This variable contains the location of tquic if it is not in the path. The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p>
<p>It can be used to specify arguments to uic as well, such as additional plugin paths. For example:</p> <p>It can be used to specify arguments to tquic as well, such as additional plugin paths. For example:</p>
<pre> <pre>
QMAKE_UIC = uic -L /path/to/plugin QMAKE_UIC = tquic -L /path/to/plugin
</pre> </pre>
<h5><a name="4-2-95"></a>RC_FILE</h5> <h5><a name="4-2-95"></a>RC_FILE</h5>
<p>This variable contains the name of the resource file for the application. The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p> <p>This variable contains the name of the resource file for the application. The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p>
@ -518,7 +518,7 @@ app {
<h5><a name="4-2-100"></a>TARGET_x.y.z</h5> <h5><a name="4-2-100"></a>TARGET_x.y.z</h5>
<p>This variable specifies the target's extension with version number. The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p> <p>This variable specifies the target's extension with version number. The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p>
<h5><a name="4-2-101"></a>UICIMPLS</h5> <h5><a name="4-2-101"></a>UICIMPLS</h5>
<p>This variable contains a list of the generated implementation files by UIC. The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p> <p>This variable contains a list of the generated implementation files by TQUIC. The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p>
<h5><a name="4-2-102"></a>UICOBJECTS</h5> <h5><a name="4-2-102"></a>UICOBJECTS</h5>
<p>This variable is generated from the UICIMPLS variable. The extension of each file will have been replaced by .o (Unix) or .obj (Win32). The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p> <p>This variable is generated from the UICIMPLS variable. The extension of each file will have been replaced by .o (Unix) or .obj (Win32). The value of this variable is typically handled by <em>qmake</em> or <a href="qmake-manual-8.html#QMAKESPEC">qmake.conf</a> and rarely needs to be modified.</p>
<h5><a name="4-2-103"></a>VER_MAJ</h5> <h5><a name="4-2-103"></a>VER_MAJ</h5>

@ -9796,8 +9796,8 @@
<section ref="tutorial2.html" title="Tutorial #2"> <section ref="tutorial2.html" title="Tutorial #2">
<keyword ref="tutorial2.html">Tutorial #2</keyword> <keyword ref="tutorial2.html">Tutorial #2</keyword>
</section> </section>
<section ref="uic.html" title="User Interface Compiler (uic)"> <section ref="tquic.html" title="User Interface Compiler (tquic)">
<keyword ref="uic.html">User Interface Compiler (uic)</keyword> <keyword ref="tquic.html">User Interface Compiler (tquic)</keyword>
</section> </section>
<section ref="menu-example.html" title="Using menus"> <section ref="menu-example.html" title="Using menus">
<keyword ref="menu-example.html">Using menus</keyword> <keyword ref="menu-example.html">Using menus</keyword>

@ -1001,7 +1001,7 @@ Toplevel Widgets | toplevel-example.html
Trademarks | trademarks.html Trademarks | trademarks.html
Transformed Graphics Demo | xform-example.html Transformed Graphics Demo | xform-example.html
Tutorial #2 | tutorial2.html Tutorial #2 | tutorial2.html
User Interface Compiler (uic) | uic.html User Interface Compiler (tquic) | tquic.html
Using menus | menu-example.html Using menus | menu-example.html
Using the Meta Object Compiler | tqmoc.html Using the Meta Object Compiler | tqmoc.html
Walkthrough: A Simple Application | simple-application.html Walkthrough: A Simple Application | simple-application.html

@ -47,7 +47,7 @@ help you need
simple platform-independent project files simple platform-independent project files
<li> <a href="qembed.html">qembed</a> - convert data, e.g. images, into C++ code <li> <a href="qembed.html">qembed</a> - convert data, e.g. images, into C++ code
<li> <a href="tqmoc.html">tqmoc</a> - the Meta Object Compiler <li> <a href="tqmoc.html">tqmoc</a> - the Meta Object Compiler
<li> <a href="uic.html">uic</a> - the User Interface Compiler <li> <a href="tquic.html">tquic</a> - the User Interface Compiler
<li> <tt>qtconfig</tt> - a Unix-based TQt configuration tool with online help <li> <tt>qtconfig</tt> - a Unix-based TQt configuration tool with online help
<p> </ul> <p> </ul>
<p> <p>

@ -131,14 +131,14 @@ program's process identifier is available from
use <a href="#tryTerminate">tryTerminate</a>(), but note that the program may ignore this. If use <a href="#tryTerminate">tryTerminate</a>(), but note that the program may ignore this. If
you <em>really</em> want to terminate the program, without it having any you <em>really</em> want to terminate the program, without it having any
chance to clean up, you can use <a href="#kill">kill</a>(). chance to clean up, you can use <a href="#kill">kill</a>().
<p> As an example, suppose we want to start the <tt>uic</tt> command (a TQt <p> As an example, suppose we want to start the <tt>tquic</tt> command (a TQt
command line tool used with <em>TQt Designer</em>) and perform some command line tool used with <em>TQt Designer</em>) and perform some
operations on the output (the <tt>uic</tt> outputs the code it generates operations on the output (the <tt>tquic</tt> outputs the code it generates
to standard output by default). Suppose further that we want to to standard output by default). Suppose further that we want to
run the program on the file "small_dialog.ui" with the command run the program on the file "small_dialog.ui" with the command
line options "-tr <a href="i18n.html#i18n">i18n</a>". On the command line we would write: line options "-tr <a href="i18n.html#i18n">i18n</a>". On the command line we would write:
<pre> <pre>
uic -tr i18n small_dialog.ui tquic -tr i18n small_dialog.ui
</pre> </pre>
<p> <p>
@ -148,7 +148,7 @@ this:
<p> <pre> UicManager::UicManager() <p> <pre> UicManager::UicManager()
{ {
</pre><pre> proc = new TQProcess( this ); </pre><pre> proc = new TQProcess( this );
</pre><pre> <a name="x2122"></a> proc-&gt;<a href="#addArgument">addArgument</a>( "uic" ); </pre><pre> <a name="x2122"></a> proc-&gt;<a href="#addArgument">addArgument</a>( "tquic" );
proc-&gt;<a href="#addArgument">addArgument</a>( "-tr" ); proc-&gt;<a href="#addArgument">addArgument</a>( "-tr" );
proc-&gt;<a href="#addArgument">addArgument</a>( "i18n" ); proc-&gt;<a href="#addArgument">addArgument</a>( "i18n" );
proc-&gt;<a href="#addArgument">addArgument</a>( "small_dialog.ui" ); proc-&gt;<a href="#addArgument">addArgument</a>( "small_dialog.ui" );

@ -1,9 +1,9 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/doc/uic.doc:1 --> <!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/doc/tquic.doc:1 -->
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>User Interface Compiler (uic)</title> <title>User Interface Compiler (tquic)</title>
<style type="text/css"><!-- <style type="text/css"><!--
fn { margin-left: 1cm; text-indent: -1cm; } fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none } a:link { color: #004faf; text-decoration: none }
@ -29,13 +29,13 @@ body { background: #ffffff; color: black; }
| <a href="functions.html"> | <a href="functions.html">
<font color="#004faf">Functions</font></a> <font color="#004faf">Functions</font></a>
</td> </td>
<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>User Interface Compiler (uic)</h1> <td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>User Interface Compiler (tquic)</h1>
<p> This page documents the <em>User Interface Compiler</em> for the TQt GUI <p> This page documents the <em>User Interface Compiler</em> for the TQt GUI
toolkit. The <em>uic</em> reads a user interface definition toolkit. The <em>tquic</em> reads a user interface definition
(.ui) file in XML as generated by <a href="designer-manual.html">TQt (.ui) file in XML as generated by <a href="designer-manual.html">TQt
Designer</a> and creates corresponding C++ header or source files. Designer</a> and creates corresponding C++ header or source files.
It can also generate an image file to embed raw image data in C++ It can also generate an image file to embed raw image data in C++
@ -46,12 +46,12 @@ source code.
</h3> </h3>
<a name="1-1"></a><p> Generate declaration: <a name="1-1"></a><p> Generate declaration:
<pre> <pre>
uic [options] &lt;file&gt; tquic [options] &lt;file&gt;
</pre> </pre>
<p> Generate implementation: <p> Generate implementation:
<pre> <pre>
uic [options] -impl &lt;headerfile&gt; &lt;file&gt; tquic [options] -impl &lt;headerfile&gt; &lt;file&gt;
</pre> </pre>
<ul> <ul>
@ -59,18 +59,18 @@ uic [options] -impl &lt;headerfile&gt; &lt;file&gt;
</ul> </ul>
<p> Generate image collection: <p> Generate image collection:
<pre> <pre>
uic [options] -embed &lt;project&gt; &lt;image1&gt; &lt;image2&gt; &lt;image3&gt; ... tquic [options] -embed &lt;project&gt; &lt;image1&gt; &lt;image2&gt; &lt;image3&gt; ...
</pre> </pre>
<ul> <ul>
<li> &lt;project&gt; - project name <li> &lt;project&gt; - project name
<li> &lt;image[0..n]&gt; - image files <li> &lt;image[0..n]&gt; - image files
</ul> </ul>
<p> For convenience, <em>uic</em> can also generate declaration or <p> For convenience, <em>tquic</em> can also generate declaration or
implementation stubs for subclasses. implementation stubs for subclasses.
<p> Generate subclass declaration: <p> Generate subclass declaration:
<pre> <pre>
uic [options] -subdecl &lt;classname&gt; &lt;headerfile&gt; &lt;file&gt; tquic [options] -subdecl &lt;classname&gt; &lt;headerfile&gt; &lt;file&gt;
</pre> </pre>
<ul> <ul>
@ -79,7 +79,7 @@ uic [options] -subdecl &lt;classname&gt; &lt;headerfile&gt; &lt;file&gt;
</ul> </ul>
<p> Generate subclass implementation: <p> Generate subclass implementation:
<pre> <pre>
uic [options] -subimpl &lt;classname&gt; &lt;headerfile&gt; &lt;file&gt; tquic [options] -subimpl &lt;classname&gt; &lt;headerfile&gt; &lt;file&gt;
</pre> </pre>
<ul> <ul>
@ -98,29 +98,29 @@ trUtf8(sourceText, comment) for <a href="i18n.html#internationalization">interna
</ul> </ul>
<p> <h2> Usage <p> <h2> Usage
</h2> </h2>
<a name="2"></a><p> <em>uic</em> is almost always invoked by <tt>make (1)</tt>, rather than by hand. <a name="2"></a><p> <em>tquic</em> is almost always invoked by <tt>make (1)</tt>, rather than by hand.
<p> Here are useful makefile rules if you only use GNU make: <p> Here are useful makefile rules if you only use GNU make:
<pre> <pre>
%.h: %.ui %.h: %.ui
uic $&lt; -o $@ tquic $&lt; -o $@
%.cpp: %.ui %.cpp: %.ui
uic -impl $*.h $&lt; -o $@ tquic -impl $*.h $&lt; -o $@
</pre> </pre>
If you want to write portably, you can use individual rules of the If you want to write portably, you can use individual rules of the
following form: following form:
<pre> <pre>
NAME.h: NAME.ui NAME.h: NAME.ui
uic $&lt; -o $@ tquic $&lt; -o $@
NAME.cpp: NAME.ui NAME.cpp: NAME.ui
uic -impl $*.h $&lt; -o $@ tquic -impl $*.h $&lt; -o $@
</pre> </pre>
You must also remember to add <tt>NAME.cpp</tt> to your SOURCES (substitute You must also remember to add <tt>NAME.cpp</tt> to your SOURCES (substitute
your favorite name) variable and <tt>NAME.o</tt> to your OBJECTS variable. your favorite name) variable and <tt>NAME.o</tt> to your OBJECTS variable.
<p> (While we prefer to name our C++ source files .cpp, the <em>uic</em> doesn't <p> (While we prefer to name our C++ source files .cpp, the <em>tquic</em> doesn't
care, so you can use .C, .cc, .CC, .cxx or even .c++ if you prefer.) care, so you can use .C, .cc, .CC, .cxx or even .c++ if you prefer.)
<p> <p>
<!-- eof --> <!-- eof -->

@ -102,7 +102,7 @@ the custom widget of class <em>key</em> in the toolbar.
<h3 class=fn><a href="tqstring.html">TQString</a> <a name="includeFile"></a>TQWidgetPlugin::includeFile ( const&nbsp;<a href="tqstring.html">TQString</a>&nbsp;&amp;&nbsp;key ) const<tt> [virtual]</tt> <h3 class=fn><a href="tqstring.html">TQString</a> <a name="includeFile"></a>TQWidgetPlugin::includeFile ( const&nbsp;<a href="tqstring.html">TQString</a>&nbsp;&amp;&nbsp;key ) const<tt> [virtual]</tt>
</h3> </h3>
Returns the name of the include file that <em>TQt Designer</em> and <tt>uic</tt> should use to include the custom widget of class <em>key</em> in Returns the name of the include file that <em>TQt Designer</em> and <tt>tquic</tt> should use to include the custom widget of class <em>key</em> in
generated code. generated code.
<p> The default implementation returns <a href="tqstring.html#TQString-null">TQString::null</a>. <p> The default implementation returns <a href="tqstring.html#TQString-null">TQString::null</a>.

@ -33,7 +33,7 @@ relationship between the widgets of a dialog can be
understood at a glance. understood at a glance.
Integrating dialogs into a TQt project is straightforward Integrating dialogs into a TQt project is straightforward
thanks to the User Interface Compiler (UIC), which thanks to the User Interface Compiler (TQUIC), which
generates C++ code from the XML dialog description on the generates C++ code from the XML dialog description on the
fly. The programmer can easily extend the functionality fly. The programmer can easily extend the functionality
of the generated classes by subclassing without touching of the generated classes by subclassing without touching

@ -149,7 +149,7 @@ As an example, suppose we want to start the \fCuic\fR command (a TQt command lin
.PP .PP
.nf .nf
.br .br
uic -tr i18n small_dialog.ui tquic -tr i18n small_dialog.ui
.br .br
.fi .fi
.PP .PP
@ -169,7 +169,7 @@ A code snippet for this with the TQProcess class might look like this:
.PP .PP
.nf .nf
.br .br
proc->addArgument( "uic" ); proc->addArgument( "tquic" );
.br .br
proc->addArgument( "-tr" ); proc->addArgument( "-tr" );
.br .br

@ -88,11 +88,11 @@ the relevant release of Qt.
<dt>Meta Object Compiler and other tools - Compile time <dt>Meta Object Compiler and other tools - Compile time
<dd>Programmers need to run \e tqmoc and other tools such as \e uic. These <dd>Programmers need to run \e tqmoc and other tools such as \e tquic. These
tools are usually located in the \c bin subdirectory of TQt distributions. tools are usually located in the \c bin subdirectory of TQt distributions.
Either run \c "$TQTDIR"/bin/tqmoc and \c "$TQTDIR"/bin/tquic or add \c "$TQTDIR"/bin Either run \c "$TQTDIR"/bin/tqmoc and \c "$TQTDIR"/bin/tquic or add \c "$TQTDIR"/bin
to your \c PATH and run \c tqmoc and \c tquic. If you use \c qmake the to your \c PATH and run \c tqmoc and \c tquic. If you use \c qmake the
appropriate lines will be added to your Makefiles so that \e uic and appropriate lines will be added to your Makefiles so that \e tquic and
\e tqmoc will be executed as required. \e tqmoc will be executed as required.
<dt>Static or shared libraries - Link time <dt>Static or shared libraries - Link time

@ -1,11 +1,11 @@
/*! /*!
\page uic.html \page tquic.html
\title User Interface Compiler (uic) \title User Interface Compiler (tquic)
\omit KEEP THIS FILE SYNCHRONIZED WITH uic.1 \endomit \omit KEEP THIS FILE SYNCHRONIZED WITH tquic.1 \endomit
This page documents the \e{User Interface Compiler} for the TQt GUI This page documents the \e{User Interface Compiler} for the TQt GUI
toolkit. The \e uic reads a user interface definition toolkit. The \e tquic reads a user interface definition
(.ui) file in XML as generated by \link designer-manual.book Qt (.ui) file in XML as generated by \link designer-manual.book Qt
Designer\endlink and creates corresponding C++ header or source files. Designer\endlink and creates corresponding C++ header or source files.
It can also generate an image file to embed raw image data in C++ It can also generate an image file to embed raw image data in C++
@ -17,12 +17,12 @@ source code.
Generate declaration: Generate declaration:
\code \code
uic [options] <file> tquic [options] <file>
\endcode \endcode
Generate implementation: Generate implementation:
\code \code
uic [options] -impl <headerfile> <file> tquic [options] -impl <headerfile> <file>
\endcode \endcode
\list \list
\i \<headerfile\> - name of the declaration file \i \<headerfile\> - name of the declaration file
@ -30,19 +30,19 @@ uic [options] -impl <headerfile> <file>
Generate image collection: Generate image collection:
\code \code
uic [options] -embed <project> <image1> <image2> <image3> ... tquic [options] -embed <project> <image1> <image2> <image3> ...
\endcode \endcode
\list \list
\i \<project\> - project name \i \<project\> - project name
\i \<image[0..n]\> - image files \i \<image[0..n]\> - image files
\endlist \endlist
For convenience, \e uic can also generate declaration or For convenience, \e tquic can also generate declaration or
implementation stubs for subclasses. implementation stubs for subclasses.
Generate subclass declaration: Generate subclass declaration:
\code \code
uic [options] -subdecl <classname> <headerfile> <file> tquic [options] -subdecl <classname> <headerfile> <file>
\endcode \endcode
\list \list
\i \<classname\> - name of the subclass to generate \i \<classname\> - name of the subclass to generate
@ -51,7 +51,7 @@ uic [options] -subdecl <classname> <headerfile> <file>
Generate subclass implementation: Generate subclass implementation:
\code \code
uic [options] -subimpl <classname> <headerfile> <file> tquic [options] -subimpl <classname> <headerfile> <file>
\endcode \endcode
\list \list
\i \<classname\> - name of the subclass to generate \i \<classname\> - name of the subclass to generate
@ -71,29 +71,29 @@ trUtf8(sourceText, comment) for internationalization.
\section1 Usage \section1 Usage
\e uic is almost always invoked by \c{make (1)}, rather than by hand. \e tquic is almost always invoked by \c{make (1)}, rather than by hand.
Here are useful makefile rules if you only use GNU make: Here are useful makefile rules if you only use GNU make:
\code \code
%.h: %.ui %.h: %.ui
uic $< -o $@ tquic $< -o $@
%.cpp: %.ui %.cpp: %.ui
uic -impl $*.h $< -o $@ tquic -impl $*.h $< -o $@
\endcode \endcode
If you want to write portably, you can use individual rules of the If you want to write portably, you can use individual rules of the
following form: following form:
\code \code
NAME.h: NAME.ui NAME.h: NAME.ui
uic $< -o $@ tquic $< -o $@
NAME.cpp: NAME.ui NAME.cpp: NAME.ui
uic -impl $*.h $< -o $@ tquic -impl $*.h $< -o $@
\endcode \endcode
You must also remember to add \c{NAME.cpp} to your SOURCES (substitute You must also remember to add \c{NAME.cpp} to your SOURCES (substitute
your favorite name) variable and \c{NAME.o} to your OBJECTS variable. your favorite name) variable and \c{NAME.o} to your OBJECTS variable.
(While we prefer to name our C++ source files .cpp, the \e uic doesn't (While we prefer to name our C++ source files .cpp, the \e tquic doesn't
care, so you can use .C, .cc, .CC, .cxx or even .c++ if you prefer.) care, so you can use .C, .cc, .CC, .cxx or even .c++ if you prefer.)

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename slots use TQt Designer which will ** If you wish to add, delete or rename slots use TQt Designer which will
** update this file, preserving your code. Create an init() slot in place of ** update this file, preserving your code. Create an init() slot in place of

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions respectively slots use ** If you wish to add, delete or rename functions respectively slots use
** TQt Designer which will update this file, preserving your code. Create an ** TQt Designer which will update this file, preserving your code. Create an

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename slots use TQt Designer which will ** If you wish to add, delete or rename slots use TQt Designer which will
** update this file, preserving your code. Create an init() slot in place of ** update this file, preserving your code. Create an init() slot in place of

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename slots use TQt Designer which will ** If you wish to add, delete or rename slots use TQt Designer which will
** update this file, preserving your code. Create an init() slot in place of ** update this file, preserving your code. Create an init() slot in place of

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions or slots use ** If you wish to add, delete or rename functions or slots use
** TQt Designer which will update this file, preserving your code. Create an ** TQt Designer which will update this file, preserving your code. Create an

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions use TQt Designer which will ** If you wish to add, delete or rename functions use TQt Designer which will
** update this file, preserving your code. Create an init() function in place ** update this file, preserving your code. Create an init() function in place

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions use TQt Designer which will ** If you wish to add, delete or rename functions use TQt Designer which will
** update this file, preserving your code. Create an init() function in place ** update this file, preserving your code. Create an init() function in place

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions use TQt Designer which will ** If you wish to add, delete or rename functions use TQt Designer which will
** update this file, preserving your code. Create an init() function in place ** update this file, preserving your code. Create an init() function in place

@ -8,7 +8,7 @@
*****************************************************************************/ *****************************************************************************/
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions or slots use ** If you wish to add, delete or rename functions or slots use
** TQt Designer which will update this file, preserving your code. Create an ** TQt Designer which will update this file, preserving your code. Create an

@ -9,7 +9,7 @@
/**************************************************************************** /****************************************************************************
** **
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** The init() function is used in place of a constructor. ** The init() function is used in place of a constructor.
** The destroy() function is used in place of a destructor. ** The destroy() function is used in place of a destructor.

@ -1,8 +1,8 @@
The process example is not particularly useful, but it shows a typical The process example is not particularly useful, but it shows a typical
use of the class TQProcess. use of the class TQProcess.
This example starts the uic command with some options and displays the This example starts the tquic command with some options and displays the
output of the uic call. The uic is a command line tool that is used if you output of the tquic call. The tquic is a command line tool that is used if you
create dialogs with the TQt Designer. If you installed TQt correctly, it create dialogs with the TQt Designer. If you installed TQt correctly, it
should be available on your system. It outputs the generated code to should be available on your system. It outputs the generated code to
standard output by default. standard output by default.

@ -49,8 +49,8 @@ UicManager::UicManager()
// Set up the command and arguments. // Set up the command and arguments.
// On the command line you would do: // On the command line you would do:
// uic -tr i18n "small_dialog.ui" // tquic -tr i18n "small_dialog.ui"
proc->addArgument( "uic" ); proc->addArgument( "tquic" );
proc->addArgument( "-tr" ); proc->addArgument( "-tr" );
proc->addArgument( "i18n" ); proc->addArgument( "i18n" );
proc->addArgument( "small_dialog.ui" ); proc->addArgument( "small_dialog.ui" );
@ -64,7 +64,7 @@ UicManager::UicManager()
// error handling // error handling
TQMessageBox::critical( 0, TQMessageBox::critical( 0,
tr("Fatal error"), tr("Fatal error"),
tr("Could not start the uic command."), tr("Could not start the tquic command."),
tr("Quit") ); tr("Quit") );
exit( -1 ); exit( -1 );
} }

@ -8,7 +8,7 @@
\title Starting processes with IO redirection \title Starting processes with IO redirection
This example shows you how to start other processes with TQt and how This example shows you how to start other processes with TQt and how
IO redirection is done. The example tries to start the uic (a tool IO redirection is done. The example tries to start the tquic (a tool
that comes with the TQt Designer) on a certain ui file and displays the that comes with the TQt Designer) on a certain ui file and displays the
output of the command. output of the command.

@ -89,7 +89,7 @@ QMAKE_LIBS_OPENGL =
QMAKE_LFLAGS_OPENGL = /dopengl32.dll QMAKE_LFLAGS_OPENGL = /dopengl32.dll
QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
QMAKE_UIC = $(TQTDIR)\bin\uic.exe QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
QMAKE_IDC = $(TQTDIR)\bin\idc.exe QMAKE_IDC = $(TQTDIR)\bin\idc.exe
QMAKE_IDL = midl QMAKE_IDL = midl

@ -78,7 +78,7 @@ QMAKE_LIBS_QT_ENTRY = -lqtmain
QMAKE_LIBS_OPENGL = -lopengl32 -lglu32 QMAKE_LIBS_OPENGL = -lopengl32 -lglu32
QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
QMAKE_UIC = $(TQTDIR)\bin\uic.exe QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
QMAKE_IDC = $(TQTDIR)\bin\idc.exe QMAKE_IDC = $(TQTDIR)\bin\idc.exe
QMAKE_IDL = midl QMAKE_IDL = midl

@ -86,7 +86,7 @@ QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib delayimp.lib
QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
QMAKE_UIC = $(TQTDIR)\bin\uic.exe QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
QMAKE_IDC = $(TQTDIR)\bin\idc.exe QMAKE_IDC = $(TQTDIR)\bin\idc.exe
QMAKE_IDL = midl QMAKE_IDL = midl

@ -86,7 +86,7 @@ QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib
QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
QMAKE_UIC = $(TQTDIR)\bin\uic.exe QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
QMAKE_IDC = $(TQTDIR)\bin\idc.exe QMAKE_IDC = $(TQTDIR)\bin\idc.exe
QMAKE_IDL = midl QMAKE_IDL = midl

@ -86,7 +86,7 @@ QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib delayimp.lib
QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
QMAKE_UIC = $(TQTDIR)\bin\uic.exe QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
QMAKE_IDC = $(TQTDIR)\bin\idc.exe QMAKE_IDC = $(TQTDIR)\bin\idc.exe
QMAKE_IDL = midl QMAKE_IDL = midl

@ -88,7 +88,7 @@ QMAKE_LIBS_OPENGL = opengl32.lib glu32.lib
QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll QMAKE_LFLAGS_OPENGL = /DELAYLOAD:opengl32.dll
QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe QMAKE_MOC = $(TQTDIR)\bin\tqmoc.exe
QMAKE_UIC = $(TQTDIR)\bin\uic.exe QMAKE_UIC = $(TQTDIR)\bin\tquic.exe
QMAKE_IDC = $(TQTDIR)\bin\idc.exe QMAKE_IDC = $(TQTDIR)\bin\idc.exe
QMAKE_IDL = midl QMAKE_IDL = midl

@ -336,7 +336,7 @@ For example:
\section3 FORMS \section3 FORMS
This variable specifies the .ui files (see \link This variable specifies the .ui files (see \link
designer-manual.book TQt Designer \endlink) to be processed through \e uic designer-manual.book TQt Designer \endlink) to be processed through \e tquic
before compiling. All dependencies, headers and source files required before compiling. All dependencies, headers and source files required
to build these .ui files will automatically be added to the project. to build these .ui files will automatically be added to the project.
@ -415,7 +415,7 @@ win32:OBJECTS__DIR = c:\myproject\tmp
\target UI_DIR \target UI_DIR
\section3 UI_DIR \section3 UI_DIR
This variable specifies the directory where all intermediate files from uic This variable specifies the directory where all intermediate files from tquic
should be placed. This variable overrides both UI_SOURCES_DIR and should be placed. This variable overrides both UI_SOURCES_DIR and
UI_HEADERS_DIR. UI_HEADERS_DIR.
@ -430,7 +430,7 @@ win32:UI_DIR = c:\myproject\ui
\section3 UI_HEADERS_DIR \section3 UI_HEADERS_DIR
This variable specifies the directory where all declaration files (as This variable specifies the directory where all declaration files (as
generated by uic) should be placed. generated by tquic) should be placed.
For example: For example:
@ -443,7 +443,7 @@ win32:UI_HEADERS_DIR = c:\myproject\ui\include
\section3 UI_SOURCES_DIR \section3 UI_SOURCES_DIR
This variable specifies the directory where all implementation files (as generated This variable specifies the directory where all implementation files (as generated
by uic) should be placed. by tquic) should be placed.
For example: For example:
@ -1572,15 +1572,15 @@ this variable is typically handled by \e qmake or
\section3 QMAKE_UIC \section3 QMAKE_UIC
This variable contains the location of uic if it is not in the path. This variable contains the location of tquic if it is not in the path.
The value of this variable is typically handled by \e qmake or The value of this variable is typically handled by \e qmake or
\link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified. \link #QMAKESPEC qmake.conf \endlink and rarely needs to be modified.
It can be used to specify arguments to uic as well, such as additional plugin It can be used to specify arguments to tquic as well, such as additional plugin
paths. For example: paths. For example:
\code \code
QMAKE_UIC = uic -L /path/to/plugin QMAKE_UIC = tquic -L /path/to/plugin
\endcode \endcode
@ -1634,7 +1634,7 @@ modified.
\section3 UICIMPLS \section3 UICIMPLS
This variable contains a list of the generated implementation files by UIC. This variable contains a list of the generated implementation files by TQUIC.
The value of this variable The value of this variable
is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be is typically handled by \e qmake or \link #QMAKESPEC qmake.conf \endlink and rarely needs to be
modified. modified.

@ -15,4 +15,4 @@ uses \e qmake as the primary build tool for the TQt library, and for
the tools supplied with Qt. the tools supplied with Qt.
\e qmake also takes care of Qt's special requirements, automatically \e qmake also takes care of Qt's special requirements, automatically
including build rules for \link tqmoc.html tqmoc\endlink and \e uic. including build rules for \link tqmoc.html tqmoc\endlink and \e tquic.

@ -403,7 +403,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(TQTextStream &t)
else if(srcs[i] == "SRCMOC") else if(srcs[i] == "SRCMOC")
src_group = "Sources [moc]"; src_group = "Sources [moc]";
else if(srcs[i] == "UICIMPLS" || srcs[i] == "FORMS") else if(srcs[i] == "UICIMPLS" || srcs[i] == "FORMS")
src_group = "Sources [uic]"; src_group = "Sources [tquic]";
else if(srcs[i] == "QMAKE_IMAGE_COLLECTION") else if(srcs[i] == "QMAKE_IMAGE_COLLECTION")
src_group = "Sources [images]"; src_group = "Sources [images]";
else if(srcs[i] == "QMAKE_INTERNAL_INCLUDED_FILES") else if(srcs[i] == "QMAKE_INTERNAL_INCLUDED_FILES")
@ -545,7 +545,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(TQTextStream &t)
TQTextStream mkt(&mkf); TQTextStream mkt(&mkf);
writeHeader(mkt); writeHeader(mkt);
mkt << "MOC = " << Option::fixPathToTargetOS(var("QMAKE_MOC")) << endl; mkt << "MOC = " << Option::fixPathToTargetOS(var("QMAKE_MOC")) << endl;
mkt << "UIC = " << Option::fixPathToTargetOS(var("QMAKE_UIC")) << endl; mkt << "TQUIC = " << Option::fixPathToTargetOS(var("QMAKE_UIC")) << endl;
mkt << "LEX = " << var("QMAKE_LEX") << endl; mkt << "LEX = " << var("QMAKE_LEX") << endl;
mkt << "LEXFLAGS = " << var("QMAKE_LEXFLAGS") << endl; mkt << "LEXFLAGS = " << var("QMAKE_LEXFLAGS") << endl;
mkt << "YACC = " << var("QMAKE_YACC") << endl; mkt << "YACC = " << var("QMAKE_YACC") << endl;

@ -1616,7 +1616,7 @@ MakefileGenerator::writeUicSrc(TQTextStream &t, const TQString &ui)
deps.remove(decl); //avoid circular dependencies.. deps.remove(decl); //avoid circular dependencies..
t << decl << ": " << (*it) << " "; t << decl << ": " << (*it) << " ";
t << deps.join(" \\\n\t\t") << "\n\t" t << deps.join(" \\\n\t\t") << "\n\t"
<< "$(UIC) " << (*it) << " -o " << decl << endl << endl; << "$(TQUIC) " << (*it) << " -o " << decl << endl << endl;
TQString mildDecl = decl; TQString mildDecl = decl;
int k = mildDecl.findRev(Option::dir_sep); int k = mildDecl.findRev(Option::dir_sep);
@ -1626,7 +1626,7 @@ MakefileGenerator::writeUicSrc(TQTextStream &t, const TQString &ui)
if(TQFile::exists((*it) + Option::h_ext.first())) if(TQFile::exists((*it) + Option::h_ext.first()))
t << (*it) << Option::h_ext.first() << " "; t << (*it) << Option::h_ext.first() << " ";
t << deps.join(" \\\n\t\t") << "\n\t" t << deps.join(" \\\n\t\t") << "\n\t"
<< "$(UIC) " << (*it) << " -i " << mildDecl << " -o " << impl << endl << endl; << "$(TQUIC) " << (*it) << " -i " << mildDecl << " -o " << impl << endl << endl;
} }
} }
@ -1807,15 +1807,15 @@ MakefileGenerator::writeImageSrc(TQTextStream &t, const TQString &src)
TQString gen = project->first("MAKEFILE_GENERATOR"); TQString gen = project->first("MAKEFILE_GENERATOR");
if ( gen == "MSVC" ) { if ( gen == "MSVC" ) {
t << (*it) << ": " << findDependencies((*it)).join(" \\\n\t\t") << "\n\t" t << (*it) << ": " << findDependencies((*it)).join(" \\\n\t\t") << "\n\t"
<< "$(UIC) -o " << (*it) << " -embed " << project->first("QMAKE_ORIG_TARGET") << "$(TQUIC) -o " << (*it) << " -embed " << project->first("QMAKE_ORIG_TARGET")
<< " -f <<\n" << findDependencies((*it)).join(" ") << "\n<<" << endl << endl; << " -f <<\n" << findDependencies((*it)).join(" ") << "\n<<" << endl << endl;
} else if ( gen == "BMAKE" ) { } else if ( gen == "BMAKE" ) {
t << (*it) << ": " << findDependencies((*it)).join(" \\\n\t\t") << "\n\t" t << (*it) << ": " << findDependencies((*it)).join(" \\\n\t\t") << "\n\t"
<< "$(UIC) " << " -embed " << project->first("QMAKE_ORIG_TARGET") << "$(TQUIC) " << " -embed " << project->first("QMAKE_ORIG_TARGET")
<< " -f &&|\n" << findDependencies((*it)).join(" ") << "\n| -o " << (*it) << endl << endl; << " -f &&|\n" << findDependencies((*it)).join(" ") << "\n| -o " << (*it) << endl << endl;
} else { } else {
t << (*it) << ": " << findDependencies((*it)).join(" \\\n\t\t") << "\n\t" t << (*it) << ": " << findDependencies((*it)).join(" \\\n\t\t") << "\n\t"
<< "$(UIC) " << " -embed " << project->first("QMAKE_ORIG_TARGET") << "$(TQUIC) " << " -embed " << project->first("QMAKE_ORIG_TARGET")
<< " " << findDependencies((*it)).join(" ") << " -o " << (*it) << endl << endl; << " " << findDependencies((*it)).join(" ") << " -o " << (*it) << endl << endl;
} }
} }

@ -182,7 +182,7 @@ UnixMakefileGenerator::writeMakeParts(TQTextStream &t)
t << "AR = " << var("QMAKE_AR") << endl; t << "AR = " << var("QMAKE_AR") << endl;
t << "RANLIB = " << var("QMAKE_RANLIB") << endl; t << "RANLIB = " << var("QMAKE_RANLIB") << endl;
t << "MOC = " << var("QMAKE_MOC") << endl; t << "MOC = " << var("QMAKE_MOC") << endl;
t << "UIC = " << var("QMAKE_UIC") << endl; t << "TQUIC = " << var("QMAKE_UIC") << endl;
t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("tqmake") : var("QMAKE_QMAKE")) << endl; t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("tqmake") : var("QMAKE_QMAKE")) << endl;
t << "TAR = " << var("QMAKE_TAR") << endl; t << "TAR = " << var("QMAKE_TAR") << endl;
t << "GZIP = " << var("QMAKE_GZIP") << endl; t << "GZIP = " << var("QMAKE_GZIP") << endl;

@ -117,7 +117,7 @@ BorlandMakefileGenerator::writeBorlandParts(TQTextStream &t)
} }
t << "MOC = " << (project->isEmpty("QMAKE_MOC") ? TQString("moc") : t << "MOC = " << (project->isEmpty("QMAKE_MOC") ? TQString("moc") :
Option::fixPathToTargetOS(var("QMAKE_MOC"), FALSE)) << endl; Option::fixPathToTargetOS(var("QMAKE_MOC"), FALSE)) << endl;
t << "UIC = " << (project->isEmpty("QMAKE_UIC") ? TQString("uic") : t << "TQUIC = " << (project->isEmpty("QMAKE_UIC") ? TQString("tquic") :
Option::fixPathToTargetOS(var("QMAKE_UIC"), FALSE)) << endl; Option::fixPathToTargetOS(var("QMAKE_UIC"), FALSE)) << endl;
t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("qmake") : t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("qmake") :
Option::fixPathToTargetOS(var("QMAKE_QMAKE"), FALSE)) << endl; Option::fixPathToTargetOS(var("QMAKE_QMAKE"), FALSE)) << endl;

@ -137,7 +137,7 @@ MingwMakefileGenerator::writeMingwParts(TQTextStream &t)
} }
t << "MOC = " << (project->isEmpty("QMAKE_MOC") ? TQString("moc") : t << "MOC = " << (project->isEmpty("QMAKE_MOC") ? TQString("moc") :
Option::fixPathToTargetOS(var("QMAKE_MOC"), FALSE)) << endl; Option::fixPathToTargetOS(var("QMAKE_MOC"), FALSE)) << endl;
t << "UIC = " << (project->isEmpty("QMAKE_UIC") ? TQString("uic") : t << "TQUIC = " << (project->isEmpty("QMAKE_UIC") ? TQString("tquic") :
Option::fixPathToTargetOS(var("QMAKE_UIC"), FALSE)) << endl; Option::fixPathToTargetOS(var("QMAKE_UIC"), FALSE)) << endl;
t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("qmake") : t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("qmake") :
Option::fixPathToTargetOS(var("QMAKE_QMAKE"), FALSE)) << endl; Option::fixPathToTargetOS(var("QMAKE_QMAKE"), FALSE)) << endl;

@ -365,7 +365,7 @@ DspMakefileGenerator::writeDspParts(TQTextStream &t)
list.sort(); list.sort();
TQStringList::Iterator it; TQStringList::Iterator it;
// dump the image list to a file UIC can read. // dump the image list to a file TQUIC can read.
TQFile f( "images.tmp" ); TQFile f( "images.tmp" );
f.open( IO_WriteOnly ); f.open( IO_WriteOnly );
TQTextStream ts( &f ); TQTextStream ts( &f );
@ -464,7 +464,7 @@ DspMakefileGenerator::writeDspParts(TQTextStream &t)
t << "USERDEP_" << base << "=\"$(TQTDIR)\\bin\\tqmoc.exe\" \"$(TQTDIR)\\bin\\tquic.exe\"" << endl << endl; t << "USERDEP_" << base << "=\"$(TQTDIR)\\bin\\tqmoc.exe\" \"$(TQTDIR)\\bin\\tquic.exe\"" << endl << endl;
TQString build = "\n\n# Begin Custom Build - Uic'ing " + base + "...\n" TQString build = "\n\n# Begin Custom Build - TQUic'ing " + base + "...\n"
"InputPath=.\\" + base + "\n\n" "BuildCmds= \\\n\t" + uicpath + base + "InputPath=.\\" + base + "\n\n" "BuildCmds= \\\n\t" + uicpath + base +
" -o " + uiHeadersDir + fname + ".h \\\n" "\t" + uicpath + base + " -o " + uiHeadersDir + fname + ".h \\\n" "\t" + uicpath + base +
" -i " + fname + ".h -o " + uiSourcesDir + fname + ".cpp \\\n" " -i " + fname + ".h -o " + uiSourcesDir + fname + ".cpp \\\n"

@ -147,7 +147,7 @@ NmakeMakefileGenerator::writeNmakeParts(TQTextStream &t)
} }
t << "MOC = " << (project->isEmpty("QMAKE_MOC") ? TQString("moc") : t << "MOC = " << (project->isEmpty("QMAKE_MOC") ? TQString("moc") :
Option::fixPathToTargetOS(var("QMAKE_MOC"), FALSE)) << endl; Option::fixPathToTargetOS(var("QMAKE_MOC"), FALSE)) << endl;
t << "UIC = " << (project->isEmpty("QMAKE_UIC") ? TQString("uic") : t << "TQUIC = " << (project->isEmpty("QMAKE_UIC") ? TQString("tquic") :
Option::fixPathToTargetOS(var("QMAKE_UIC"), FALSE)) << endl; Option::fixPathToTargetOS(var("QMAKE_UIC"), FALSE)) << endl;
t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("qmake") : t << "QMAKE = " << (project->isEmpty("QMAKE_QMAKE") ? TQString("qmake") :
Option::fixPathToTargetOS(var("QMAKE_QMAKE"), FALSE)) << endl; Option::fixPathToTargetOS(var("QMAKE_QMAKE"), FALSE)) << endl;

@ -1949,7 +1949,7 @@ void VCFilter::addUICstage( TQTextStream & /*strm*/, TQString str )
if ( mocDir.isEmpty() ) if ( mocDir.isEmpty() )
mocDir = pname; mocDir = pname;
CustomBuildTool.Description = ("Uic'ing " + str + "...\""); CustomBuildTool.Description = ("TQUic'ing " + str + "...\"");
CustomBuildTool.CommandLine += // Create .h from .ui file CustomBuildTool.CommandLine += // Create .h from .ui file
uicApp + " " + str + " -o " + uiHeaders + fname + ".h"; uicApp + " " + str + " -o " + uiHeaders + fname + ".h";
CustomBuildTool.CommandLine += // Create .cpp from .ui file CustomBuildTool.CommandLine += // Create .cpp from .ui file
@ -2011,8 +2011,8 @@ bool VCFilter::addIMGstage( TQTextStream &/*strm*/, TQString str )
useCustomBuildTool = TRUE; useCustomBuildTool = TRUE;
// Some projects (like designer core) may have too many images to // Some projects (like designer core) may have too many images to
// call uic directly. Therefor we have to create a temporary // call tquic directly. Therefor we have to create a temporary
// file, with the image list, and call uic with the -f option. // file, with the image list, and call tquic with the -f option.
TQString tmpFileCmd = "echo "; TQString tmpFileCmd = "echo ";
TQString tmpImageFilename = ".imgcol"; TQString tmpImageFilename = ".imgcol";
TQStringList& list = Project->project->variables()["IMAGES"]; TQStringList& list = Project->project->variables()["IMAGES"];
@ -2139,10 +2139,10 @@ TQTextStream &operator<<( TQTextStream &strm, VCFilter &tool )
tool.useCustomBuildTool = FALSE; tool.useCustomBuildTool = FALSE;
tool.useCompilerTool = FALSE; tool.useCompilerTool = FALSE;
// Add UIC, MOC and PCH stages to file // Add TQUIC, MOC and PCH stages to file
if ( tool.CustomBuild == moc ) if ( tool.CustomBuild == moc )
tool.addMOCstage( strm, *it ); tool.addMOCstage( strm, *it );
else if ( tool.CustomBuild == uic ) else if ( tool.CustomBuild == tquic )
tool.addUICstage( strm, *it ); tool.addUICstage( strm, *it );
else if ( tool.CustomBuild == lexyacc ) else if ( tool.CustomBuild == lexyacc )
tool.addLexYaccStage( strm, *it ); tool.addLexYaccStage( strm, *it );

@ -66,7 +66,7 @@ enum DotNET {
enum customBuildCheck { enum customBuildCheck {
none, none,
moc, moc,
uic, tquic,
lexyacc, lexyacc,
resource resource
}; };

@ -358,9 +358,9 @@ void VcprojGenerator::writeSubDirs(TQTextStream &t)
if(newDep->target.endsWith(".dll")) if(newDep->target.endsWith(".dll"))
newDep->target = newDep->target.left(newDep->target.length()-3) + "lib"; newDep->target = newDep->target.left(newDep->target.length()-3) + "lib";
// All projects using Forms are dependent on uic.exe // All projects using Forms are dependent on tquic.exe
if(!tmp_proj.isEmpty("FORMS")) if(!tmp_proj.isEmpty("FORMS"))
newDep->dependencies << "uic.exe"; newDep->dependencies << "tquic.exe";
// Add all unknown libs to the deps // Add all unknown libs to the deps
TQStringList where("QMAKE_LIBS"); TQStringList where("QMAKE_LIBS");
@ -970,7 +970,7 @@ void VcprojGenerator::initFormsFiles()
vcProject.FormFiles.flat_files ); vcProject.FormFiles.flat_files );
vcProject.FormFiles.Project = this; vcProject.FormFiles.Project = this;
vcProject.FormFiles.Config = &(vcProject.Configuration); vcProject.FormFiles.Config = &(vcProject.Configuration);
vcProject.FormFiles.CustomBuild = uic; vcProject.FormFiles.CustomBuild = tquic;
} }
void VcprojGenerator::initTranslationFiles() void VcprojGenerator::initTranslationFiles()

@ -631,7 +631,7 @@ void TQColor::setSystemNamedColor( const TQString& name )
// setSystemNamedColor should look up rgb values from the built in // setSystemNamedColor should look up rgb values from the built in
// color tables first (see tqcolor_p.cpp), and failing that, use // color tables first (see tqcolor_p.cpp), and failing that, use
// the window system's interface for translating names to rgb values... // the window system's interface for translating names to rgb values...
// we do this so that things like uic can load an XPM file with named colors // we do this so that things like tquic can load an XPM file with named colors
// and convert it to a png without having to use window system functions... // and convert it to a png without having to use window system functions...
d.argb = qt_get_rgb_val( name.latin1() ); d.argb = qt_get_rgb_val( name.latin1() );
TQRgb rgb; TQRgb rgb;

@ -109,14 +109,14 @@
you \e really want to terminate the program, without it having any you \e really want to terminate the program, without it having any
chance to clean up, you can use kill(). chance to clean up, you can use kill().
As an example, suppose we want to start the \c uic command (a TQt As an example, suppose we want to start the \c tquic command (a TQt
command line tool used with \e{TQt Designer}) and perform some command line tool used with \e{TQt Designer}) and perform some
operations on the output (the \c uic outputs the code it generates operations on the output (the \c tquic outputs the code it generates
to standard output by default). Suppose further that we want to to standard output by default). Suppose further that we want to
run the program on the file "small_dialog.ui" with the command run the program on the file "small_dialog.ui" with the command
line options "-tr i18n". On the command line we would write: line options "-tr i18n". On the command line we would write:
\code \code
uic -tr i18n small_dialog.ui tquic -tr i18n small_dialog.ui
\endcode \endcode
\quotefile process/process.cpp \quotefile process/process.cpp
@ -129,7 +129,7 @@
\printline { \printline {
\skipto proc = new TQProcess( this ); \skipto proc = new TQProcess( this );
\printline proc = new TQProcess( this ); \printline proc = new TQProcess( this );
\skipto proc->addArgument( "uic" ); \skipto proc->addArgument( "tquic" );
\printuntil this, TQ_SLOT(readFromStdout()) ); \printuntil this, TQ_SLOT(readFromStdout()) );
\skipto if ( !proc->start() ) { \skipto if ( !proc->start() ) {
\printuntil // error handling \printuntil // error handling

@ -91,7 +91,7 @@ public:
virtual TQIconSet iconSet( const TQString &widget ) const = 0; virtual TQIconSet iconSet( const TQString &widget ) const = 0;
/*! In the implementation return the include file which is needed /*! In the implementation return the include file which is needed
for the widget \a widget in the generated code which uic for the widget \a widget in the generated code which tquic
generates. */ generates. */
virtual TQString includeFile( const TQString &widget ) const = 0; virtual TQString includeFile( const TQString &widget ) const = 0;

@ -393,7 +393,7 @@ TQIconSet TQWidgetPlugin::iconSet( const TQString & ) const
/*! /*!
Returns the name of the include file that \e{TQt Designer} and \c Returns the name of the include file that \e{TQt Designer} and \c
uic should use to include the custom widget of class \a key in tquic should use to include the custom widget of class \a key in
generated code. generated code.
The default implementation returns TQString::null. The default implementation returns TQString::null.
@ -702,7 +702,7 @@ TQWidgetList TQWidgetContainerPlugin::pages( const TQString &, TQWidget * ) cons
Operates on the plugin's \a key class. Operates on the plugin's \a key class.
This function is called from \e{TQt Designer}'s User Interface This function is called from \e{TQt Designer}'s User Interface
Compiler \c uic, when generating C++ code for inserting a page in Compiler \c tquic, when generating C++ code for inserting a page in
the \a container custom widget. The name of the page widget which the \a container custom widget. The name of the page widget which
should be inserted at the end of the container is \a page, and the should be inserted at the end of the container is \a page, and the
label of the page should be \a pageName. label of the page should be \a pageName.
@ -715,7 +715,7 @@ TQWidgetList TQWidgetContainerPlugin::pages( const TQString &, TQWidget * ) cons
\endcode \endcode
Warning: If the code returned by this function contains invalid Warning: If the code returned by this function contains invalid
C++ syntax, the generated \c uic code will not compile. C++ syntax, the generated \c tquic code will not compile.
*/ */
TQString TQWidgetContainerPlugin::createCode( const TQString &, const TQString &, TQString TQWidgetContainerPlugin::createCode( const TQString &, const TQString &,

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions or slots use ** If you wish to add, delete or rename functions or slots use
** TQt Designer which will update this file, preserving your code. Create an ** TQt Designer which will update this file, preserving your code. Create an

@ -2,7 +2,7 @@ TEMPLATE = subdirs
CONFIG += ordered CONFIG += ordered
SUBDIRS = uic \ SUBDIRS = tquic \
uilib \ uilib \
designer \ designer \
app \ app \

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename slots use TQt Designer which will ** If you wish to add, delete or rename slots use TQt Designer which will
** update this file, preserving your code. Create an init() slot in place of ** update this file, preserving your code. Create an init() slot in place of

@ -1353,7 +1353,7 @@ filename &apos;%1&apos;. Please choose a new filename.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message encoding="UTF-8"> <message encoding="UTF-8">
<source>&lt;b&gt;Enter the name of the class that will be created.&lt;/b&gt;&lt;p&gt;&lt;em&gt;classname.h&lt;/em&gt; and &lt;em&gt;classname.cpp&lt;/em&gt; will be generated as C++-output when it is compiled with the uic.&lt;/p&gt;</source> <source>&lt;b&gt;Enter the name of the class that will be created.&lt;/b&gt;&lt;p&gt;&lt;em&gt;classname.h&lt;/em&gt; and &lt;em&gt;classname.cpp&lt;/em&gt; will be generated as C++-output when it is compiled with the tquic.&lt;/p&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message encoding="UTF-8"> <message encoding="UTF-8">

@ -1351,7 +1351,7 @@ filename &apos;%1&apos;. Please choose a new filename.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message encoding="UTF-8"> <message encoding="UTF-8">
<source>&lt;b&gt;Enter the name of the class that will be created.&lt;/b&gt;&lt;p&gt;&lt;em&gt;classname.h&lt;/em&gt; and &lt;em&gt;classname.cpp&lt;/em&gt; will be generated as C++-output when it is compiled with the uic.&lt;/p&gt;</source> <source>&lt;b&gt;Enter the name of the class that will be created.&lt;/b&gt;&lt;p&gt;&lt;em&gt;classname.h&lt;/em&gt; and &lt;em&gt;classname.cpp&lt;/em&gt; will be generated as C++-output when it is compiled with the tquic.&lt;/p&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message encoding="UTF-8"> <message encoding="UTF-8">

@ -509,7 +509,7 @@ TQString FormFile::codeExtension() const
TQString FormFile::codeComment() const TQString FormFile::codeComment() const
{ {
return TQString( "/****************************************************************************\n" return TQString( "/****************************************************************************\n"
"** ui.h extension file, included from the uic-generated form implementation.\n" "** ui.h extension file, included from the tquic-generated form implementation.\n"
"**\n" "**\n"
"** If you want to add, delete, or rename functions or slots, use\n" "** If you want to add, delete, or rename functions or slots, use\n"
"** TQt Designer to update this file, preserving your code.\n" "** TQt Designer to update this file, preserving your code.\n"

@ -173,7 +173,7 @@
<string>Change class name</string> <string>Change class name</string>
</property> </property>
<property name="whatsThis" stdset="0"> <property name="whatsThis" stdset="0">
<string>&lt;b&gt;Enter the name of the class that will be created.&lt;/b&gt;&lt;p&gt;&lt;em&gt;classname.h&lt;/em&gt; and &lt;em&gt;classname.cpp&lt;/em&gt; will be generated as C++ output when it is compiled by uic.&lt;/p&gt;</string> <string>&lt;b&gt;Enter the name of the class that will be created.&lt;/b&gt;&lt;p&gt;&lt;em&gt;classname.h&lt;/em&gt; and &lt;em&gt;classname.cpp&lt;/em&gt; will be generated as C++ output when it is compiled by tquic.&lt;/p&gt;</string>
</property> </property>
</widget> </widget>
<widget class="TQLabel" row="3" column="0"> <widget class="TQLabel" row="3" column="0">

@ -1834,7 +1834,7 @@ bool FormWindow::checkCustomWidgets()
"but are not known to TQt Designer:\n" ).arg( name() ); "but are not known to TQt Designer:\n" ).arg( name() );
for ( TQStringList::Iterator sit = missingCustomWidgets.begin(); sit != missingCustomWidgets.end(); ++sit ) for ( TQStringList::Iterator sit = missingCustomWidgets.begin(); sit != missingCustomWidgets.end(); ++sit )
txt += " " + *sit + "\n"; txt += " " + *sit + "\n";
txt += "If you save this form and generate code for it using uic, \n" txt += "If you save this form and generate code for it using tquic, \n"
"the generated code will not compile.\n" "the generated code will not compile.\n"
"Do you want to save this form now?"; "Do you want to save this form now?";
if ( TQMessageBox::information( mainWindow(), tr( "Save Form" ), txt ) == 1 ) if ( TQMessageBox::information( mainWindow(), tr( "Save Form" ), txt ) == 1 )

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename slots use TQt Designer which will ** If you wish to add, delete or rename slots use TQt Designer which will
** update this file, preserving your code. Create an init() slot in place of ** update this file, preserving your code. Create an init() slot in place of

@ -2219,7 +2219,7 @@ TQWidget *Resource::createSpacer( const TQDomElement &e, TQWidget *parent, TQLay
} }
/*! /*!
Attention: this function has to be in sync with Uic::setObjectProperty(). If you change one, change both. Attention: this function has to be in sync with TQUic::setObjectProperty(). If you change one, change both.
*/ */
void Resource::setObjectProperty( TQObject* obj, const TQString &prop, const TQDomElement &e ) void Resource::setObjectProperty( TQObject* obj, const TQString &prop, const TQDomElement &e )
{ {

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename slots use TQt Designer which will ** If you wish to add, delete or rename slots use TQt Designer which will
** update this file, preserving your code. Create an init() slot in place of ** update this file, preserving your code. Create an init() slot in place of

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename slots use TQt Designer which will ** If you wish to add, delete or rename slots use TQt Designer which will
** update this file, preserving your code. Create an init() slot in place of ** update this file, preserving your code. Create an init() slot in place of

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename slots use TQt Designer which will ** If you wish to add, delete or rename slots use TQt Designer which will
** update this file, preserving your code. Create an init() slot in place of ** update this file, preserving your code. Create an init() slot in place of

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename slots use TQt Designer which will ** If you wish to add, delete or rename slots use TQt Designer which will
** update this file, preserving your code. Create an init() slot in place of ** update this file, preserving your code. Create an init() slot in place of

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions use TQt Designer which will ** If you wish to add, delete or rename functions use TQt Designer which will
** update this file, preserving your code. Create an init() function in place ** update this file, preserving your code. Create an init() function in place

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions use TQt Designer which will ** If you wish to add, delete or rename functions use TQt Designer which will
** update this file, preserving your code. Create an init() function in place ** update this file, preserving your code. Create an init() function in place

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions use TQt Designer which will ** If you wish to add, delete or rename functions use TQt Designer which will
** update this file, preserving your code. Create an init() function in place ** update this file, preserving your code. Create an init() function in place

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions use TQt Designer which will ** If you wish to add, delete or rename functions use TQt Designer which will
** update this file, preserving your code. Create an init() function in place ** update this file, preserving your code. Create an init() function in place

@ -2,7 +2,7 @@
** Form implementation generated from reading ui file 'creditformbase.ui' ** Form implementation generated from reading ui file 'creditformbase.ui'
** **
** Created: Fri Aug 10 09:48:16 2001 ** Created: Fri Aug 10 09:48:16 2001
** by: The User Interface Compiler (uic) ** by: The User Interface Compiler (tquic)
** **
** WARNING! All changes made in this file will be lost! ** WARNING! All changes made in this file will be lost!
****************************************************************************/ ****************************************************************************/

@ -2,7 +2,7 @@
** Form interface generated from reading ui file 'creditformbase.ui' ** Form interface generated from reading ui file 'creditformbase.ui'
** **
** Created: Fri Aug 10 09:48:10 2001 ** Created: Fri Aug 10 09:48:10 2001
** by: The User Interface Compiler (uic) ** by: The User Interface Compiler (tquic)
** **
** WARNING! All changes made in this file will be lost! ** WARNING! All changes made in this file will be lost!
****************************************************************************/ ****************************************************************************/

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename functions respectively slots use ** If you wish to add, delete or rename functions respectively slots use
** TQt Designer which will update this file, preserving your code. Create an ** TQt Designer which will update this file, preserving your code. Create an

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** If you wish to add, delete or rename slots use TQt Designer which will ** If you wish to add, delete or rename slots use TQt Designer which will
** update this file, preserving your code. Create an init() slot in place of ** update this file, preserving your code. Create an init() slot in place of

@ -1,5 +1,5 @@
/**************************************************************************** /****************************************************************************
** ui.h extension file, included from the uic-generated form implementation. ** ui.h extension file, included from the tquic-generated form implementation.
** **
** Add custom slot implementations here. Use a slot init() for ** Add custom slot implementations here. Use a slot init() for
** initialization code called during construction, and a slot destroy() ** initialization code called during construction, and a slot destroy()

@ -89,7 +89,7 @@ TQStringList KDevDlgFilter::import( const TQString &, const TQString& filename )
{ {
TQFile file( filename ); TQFile file( filename );
if ( !file.open( IO_ReadOnly ) ) if ( !file.open( IO_ReadOnly ) )
tqWarning( "uic: Could not open file '%s' ", filename.latin1() ); tqWarning( "tquic: Could not open file '%s' ", filename.latin1() );
TQTextStream in; TQTextStream in;
in.setDevice( &file ); in.setDevice( &file );

@ -87,7 +87,7 @@ TQStringList RCFilter::import( const TQString &, const TQString& filename )
{ {
TQFile file( filename ); TQFile file( filename );
if ( !file.open( IO_ReadOnly ) ) if ( !file.open( IO_ReadOnly ) )
tqWarning( "uic: Could not open file '%s' ", filename.latin1() ); tqWarning( "tquic: Could not open file '%s' ", filename.latin1() );
TQTextStream in; TQTextStream in;
in.setDevice( &file ); in.setDevice( &file );

@ -47,7 +47,7 @@
\brief Tools for the dom \brief Tools for the dom
A collection of static functions used by Resource (part of the A collection of static functions used by Resource (part of the
designer) and Uic. designer) and TQUic.
*/ */

@ -126,7 +126,7 @@
specified. specified.
6. Some of the information stored in a .ui file is useful only 6. Some of the information stored in a .ui file is useful only
by uic, not to TQLayoutFactory. That information is, for now, by tquic, not to TQLayoutFactory. That information is, for now,
not taken along in the .uib file. Likewise, needless not taken along in the .uib file. Likewise, needless
TQLayoutWidget objects are not taken along. TQLayoutWidget objects are not taken along.

@ -89,7 +89,7 @@ private:
}; };
/* /*
uic uses insertCString(), insertString(), and block(); tquic uses insertCString(), insertString(), and block();
TQWidgetFactory uses readBlock(), asCString(), and asString(). By TQWidgetFactory uses readBlock(), asCString(), and asString(). By
implementing these functions inline, we ensure that the binaries implementing these functions inline, we ensure that the binaries
don't contain needless code. don't contain needless code.

@ -109,7 +109,7 @@ WidgetDatabase::WidgetDatabase()
void WidgetDatabase::setupDataBase( int id ) void WidgetDatabase::setupDataBase( int id )
{ {
was_in_setup = TRUE; was_in_setup = TRUE;
#ifndef UIC #ifndef TQUIC
Q_UNUSED( id ) Q_UNUSED( id )
if ( dbcount ) if ( dbcount )
return; return;
@ -240,7 +240,7 @@ void WidgetDatabase::setupDataBase( int id )
append( r ); append( r );
#if !defined(TQT_NO_ICONVIEW) || defined(UIC) #if !defined(TQT_NO_ICONVIEW) || defined(TQUIC)
r = new WidgetDatabaseRecord; r = new WidgetDatabaseRecord;
r->iconSet = "designer_iconview.png"; r->iconSet = "designer_iconview.png";
r->name = "TQIconView"; r->name = "TQIconView";
@ -572,7 +572,7 @@ void WidgetDatabase::setupDataBase( int id )
append( r ); append( r );
#endif #endif
#ifndef UIC #ifndef TQUIC
setupPlugins(); setupPlugins();
#endif #endif
} }
@ -592,7 +592,7 @@ void WidgetDatabase::setupPlugins()
if ( !iface ) if ( !iface )
continue; continue;
#ifndef UIC #ifndef TQUIC
TQIconSet icon = iface->iconSet( *it ); TQIconSet icon = iface->iconSet( *it );
if ( !icon.pixmap().isNull() ) if ( !icon.pixmap().isNull() )
r->icon = new TQIconSet( icon ); r->icon = new TQIconSet( icon );
@ -642,7 +642,7 @@ TQIconSet WidgetDatabase::iconSet( int id )
WidgetDatabaseRecord *r = at( id ); WidgetDatabaseRecord *r = at( id );
if ( !r ) if ( !r )
return TQIconSet(); return TQIconSet();
#if !defined(UIC) && !defined(RESOURCE) #if !defined(TQUIC) && !defined(RESOURCE)
if ( !r->icon ) { if ( !r->icon ) {
if ( r->iconSet.isEmpty() ) if ( r->iconSet.isEmpty() )
return TQIconSet(); return TQIconSet();
@ -792,7 +792,7 @@ int WidgetDatabase::idFromClassName( const TQString &name )
return *i; return *i;
if ( name == "FormWindow" ) if ( name == "FormWindow" )
return idFromClassName( "TQLayoutWidget" ); return idFromClassName( "TQLayoutWidget" );
#ifdef UIC #ifdef TQUIC
setupDataBase( -2 ); setupDataBase( -2 );
i = className2Id->find( name ); i = className2Id->find( name );
if ( i ) if ( i )
@ -932,7 +932,7 @@ void WidgetDatabase::loadWhatsThis( const TQString &docPath )
// ### TQt 3.1: make these publically accessible via TQWidgetDatabase API // ### TQt 3.1: make these publically accessible via TQWidgetDatabase API
#if defined(UIC) #if defined(TQUIC)
bool dbnounload = FALSE; bool dbnounload = FALSE;
TQStringList *dbpaths = 0; TQStringList *dbpaths = 0;
#else #else
@ -944,13 +944,13 @@ TQPluginManager<WidgetInterface> *widgetManager()
{ {
if ( !widgetPluginManager ) { if ( !widgetPluginManager ) {
TQString pluginDir = "/designer"; TQString pluginDir = "/designer";
#if !defined(UIC) #if !defined(TQUIC)
if ( qwf_plugin_dir ) if ( qwf_plugin_dir )
pluginDir = *qwf_plugin_dir; pluginDir = *qwf_plugin_dir;
#endif #endif
widgetPluginManager = new TQPluginManager<WidgetInterface>( IID_Widget, TQApplication::libraryPaths(), pluginDir ); widgetPluginManager = new TQPluginManager<WidgetInterface>( IID_Widget, TQApplication::libraryPaths(), pluginDir );
cleanup_manager.add( &widgetPluginManager ); cleanup_manager.add( &widgetPluginManager );
#if defined(UIC) #if defined(TQUIC)
if ( dbnounload ) if ( dbnounload )
widgetPluginManager->setAutoUnload( FALSE ); widgetPluginManager->setAutoUnload( FALSE );
if ( dbpaths ) { if ( dbpaths ) {

@ -31,7 +31,7 @@
** **
**********************************************************************/ **********************************************************************/
#include "uic.h" #include "tquic.h"
#include <tqfile.h> #include <tqfile.h>
#include <tqimage.h> #include <tqimage.h>
#include <tqstringlist.h> #include <tqstringlist.h>
@ -117,7 +117,7 @@ static void embedData( TQTextStream& out, const TQRgb* input, int n )
out << dec; // back to decimal mode out << dec; // back to decimal mode
} }
void Uic::embed( TQTextStream& out, const char* project, const TQStringList& images ) void TQUic::embed( TQTextStream& out, const char* project, const TQStringList& images )
{ {
TQString cProject = convertToCIdentifier( project ); TQString cProject = convertToCIdentifier( project );
@ -148,7 +148,7 @@ void Uic::embed( TQTextStream& out, const char* project, const TQStringList& ima
for ( it = images.begin(); it != images.end(); ++it ) { for ( it = images.begin(); it != images.end(); ++it ) {
TQImage img; TQImage img;
if ( !img.load( *it ) ) { if ( !img.load( *it ) ) {
fprintf( stderr, "uic: cannot load image file %s\n", (*it).latin1() ); fprintf( stderr, "tquic: cannot load image file %s\n", (*it).latin1() );
continue; continue;
} }
EmbedImage *e = new EmbedImage; EmbedImage *e = new EmbedImage;

@ -31,7 +31,7 @@
** **
**********************************************************************/ **********************************************************************/
#include "uic.h" #include "tquic.h"
#include "parser.h" #include "parser.h"
#include "widgetdatabase.h" #include "widgetdatabase.h"
#include "domtool.h" #include "domtool.h"
@ -123,7 +123,7 @@ TQCString combinePath( const char *infile, const char *outfile )
\sa createFormImpl(), createObjectDecl() \sa createFormImpl(), createObjectDecl()
*/ */
void Uic::createFormDecl( const TQDomElement &e ) void TQUic::createFormDecl( const TQDomElement &e )
{ {
TQDomElement n; TQDomElement n;
TQDomNodeList nl; TQDomNodeList nl;
@ -296,7 +296,7 @@ void Uic::createFormDecl( const TQDomElement &e )
forwardDecl += s; forwardDecl += s;
if ( (s.mid( 2 ) == "ListBox") || (s.mid( 2 ) == "ListView") || (s.mid( 2 ) == "IconView") ) if ( (s.mid( 2 ) == "ListBox") || (s.mid( 2 ) == "ListView") || (s.mid( 2 ) == "IconView") )
forwardDecl += "TQ" + s.mid( 2 ) + "Item"; forwardDecl += "TQ" + s.mid( 2 ) + "Item";
if ( s == "TQDataTable" ) { // other convenience classes which are used in TQDataTable signals, and thus should be forward-declared by uic for us if ( s == "TQDataTable" ) { // other convenience classes which are used in TQDataTable signals, and thus should be forward-declared by tquic for us
forwardDecl += "TQSqlRecord"; forwardDecl += "TQSqlRecord";
} }
} }
@ -624,7 +624,7 @@ void Uic::createFormDecl( const TQDomElement &e )
out << "#endif // " << protector << endl; out << "#endif // " << protector << endl;
} }
void Uic::writeFunctionsDecl( const TQStringList &fuLst, const TQStringList &typLst, const TQStringList &specLst ) void TQUic::writeFunctionsDecl( const TQStringList &fuLst, const TQStringList &typLst, const TQStringList &specLst )
{ {
TQValueListConstIterator<TQString> it, it2, it3; TQValueListConstIterator<TQString> it, it2, it3;
for ( it = fuLst.begin(), it2 = typLst.begin(), it3 = specLst.begin(); for ( it = fuLst.begin(), it2 = typLst.begin(), it3 = specLst.begin();
@ -656,7 +656,7 @@ void Uic::writeFunctionsDecl( const TQStringList &fuLst, const TQStringList &typ
\sa createFormDecl(), createObjectImpl() \sa createFormDecl(), createObjectImpl()
*/ */
void Uic::createFormImpl( const TQDomElement &e ) void TQUic::createFormImpl( const TQDomElement &e )
{ {
TQDomElement n; TQDomElement n;
TQDomNodeList nl; TQDomNodeList nl;
@ -897,7 +897,7 @@ void Uic::createFormImpl( const TQDomElement &e )
TQByteArray baunzip = unzipXPM( data, length ); TQByteArray baunzip = unzipXPM( data, length );
length = baunzip.size(); length = baunzip.size();
// shouldn't we test the initial 'length' against the // shouldn't we test the initial 'length' against the
// resulting 'length' to catch corrupt UIC files? // resulting 'length' to catch corrupt TQUIC files?
int a = 0; int a = 0;
int column = 0; int column = 0;
bool inQuote = FALSE; bool inQuote = FALSE;
@ -1435,7 +1435,7 @@ void Uic::createFormImpl( const TQDomElement &e )
Traverses recursively over all children. Traverses recursively over all children.
*/ */
void Uic::createFormImpl( const TQDomElement& e, const TQString& form, const TQString& connection, const TQString& table ) void TQUic::createFormImpl( const TQDomElement& e, const TQString& form, const TQString& connection, const TQString& table )
{ {
if ( e.tagName() == "widget" && if ( e.tagName() == "widget" &&
e.attribute( "class" ) != "TQDataTable" ) { e.attribute( "class" ) != "TQDataTable" ) {

@ -31,7 +31,7 @@
** **
**********************************************************************/ **********************************************************************/
#include "uic.h" #include "tquic.h"
#include "domtool.h" #include "domtool.h"
#if defined(UIB) #if defined(UIB)
#include "ui2uib.h" #include "ui2uib.h"
@ -197,7 +197,7 @@ int main( int argc, char * argv[] )
if ( argc < 2 || error || (!fileName && !imagecollection ) ) { if ( argc < 2 || error || (!fileName && !imagecollection ) ) {
fprintf( stderr, "TQt user interface compiler.\n" ); fprintf( stderr, "TQt user interface compiler.\n" );
if ( error ) if ( error )
fprintf( stderr, "uic: %s\n", error ); fprintf( stderr, "tquic: %s\n", error );
fprintf( stderr, "Usage: %s [options] [mode] <uifile>\n\n" fprintf( stderr, "Usage: %s [options] [mode] <uifile>\n\n"
"Generate declaration:\n" "Generate declaration:\n"
@ -230,7 +230,7 @@ int main( int argc, char * argv[] )
"\t-nounload Don't unload plugins after processing\n" "\t-nounload Don't unload plugins after processing\n"
"\t-tr func Use func() instead of tr() for i18n\n" "\t-tr func Use func() instead of tr() for i18n\n"
"\t-L path Additional plugin search path\n" "\t-L path Additional plugin search path\n"
"\t-version Display version of uic\n" "\t-version Display version of tquic\n"
"\t-help Display this information\n" "\t-help Display this information\n"
, argv[0], argv[0], argv[0], argv[0], argv[0], argv[0], argv[0] , argv[0], argv[0], argv[0], argv[0], argv[0], argv[0], argv[0]
#if defined(UIB) #if defined(UIB)
@ -265,7 +265,7 @@ int main( int argc, char * argv[] )
if ( !outputFile.isEmpty() ) { if ( !outputFile.isEmpty() ) {
fileOut.setName( outputFile ); fileOut.setName( outputFile );
if (!fileOut.open( IO_WriteOnly ) ) { if (!fileOut.open( IO_WriteOnly ) ) {
tqWarning( "uic: Could not open output file '%s'", outputFile.data() ); tqWarning( "tquic: Could not open output file '%s'", outputFile.data() );
return 1; return 1;
} }
} else { } else {
@ -275,7 +275,7 @@ int main( int argc, char * argv[] )
if ( imagecollection ) { if ( imagecollection ) {
out.setEncoding( TQTextStream::Latin1 ); out.setEncoding( TQTextStream::Latin1 );
Uic::embed( out, projectName, images ); TQUic::embed( out, projectName, images );
return 0; return 0;
} }
@ -283,7 +283,7 @@ int main( int argc, char * argv[] )
TQFile file( fileName ); TQFile file( fileName );
if ( !file.open( IO_ReadOnly ) ) { if ( !file.open( IO_ReadOnly ) ) {
tqWarning( "uic: Could not open file '%s'", fileName ); tqWarning( "tquic: Could not open file '%s'", fileName );
return 1; return 1;
} }
@ -291,13 +291,13 @@ int main( int argc, char * argv[] )
TQString errMsg; TQString errMsg;
int errLine; int errLine;
if ( !doc.setContent( &file, &errMsg, &errLine ) ) { if ( !doc.setContent( &file, &errMsg, &errLine ) ) {
tqWarning( TQString("uic: Failed to parse %s: ") + errMsg + TQString (" in line %d"), fileName, errLine ); tqWarning( TQString("tquic: Failed to parse %s: ") + errMsg + TQString (" in line %d"), fileName, errLine );
return 1; return 1;
} }
TQDomElement e = doc.firstChild().toElement(); TQDomElement e = doc.firstChild().toElement();
if ( e.hasAttribute("version") && e.attribute("version").toDouble() > 3.3 ) { if ( e.hasAttribute("version") && e.attribute("version").toDouble() > 3.3 ) {
tqWarning( TQString("uic: File generated with too recent version of TQt Designer (%s vs. %s)"), tqWarning( TQString("tquic: File generated with too recent version of TQt Designer (%s vs. %s)"),
e.attribute("version").latin1(), TQT_VERSION_STR ); e.attribute("version").latin1(), TQT_VERSION_STR );
return 1; return 1;
} }
@ -343,14 +343,14 @@ int main( int argc, char * argv[] )
out << "#include \"" << headerFile << "\"" << endl << endl; out << "#include \"" << headerFile << "\"" << endl << endl;
} }
Uic( fileName, outputFile, out, doc, !impl, subcl, trmacro, className, nofwd ); TQUic( fileName, outputFile, out, doc, !impl, subcl, trmacro, className, nofwd );
if ( !protector.isEmpty() ) { if ( !protector.isEmpty() ) {
out << endl; out << endl;
out << "#endif // " << protector << endl; out << "#endif // " << protector << endl;
} }
if ( fileOut.status() != IO_Ok ) { if ( fileOut.status() != IO_Ok ) {
tqWarning( "uic: Error writing to file" ); tqWarning( "tquic: Error writing to file" );
if ( !outputFile.isEmpty() ) if ( !outputFile.isEmpty() )
remove( outputFile ); remove( outputFile );
} }

@ -31,7 +31,7 @@
** **
**********************************************************************/ **********************************************************************/
#include "uic.h" #include "tquic.h"
#include "parser.h" #include "parser.h"
#include "domtool.h" #include "domtool.h"
#include <tqregexp.h> #include <tqregexp.h>
@ -49,7 +49,7 @@
\sa createObjectImpl() \sa createObjectImpl()
*/ */
void Uic::createObjectDecl( const TQDomElement& e ) void TQUic::createObjectDecl( const TQDomElement& e )
{ {
if ( e.tagName() == "vbox" ) { if ( e.tagName() == "vbox" ) {
out << " TQVBoxLayout* " << registerObject(getLayoutName(e) ) << ";" << endl; out << " TQVBoxLayout* " << registerObject(getLayoutName(e) ) << ";" << endl;
@ -90,7 +90,7 @@ void Uic::createObjectDecl( const TQDomElement& e )
static bool createdCentralWidget = FALSE; static bool createdCentralWidget = FALSE;
TQString Uic::createObjectImpl( const TQDomElement &e, const TQString& parentClass, const TQString& par, const TQString& layout ) TQString TQUic::createObjectImpl( const TQDomElement &e, const TQString& parentClass, const TQString& par, const TQString& layout )
{ {
TQString parent( par ); TQString parent( par );
if ( parent == "this" && isMainWindow ) { if ( parent == "this" && isMainWindow ) {
@ -351,7 +351,7 @@ TQString Uic::createObjectImpl( const TQDomElement &e, const TQString& parentCla
\sa createObjectDecl() \sa createObjectDecl()
*/ */
void Uic::createSpacerDecl( const TQDomElement &e ) void TQUic::createSpacerDecl( const TQDomElement &e )
{ {
for ( TQDomElement n = e.firstChild().toElement(); for ( TQDomElement n = e.firstChild().toElement();
!n.isNull(); n = n.nextSibling().toElement() ) !n.isNull(); n = n.nextSibling().toElement() )
@ -369,7 +369,7 @@ void Uic::createSpacerDecl( const TQDomElement &e )
application font or palette change handlers in createFormImpl(). application font or palette change handlers in createFormImpl().
*/ */
void Uic::createExclusiveProperty( const TQDomElement & e, const TQString& exclusiveProp ) void TQUic::createExclusiveProperty( const TQDomElement & e, const TQString& exclusiveProp )
{ {
TQDomElement n; TQDomElement n;
TQString objClass = getClassName( e ); TQString objClass = getClassName( e );
@ -402,7 +402,7 @@ void Uic::createExclusiveProperty( const TQDomElement & e, const TQString& exclu
Resource::saveProperty() and DomTool::elementToVariant. If you Resource::saveProperty() and DomTool::elementToVariant. If you
change one, change all. change one, change all.
*/ */
TQString Uic::setObjectProperty( const TQString& objClass, const TQString& obj, const TQString &prop, const TQDomElement &e, bool stdset ) TQString TQUic::setObjectProperty( const TQString& objClass, const TQString& obj, const TQString &prop, const TQDomElement &e, bool stdset )
{ {
TQString v; TQString v;
if ( e.tagName() == "rect" ) { if ( e.tagName() == "rect" ) {
@ -721,7 +721,7 @@ TQString Uic::setObjectProperty( const TQString& objClass, const TQString& obj,
/*! Extracts a named object property from \a e. /*! Extracts a named object property from \a e.
*/ */
TQDomElement Uic::getObjectProperty( const TQDomElement& e, const TQString& name ) TQDomElement TQUic::getObjectProperty( const TQDomElement& e, const TQString& name )
{ {
TQDomElement n; TQDomElement n;
for ( n = e.firstChild().toElement(); for ( n = e.firstChild().toElement();

@ -31,7 +31,7 @@
** **
**********************************************************************/ **********************************************************************/
#include "uic.h" #include "tquic.h"
#include "parser.h" #include "parser.h"
#include "widgetdatabase.h" #include "widgetdatabase.h"
#include "domtool.h" #include "domtool.h"
@ -50,7 +50,7 @@
\sa createSubImpl() \sa createSubImpl()
*/ */
void Uic::createSubDecl( const TQDomElement &e, const TQString& subClass ) void TQUic::createSubDecl( const TQDomElement &e, const TQString& subClass )
{ {
TQDomElement n; TQDomElement n;
TQDomNodeList nl; TQDomNodeList nl;
@ -177,7 +177,7 @@ void Uic::createSubDecl( const TQDomElement &e, const TQString& subClass )
out << "};" << endl; out << "};" << endl;
} }
void Uic::writeFunctionsSubDecl( const TQStringList &fuLst, const TQStringList &typLst, const TQStringList &specLst ) void TQUic::writeFunctionsSubDecl( const TQStringList &fuLst, const TQStringList &typLst, const TQStringList &specLst )
{ {
TQValueListConstIterator<TQString> it, it2, it3; TQValueListConstIterator<TQString> it, it2, it3;
for ( it = fuLst.begin(), it2 = typLst.begin(), it3 = specLst.begin(); for ( it = fuLst.begin(), it2 = typLst.begin(), it3 = specLst.begin();
@ -198,7 +198,7 @@ void Uic::writeFunctionsSubDecl( const TQStringList &fuLst, const TQStringList &
\sa createSubDecl() \sa createSubDecl()
*/ */
void Uic::createSubImpl( const TQDomElement &e, const TQString& subClass ) void TQUic::createSubImpl( const TQDomElement &e, const TQString& subClass )
{ {
TQDomElement n; TQDomElement n;
TQDomNodeList nl; TQDomNodeList nl;
@ -329,7 +329,7 @@ void Uic::createSubImpl( const TQDomElement &e, const TQString& subClass )
writeFunctionsSubImpl( privateSlots, privateSlotTypes, privateSlotSpecifier, subClass, "private slot" ); writeFunctionsSubImpl( privateSlots, privateSlotTypes, privateSlotSpecifier, subClass, "private slot" );
} }
void Uic::writeFunctionsSubImpl( const TQStringList &fuLst, const TQStringList &typLst, const TQStringList &specLst, void TQUic::writeFunctionsSubImpl( const TQStringList &fuLst, const TQStringList &typLst, const TQStringList &specLst,
const TQString &subClass, const TQString &descr ) const TQString &subClass, const TQString &descr )
{ {
TQValueListConstIterator<TQString> it, it2, it3; TQValueListConstIterator<TQString> it, it2, it3;

@ -31,7 +31,7 @@
** **
**********************************************************************/ **********************************************************************/
#include "uic.h" #include "tquic.h"
#include "parser.h" #include "parser.h"
#include "widgetdatabase.h" #include "widgetdatabase.h"
#include "domtool.h" #include "domtool.h"
@ -44,9 +44,9 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
bool Uic::isMainWindow = FALSE; bool TQUic::isMainWindow = FALSE;
TQString Uic::getComment( const TQDomNode& n ) TQString TQUic::getComment( const TQDomNode& n )
{ {
TQDomNode child = n.firstChild(); TQDomNode child = n.firstChild();
while ( !child.isNull() ) { while ( !child.isNull() ) {
@ -57,22 +57,22 @@ TQString Uic::getComment( const TQDomNode& n )
return TQString::null; return TQString::null;
} }
TQString Uic::mkBool( bool b ) TQString TQUic::mkBool( bool b )
{ {
return b? "TRUE" : "FALSE"; return b? "TRUE" : "FALSE";
} }
TQString Uic::mkBool( const TQString& s ) TQString TQUic::mkBool( const TQString& s )
{ {
return mkBool( s == "true" || s == "1" ); return mkBool( s == "true" || s == "1" );
} }
bool Uic::toBool( const TQString& s ) bool TQUic::toBool( const TQString& s )
{ {
return s == "true" || s.toInt() != 0; return s == "true" || s.toInt() != 0;
} }
TQString Uic::fixString( const TQString &str, bool encode ) TQString TQUic::fixString( const TQString &str, bool encode )
{ {
TQString s; TQString s;
if ( !encode ) { if ( !encode ) {
@ -98,7 +98,7 @@ TQString Uic::fixString( const TQString &str, bool encode )
return "\"" + s + "\""; return "\"" + s + "\"";
} }
TQString Uic::trcall( const TQString& sourceText, const TQString& comment ) TQString TQUic::trcall( const TQString& sourceText, const TQString& comment )
{ {
if ( sourceText.isEmpty() && comment.isEmpty() ) if ( sourceText.isEmpty() && comment.isEmpty() )
return "TQString::null"; return "TQString::null";
@ -124,7 +124,7 @@ TQString Uic::trcall( const TQString& sourceText, const TQString& comment )
} }
} }
TQString Uic::mkStdSet( const TQString& prop ) TQString TQUic::mkStdSet( const TQString& prop )
{ {
return TQString( "set" ) + prop[0].upper() + prop.mid(1); return TQString( "set" ) + prop[0].upper() + prop.mid(1);
} }
@ -132,12 +132,12 @@ TQString Uic::mkStdSet( const TQString& prop )
/*! /*!
\class Uic uic.h \class TQUic tquic.h
\brief User Interface Compiler \brief User Interface Compiler
The class Uic encapsulates the user interface compiler (uic). The class TQUic encapsulates the user interface compiler (tquic).
*/ */
Uic::Uic( const TQString &fn, const char *outputFn, TQTextStream &outStream, TQUic::TQUic( const TQString &fn, const char *outputFn, TQTextStream &outStream,
TQDomDocument doc, bool decl, bool subcl, const TQString &trm, TQDomDocument doc, bool decl, bool subcl, const TQString &trm,
const TQString& subClass, bool omitForwardDecls ) const TQString& subClass, bool omitForwardDecls )
: out( outStream ), trout( &languageChangeBody ), : out( outStream ), trout( &languageChangeBody ),
@ -215,7 +215,7 @@ Uic::Uic( const TQString &fn, const char *outputFn, TQTextStream &outStream,
/*! Extracts a pixmap loader function from \a e /*! Extracts a pixmap loader function from \a e
*/ */
TQString Uic::getPixmapLoaderFunction( const TQDomElement& e ) TQString TQUic::getPixmapLoaderFunction( const TQDomElement& e )
{ {
TQDomElement n; TQDomElement n;
for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
@ -228,7 +228,7 @@ TQString Uic::getPixmapLoaderFunction( const TQDomElement& e )
/*! Extracts the forms class name from \a e /*! Extracts the forms class name from \a e
*/ */
TQString Uic::getFormClassName( const TQDomElement& e ) TQString TQUic::getFormClassName( const TQDomElement& e )
{ {
TQDomElement n; TQDomElement n;
TQString cn; TQString cn;
@ -246,7 +246,7 @@ TQString Uic::getFormClassName( const TQDomElement& e )
/*! Extracts a class name from \a e. /*! Extracts a class name from \a e.
*/ */
TQString Uic::getClassName( const TQDomElement& e ) TQString TQUic::getClassName( const TQDomElement& e )
{ {
TQString s = e.attribute( "class" ); TQString s = e.attribute( "class" );
if ( s.isEmpty() && e.tagName() == "toolbar" ) if ( s.isEmpty() && e.tagName() == "toolbar" )
@ -259,7 +259,7 @@ TQString Uic::getClassName( const TQDomElement& e )
/*! Returns TRUE if database framework code is generated, else FALSE. /*! Returns TRUE if database framework code is generated, else FALSE.
*/ */
bool Uic::isFrameworkCodeGenerated( const TQDomElement& e ) bool TQUic::isFrameworkCodeGenerated( const TQDomElement& e )
{ {
TQDomElement n = getObjectProperty( e, "frameworkCode" ); TQDomElement n = getObjectProperty( e, "frameworkCode" );
if ( n.attribute("name") == "frameworkCode" && if ( n.attribute("name") == "frameworkCode" &&
@ -271,7 +271,7 @@ bool Uic::isFrameworkCodeGenerated( const TQDomElement& e )
/*! Extracts an object name from \a e. It's stored in the 'name' /*! Extracts an object name from \a e. It's stored in the 'name'
property. property.
*/ */
TQString Uic::getObjectName( const TQDomElement& e ) TQString TQUic::getObjectName( const TQDomElement& e )
{ {
TQDomElement n = getObjectProperty( e, "name" ); TQDomElement n = getObjectProperty( e, "name" );
if ( n.firstChild().toElement().tagName() == "cstring" ) if ( n.firstChild().toElement().tagName() == "cstring" )
@ -282,7 +282,7 @@ TQString Uic::getObjectName( const TQDomElement& e )
/*! Extracts an layout name from \a e. It's stored in the 'name' /*! Extracts an layout name from \a e. It's stored in the 'name'
property of the preceeding sibling (the first child of a TQLayoutWidget). property of the preceeding sibling (the first child of a TQLayoutWidget).
*/ */
TQString Uic::getLayoutName( const TQDomElement& e ) TQString TQUic::getLayoutName( const TQDomElement& e )
{ {
TQDomElement p = e.parentNode().toElement(); TQDomElement p = e.parentNode().toElement();
TQString name; TQString name;
@ -299,7 +299,7 @@ TQString Uic::getLayoutName( const TQDomElement& e )
} }
TQString Uic::getDatabaseInfo( const TQDomElement& e, const TQString& tag ) TQString TQUic::getDatabaseInfo( const TQDomElement& e, const TQString& tag )
{ {
TQDomElement n; TQDomElement n;
TQDomElement n1; TQDomElement n1;
@ -327,7 +327,7 @@ TQString Uic::getDatabaseInfo( const TQDomElement& e, const TQString& tag )
} }
void Uic::registerLayouts( const TQDomElement &e ) void TQUic::registerLayouts( const TQDomElement &e )
{ {
if ( layouts.contains(e.tagName())) { if ( layouts.contains(e.tagName())) {
createObjectDecl(e); createObjectDecl(e);
@ -345,7 +345,7 @@ void Uic::registerLayouts( const TQDomElement &e )
/*! /*!
Returns include file for class \a className or a null string. Returns include file for class \a className or a null string.
*/ */
TQString Uic::getInclude( const TQString& className ) TQString TQUic::getInclude( const TQString& className )
{ {
int wid = WidgetDatabase::idFromClassName( className ); int wid = WidgetDatabase::idFromClassName( className );
if ( wid != -1 ) if ( wid != -1 )
@ -354,7 +354,7 @@ TQString Uic::getInclude( const TQString& className )
} }
void Uic::createActionDecl( const TQDomElement& e ) void TQUic::createActionDecl( const TQDomElement& e )
{ {
TQString objClass = e.tagName() == "action" ? "TQAction" : "TQActionGroup"; TQString objClass = e.tagName() == "action" ? "TQAction" : "TQActionGroup";
TQString objName = getObjectName( e ); TQString objName = getObjectName( e );
@ -369,13 +369,13 @@ void Uic::createActionDecl( const TQDomElement& e )
} }
} }
void Uic::createToolbarDecl( const TQDomElement &e ) void TQUic::createToolbarDecl( const TQDomElement &e )
{ {
if ( e.tagName() == "toolbar" ) if ( e.tagName() == "toolbar" )
out << " " << "TQToolBar *" << getObjectName( e ) << ";" << endl; out << " " << "TQToolBar *" << getObjectName( e ) << ";" << endl;
} }
void Uic::createMenuBarDecl( const TQDomElement &e ) void TQUic::createMenuBarDecl( const TQDomElement &e )
{ {
if ( e.tagName() == "item" ) { if ( e.tagName() == "item" ) {
out << " " << "TQPopupMenu *" << e.attribute( "name" ) << ";" << endl; out << " " << "TQPopupMenu *" << e.attribute( "name" ) << ";" << endl;
@ -383,7 +383,7 @@ void Uic::createMenuBarDecl( const TQDomElement &e )
} }
} }
void Uic::createPopupMenuDecl( const TQDomElement &e ) void TQUic::createPopupMenuDecl( const TQDomElement &e )
{ {
for ( TQDomElement n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { for ( TQDomElement n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
if ( n.tagName() == "action" || n.tagName() == "actiongroup" ) { if ( n.tagName() == "action" || n.tagName() == "actiongroup" ) {
@ -397,7 +397,7 @@ void Uic::createPopupMenuDecl( const TQDomElement &e )
} }
} }
void Uic::createActionImpl( const TQDomElement &n, const TQString &parent ) void TQUic::createActionImpl( const TQDomElement &n, const TQString &parent )
{ {
for ( TQDomElement ae = n; !ae.isNull(); ae = ae.nextSibling().toElement() ) { for ( TQDomElement ae = n; !ae.isNull(); ae = ae.nextSibling().toElement() ) {
TQString objName = registerObject( getObjectName( ae ) ); TQString objName = registerObject( getObjectName( ae ) );
@ -470,7 +470,7 @@ TQString get_dock( const TQString &d )
return ""; return "";
} }
void Uic::createToolbarImpl( const TQDomElement &n, const TQString &parentClass, const TQString &parent ) void TQUic::createToolbarImpl( const TQDomElement &n, const TQString &parentClass, const TQString &parent )
{ {
TQDomNodeList nl = n.elementsByTagName( "toolbar" ); TQDomNodeList nl = n.elementsByTagName( "toolbar" );
for ( int i = 0; i < (int) nl.length(); i++ ) { for ( int i = 0; i < (int) nl.length(); i++ ) {
@ -498,7 +498,7 @@ void Uic::createToolbarImpl( const TQDomElement &n, const TQString &parentClass,
} }
} }
void Uic::createMenuBarImpl( const TQDomElement &n, const TQString &parentClass, const TQString &parent ) void TQUic::createMenuBarImpl( const TQDomElement &n, const TQString &parentClass, const TQString &parent )
{ {
TQString objName = getObjectName( n ); TQString objName = getObjectName( n );
out << indent << objName << " = new TQMenuBar( this, \"" << objName << "\" );" << endl; out << indent << objName << " = new TQMenuBar( this, \"" << objName << "\" );" << endl;
@ -525,7 +525,7 @@ void Uic::createMenuBarImpl( const TQDomElement &n, const TQString &parentClass,
} }
} }
void Uic::createPopupMenuImpl( const TQDomElement &e, const TQString &parentClass, const TQString &parent ) void TQUic::createPopupMenuImpl( const TQDomElement &e, const TQString &parentClass, const TQString &parent )
{ {
int i = 0; int i = 0;
for ( TQDomElement n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) { for ( TQDomElement n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
@ -555,7 +555,7 @@ void Uic::createPopupMenuImpl( const TQDomElement &e, const TQString &parentClas
Creates implementation of an listbox item tag. Creates implementation of an listbox item tag.
*/ */
TQString Uic::createListBoxItemImpl( const TQDomElement &e, const TQString &parent, TQString TQUic::createListBoxItemImpl( const TQDomElement &e, const TQString &parent,
TQString *value ) TQString *value )
{ {
TQDomElement n = e.firstChild().toElement(); TQDomElement n = e.firstChild().toElement();
@ -594,7 +594,7 @@ TQString Uic::createListBoxItemImpl( const TQDomElement &e, const TQString &pare
Creates implementation of an iconview item tag. Creates implementation of an iconview item tag.
*/ */
TQString Uic::createIconViewItemImpl( const TQDomElement &e, const TQString &parent ) TQString TQUic::createIconViewItemImpl( const TQDomElement &e, const TQString &parent )
{ {
TQDomElement n = e.firstChild().toElement(); TQDomElement n = e.firstChild().toElement();
TQString txt; TQString txt;
@ -628,7 +628,7 @@ TQString Uic::createIconViewItemImpl( const TQDomElement &e, const TQString &par
Creates implementation of an listview item tag. Creates implementation of an listview item tag.
*/ */
TQString Uic::createListViewItemImpl( const TQDomElement &e, const TQString &parent, TQString TQUic::createListViewItemImpl( const TQDomElement &e, const TQString &parent,
const TQString &parentItem ) const TQString &parentItem )
{ {
TQString s; TQString s;
@ -693,7 +693,7 @@ TQString Uic::createListViewItemImpl( const TQDomElement &e, const TQString &par
Creates implementation of an listview column tag. Creates implementation of an listview column tag.
*/ */
TQString Uic::createListViewColumnImpl( const TQDomElement &e, const TQString &parent, TQString TQUic::createListViewColumnImpl( const TQDomElement &e, const TQString &parent,
TQString *value ) TQString *value )
{ {
TQDomElement n = e.firstChild().toElement(); TQDomElement n = e.firstChild().toElement();
@ -736,7 +736,7 @@ TQString Uic::createListViewColumnImpl( const TQDomElement &e, const TQString &p
return s; return s;
} }
TQString Uic::createTableRowColumnImpl( const TQDomElement &e, const TQString &parent, TQString TQUic::createTableRowColumnImpl( const TQDomElement &e, const TQString &parent,
TQString *value ) TQString *value )
{ {
TQString objClass = getClassName( e.parentNode().toElement() ); TQString objClass = getClassName( e.parentNode().toElement() );
@ -805,7 +805,7 @@ TQString Uic::createTableRowColumnImpl( const TQDomElement &e, const TQString &p
/*! /*!
Creates the implementation of a layout tag. Called from createObjectImpl(). Creates the implementation of a layout tag. Called from createObjectImpl().
*/ */
TQString Uic::createLayoutImpl( const TQDomElement &e, const TQString& parentClass, const TQString& parent, const TQString& layout ) TQString TQUic::createLayoutImpl( const TQDomElement &e, const TQString& parentClass, const TQString& parent, const TQString& layout )
{ {
TQDomElement n; TQDomElement n;
TQString objClass, objName; TQString objClass, objName;
@ -902,7 +902,7 @@ TQString Uic::createLayoutImpl( const TQDomElement &e, const TQString& parentCla
TQString Uic::createSpacerImpl( const TQDomElement &e, const TQString& /*parentClass*/, const TQString& /*parent*/, const TQString& /*layout*/) TQString TQUic::createSpacerImpl( const TQDomElement &e, const TQString& /*parentClass*/, const TQString& /*parent*/, const TQString& /*layout*/)
{ {
TQDomElement n; TQDomElement n;
TQString objClass, objName; TQString objClass, objName;
@ -941,7 +941,7 @@ static const char* const ColorRole[] = {
/*! /*!
Creates a colorgroup with name \a name from the color group \a cg Creates a colorgroup with name \a name from the color group \a cg
*/ */
void Uic::createColorGroupImpl( const TQString& name, const TQDomElement& e ) void TQUic::createColorGroupImpl( const TQString& name, const TQDomElement& e )
{ {
TQColorGroup cg; TQColorGroup cg;
int r = -1; int r = -1;
@ -977,7 +977,7 @@ void Uic::createColorGroupImpl( const TQString& name, const TQDomElement& e )
Auxiliary function to load a color group. The colorgroup must not Auxiliary function to load a color group. The colorgroup must not
contain pixmaps. contain pixmaps.
*/ */
TQColorGroup Uic::loadColorGroup( const TQDomElement &e ) TQColorGroup TQUic::loadColorGroup( const TQDomElement &e )
{ {
TQColorGroup cg; TQColorGroup cg;
int r = -1; int r = -1;
@ -997,7 +997,7 @@ TQColorGroup Uic::loadColorGroup( const TQDomElement &e )
the database \a connection and \a table. the database \a connection and \a table.
*/ */
bool Uic::isWidgetInTable( const TQDomElement& e, const TQString& connection, const TQString& table ) bool TQUic::isWidgetInTable( const TQDomElement& e, const TQString& connection, const TQString& table )
{ {
TQString conn = getDatabaseInfo( e, "connection" ); TQString conn = getDatabaseInfo( e, "connection" );
TQString tab = getDatabaseInfo( e, "table" ); TQString tab = getDatabaseInfo( e, "table" );
@ -1010,7 +1010,7 @@ bool Uic::isWidgetInTable( const TQDomElement& e, const TQString& connection, co
Registers all database connections, cursors and forms. Registers all database connections, cursors and forms.
*/ */
void Uic::registerDatabases( const TQDomElement& e ) void TQUic::registerDatabases( const TQDomElement& e )
{ {
TQDomElement n; TQDomElement n;
TQDomNodeList nl; TQDomNodeList nl;
@ -1040,7 +1040,7 @@ void Uic::registerDatabases( const TQDomElement& e )
\sa registeredName(), isObjectRegistered() \sa registeredName(), isObjectRegistered()
*/ */
TQString Uic::registerObject( const TQString& name ) TQString TQUic::registerObject( const TQString& name )
{ {
if ( objectNames.isEmpty() ) { if ( objectNames.isEmpty() ) {
// some temporary variables we need // some temporary variables we need
@ -1074,7 +1074,7 @@ TQString Uic::registerObject( const TQString& name )
\sa registerObject(), isObjectRegistered() \sa registerObject(), isObjectRegistered()
*/ */
TQString Uic::registeredName( const TQString& name ) TQString TQUic::registeredName( const TQString& name )
{ {
if ( !objectMapper.contains( name ) ) if ( !objectMapper.contains( name ) )
return name; return name;
@ -1084,7 +1084,7 @@ TQString Uic::registeredName( const TQString& name )
/*! /*!
Returns whether the object \a name was registered yet or not. Returns whether the object \a name was registered yet or not.
*/ */
bool Uic::isObjectRegistered( const TQString& name ) bool TQUic::isObjectRegistered( const TQString& name )
{ {
return objectMapper.contains( name ); return objectMapper.contains( name );
} }
@ -1093,7 +1093,7 @@ bool Uic::isObjectRegistered( const TQString& name )
/*! /*!
Unifies the entries in stringlist \a list. Should really be a TQStringList feature. Unifies the entries in stringlist \a list. Should really be a TQStringList feature.
*/ */
TQStringList Uic::unique( const TQStringList& list ) TQStringList TQUic::unique( const TQStringList& list )
{ {
if ( list.isEmpty() ) if ( list.isEmpty() )
return list; return list;
@ -1111,7 +1111,7 @@ TQStringList Uic::unique( const TQStringList& list )
/*! /*!
Creates an instance of class \a objClass, with parent \a parent and name \a objName Creates an instance of class \a objClass, with parent \a parent and name \a objName
*/ */
TQString Uic::createObjectInstance( const TQString& objClass, const TQString& parent, const TQString& objName ) TQString TQUic::createObjectInstance( const TQString& objClass, const TQString& parent, const TQString& objName )
{ {
if (( objClass.mid( 1 ) == "ComboBox" ) || ( objClass.mid( 2 ) == "ComboBox" )) { if (( objClass.mid( 1 ) == "ComboBox" ) || ( objClass.mid( 2 ) == "ComboBox" )) {
@ -1120,7 +1120,7 @@ TQString Uic::createObjectInstance( const TQString& objClass, const TQString& pa
return objClass + "( " + parent + ", \"" + objName + "\" )"; return objClass + "( " + parent + ", \"" + objName + "\" )";
} }
bool Uic::isLayout( const TQString& name ) const bool TQUic::isLayout( const TQString& name ) const
{ {
return layoutObjects.contains( name ); return layoutObjects.contains( name );
} }

@ -41,10 +41,10 @@
#include <tqpalette.h> #include <tqpalette.h>
#include <tqvariant.h> #include <tqvariant.h>
class Uic : public TQt class TQUic : public TQt
{ {
public: public:
Uic( const TQString &fn, const char *outputFn, TQTextStream& out, TQUic( const TQString &fn, const char *outputFn, TQTextStream& out,
TQDomDocument doc, bool decl, bool subcl, const TQString &trm, TQDomDocument doc, bool decl, bool subcl, const TQString &trm,
const TQString& subclname, bool omitForwardDecls ); const TQString& subclname, bool omitForwardDecls );

@ -1,6 +1,6 @@
TEMPLATE = app TEMPLATE = app
CONFIG += qt console warn_on release professional CONFIG += qt console warn_on release professional
HEADERS = uic.h \ HEADERS = tquic.h \
../shared/widgetdatabase.h \ ../shared/widgetdatabase.h \
../shared/domtool.h \ ../shared/domtool.h \
../shared/parser.h \ ../shared/parser.h \
@ -9,7 +9,7 @@ HEADERS = uic.h \
#HEADERS += ../shared/ui2uib.h \ #HEADERS += ../shared/ui2uib.h \
# ../shared/uib.h # ../shared/uib.h
SOURCES = main.cpp uic.cpp form.cpp object.cpp \ SOURCES = main.cpp tquic.cpp form.cpp object.cpp \
subclassing.cpp embed.cpp\ subclassing.cpp embed.cpp\
../shared/widgetdatabase.cpp \ ../shared/widgetdatabase.cpp \
../shared/domtool.cpp \ ../shared/domtool.cpp \
@ -23,7 +23,7 @@ include( ../../../src/qt_professional.pri )
TARGET = tquic TARGET = tquic
INCLUDEPATH += ../shared INCLUDEPATH += ../shared
DEFINES += UIC DEFINES += TQUIC
DESTDIR = ../../../bin DESTDIR = ../../../bin
target.path=$$bins.path target.path=$$bins.path
Loading…
Cancel
Save