summaryrefslogtreecommitdiffstats
path: root/python/pyqt/pyuic3
diff options
context:
space:
mode:
Diffstat (limited to 'python/pyqt/pyuic3')
-rw-r--r--python/pyqt/pyuic3/LICENSE.GPL280
-rw-r--r--python/pyqt/pyuic3/domtool.cpp447
-rw-r--r--python/pyqt/pyuic3/domtool.h47
-rw-r--r--python/pyqt/pyuic3/embed.cpp323
-rw-r--r--python/pyqt/pyuic3/form.cpp938
-rw-r--r--python/pyqt/pyuic3/globaldefs.h56
-rw-r--r--python/pyqt/pyuic3/main.cpp245
-rw-r--r--python/pyqt/pyuic3/object.cpp704
-rw-r--r--python/pyqt/pyuic3/parser.cpp66
-rw-r--r--python/pyqt/pyuic3/parser.h33
-rw-r--r--python/pyqt/pyuic3/pyuic-prof.sbf24
-rw-r--r--python/pyqt/pyuic3/pyuic.pro.in36
-rw-r--r--python/pyqt/pyuic3/pyuic.sbf24
-rw-r--r--python/pyqt/pyuic3/subclassing.cpp185
-rw-r--r--python/pyqt/pyuic3/uic.cpp1145
-rw-r--r--python/pyqt/pyuic3/uic.h183
-rw-r--r--python/pyqt/pyuic3/widgetdatabase.cpp953
-rw-r--r--python/pyqt/pyuic3/widgetdatabase.h96
-rw-r--r--python/pyqt/pyuic3/widgetinterface.h29
19 files changed, 0 insertions, 5814 deletions
diff --git a/python/pyqt/pyuic3/LICENSE.GPL b/python/pyqt/pyuic3/LICENSE.GPL
deleted file mode 100644
index c7aea189..00000000
--- a/python/pyqt/pyuic3/LICENSE.GPL
+++ /dev/null
@@ -1,280 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
diff --git a/python/pyqt/pyuic3/domtool.cpp b/python/pyqt/pyuic3/domtool.cpp
deleted file mode 100644
index d083aaae..00000000
--- a/python/pyqt/pyuic3/domtool.cpp
+++ /dev/null
@@ -1,447 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "domtool.h"
-
-#include <tqsizepolicy.h>
-#include <tqcolor.h>
-#include <tqcursor.h>
-#include <tqdatetime.h>
-#include <tqrect.h>
-#include <tqsize.h>
-#include <tqfont.h>
-#include <tqdom.h>
-
-/*!
- \class DomTool domtool.h
- \brief Tools for the dom
-
- A collection of static functions used by Resource (part of the
- designer) and Uic.
-
-*/
-
-/*!
- Returns the contents of property \a name of object \a e as
- variant or the variant passed as \a defValue if the property does
- not exist.
-
- \sa hasProperty()
-*/
-TQVariant DomTool::readProperty( const TQDomElement& e, const TQString& name, const TQVariant& defValue, TQString& comment )
-{
- TQDomElement n;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "property" ) {
- if ( n.attribute( "name" ) != name )
- continue;
- return elementToVariant( n.firstChild().toElement(), defValue, comment );
- }
- }
- return defValue;
-}
-
-
-/*!
- \overload
- */
-TQVariant DomTool::readProperty( const TQDomElement& e, const TQString& name, const TQVariant& defValue )
-{
- TQString comment;
- return readProperty( e, name, defValue, comment );
-}
-
-/*!
- Returns wheter object \a e defines property \a name or not.
-
- \sa readProperty()
- */
-bool DomTool::hasProperty( const TQDomElement& e, const TQString& name )
-{
- TQDomElement n;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "property" ) {
- if ( n.attribute( "name" ) != name )
- continue;
- return TRUE;
- }
- }
- return FALSE;
-}
-
-TQStringList DomTool::propertiesOfType( const TQDomElement& e, const TQString& type )
-{
- TQStringList result;
- TQDomElement n;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "property" ) {
- TQDomElement n2 = n.firstChild().toElement();
- if ( n2.tagName() == type )
- result += n.attribute( "name" );
- }
- }
- return result;
-}
-
-
-TQVariant DomTool::elementToVariant( const TQDomElement& e, const TQVariant& defValue )
-{
- TQString dummy;
- return elementToVariant( e, defValue, dummy );
-}
-
-/*!
- Interprets element \a e as variant and returns the result of the interpretation.
- */
-TQVariant DomTool::elementToVariant( const TQDomElement& e, const TQVariant& defValue, TQString &comment )
-{
- TQVariant v;
- if ( e.tagName() == "rect" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int x = 0, y = 0, w = 0, h = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "x" )
- x = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "y" )
- y = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "width" )
- w = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "height" )
- h = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = TQVariant( TQRect( x, y, w, h ) );
- } else if ( e.tagName() == "point" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int x = 0, y = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "x" )
- x = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "y" )
- y = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = TQVariant( TQPoint( x, y ) );
- } else if ( e.tagName() == "size" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int w = 0, h = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "width" )
- w = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "height" )
- h = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = TQVariant( TQSize( w, h ) );
- } else if ( e.tagName() == "color" ) {
- v = TQVariant( readColor( e ) );
- } else if ( e.tagName() == "font" ) {
- TQDomElement n3 = e.firstChild().toElement();
- TQFont f( defValue.toFont() );
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "family" )
- f.setFamily( n3.firstChild().toText().data() );
- else if ( n3.tagName() == "pointsize" )
- f.setPointSize( n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "bold" )
- f.setBold( n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "italic" )
- f.setItalic( n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "underline" )
- f.setUnderline( n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "strikeout" )
- f.setStrikeOut( n3.firstChild().toText().data().toInt() );
- n3 = n3.nextSibling().toElement();
- }
- v = TQVariant( f );
- } else if ( e.tagName() == "string" ) {
- v = TQVariant( e.firstChild().toText().data() );
- TQDomElement n = e;
- n = n.nextSibling().toElement();
- if ( n.tagName() == "comment" )
- comment = n.firstChild().toText().data();
- } else if ( e.tagName() == "cstring" ) {
- v = TQVariant( TQCString( e.firstChild().toText().data() ) );
- } else if ( e.tagName() == "number" ) {
- bool ok = TRUE;
- v = TQVariant( e.firstChild().toText().data().toInt( &ok ) );
- if ( !ok )
- v = TQVariant( e.firstChild().toText().data().toDouble() );
- } else if ( e.tagName() == "bool" ) {
- TQString t = e.firstChild().toText().data();
- v = TQVariant( t == "true" || t == "1", 0 );
- } else if ( e.tagName() == "pixmap" ) {
- v = TQVariant( e.firstChild().toText().data() );
- } else if ( e.tagName() == "iconset" ) {
- v = TQVariant( e.firstChild().toText().data() );
- } else if ( e.tagName() == "image" ) {
- v = TQVariant( e.firstChild().toText().data() );
- } else if ( e.tagName() == "enum" ) {
- v = TQVariant( e.firstChild().toText().data() );
- } else if ( e.tagName() == "set" ) {
- v = TQVariant( e.firstChild().toText().data() );
- } else if ( e.tagName() == "sizepolicy" ) {
- TQDomElement n3 = e.firstChild().toElement();
- TQSizePolicy sp;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "hsizetype" )
- sp.setHorData( (TQSizePolicy::SizeType)n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "vsizetype" )
- sp.setVerData( (TQSizePolicy::SizeType)n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "horstretch" )
- sp.setHorStretch( n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "verstretch" )
- sp.setVerStretch( n3.firstChild().toText().data().toInt() );
- n3 = n3.nextSibling().toElement();
- }
- v = TQVariant( sp );
- } else if ( e.tagName() == "cursor" ) {
- v = TQVariant( TQCursor( e.firstChild().toText().data().toInt() ) );
- } else if ( e.tagName() == "stringlist" ) {
- TQStringList lst;
- TQDomElement n;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() )
- lst << n.firstChild().toText().data();
- v = TQVariant( lst );
- } else if ( e.tagName() == "date" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int y, m, d;
- y = m = d = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "year" )
- y = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "month" )
- m = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "day" )
- d = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = TQVariant( TQDate( y, m, d ) );
- } else if ( e.tagName() == "time" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int h, m, s;
- h = m = s = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "hour" )
- h = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "minute" )
- m = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "second" )
- s = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = TQVariant( TQTime( h, m, s ) );
- } else if ( e.tagName() == "datetime" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int h, mi, s, y, mo, d ;
- h = mi = s = y = mo = d = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "hour" )
- h = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "minute" )
- mi = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "second" )
- s = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "year" )
- y = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "month" )
- mo = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "day" )
- d = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = TQVariant( TQDateTime( TQDate( y, mo, d ), TQTime( h, mi, s ) ) );
- }
- return v;
-}
-
-
-/*! Returns the color which is returned in the dom element \a e.
- */
-
-TQColor DomTool::readColor( const TQDomElement &e )
-{
- TQDomElement n = e.firstChild().toElement();
- int r= 0, g = 0, b = 0;
- while ( !n.isNull() ) {
- if ( n.tagName() == "red" )
- r = n.firstChild().toText().data().toInt();
- else if ( n.tagName() == "green" )
- g = n.firstChild().toText().data().toInt();
- else if ( n.tagName() == "blue" )
- b = n.firstChild().toText().data().toInt();
- n = n.nextSibling().toElement();
- }
-
- return TQColor( r, g, b );
-}
-
-/*!
- Returns the contents of attribute \a name of object \a e as
- variant or the variant passed as \a defValue if the attribute does
- not exist.
-
- \sa hasAttribute()
- */
-TQVariant DomTool::readAttribute( const TQDomElement& e, const TQString& name, const TQVariant& defValue, TQString& comment )
-{
- TQDomElement n;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "attribute" ) {
- if ( n.attribute( "name" ) != name )
- continue;
- return elementToVariant( n.firstChild().toElement(), defValue, comment );
- }
- }
- return defValue;
-}
-
-/*!
- \overload
-*/
-TQVariant DomTool::readAttribute( const TQDomElement& e, const TQString& name, const TQVariant& defValue )
-{
- TQString comment;
- return readAttribute( e, name, defValue, comment );
-}
-
-/*!
- Returns wheter object \a e defines attribute \a name or not.
-
- \sa readAttribute()
- */
-bool DomTool::hasAttribute( const TQDomElement& e, const TQString& name )
-{
- TQDomElement n;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "attribute" ) {
- if ( n.attribute( "name" ) != name )
- continue;
- return TRUE;
- }
- }
- return FALSE;
-}
-
-static bool toBool( const TQString& s )
-{
- return s == "true" || s.toInt() != 0;
-}
-
-/*!
- Convert Qt 2.x format to Qt 3.0 format if necessary
-*/
-void DomTool::fixDocument( TQDomDocument& doc )
-{
- TQDomElement e;
- TQDomNode n;
- TQDomNodeList nl;
- int i = 0;
-
- e = doc.firstChild().toElement();
- if ( e.tagName() != "UI" )
- return;
-
- // latest version, don't do anything
- if ( e.hasAttribute("version") && e.attribute("version").toDouble() > 3.0 )
- return;
-
- nl = doc.elementsByTagName( "property" );
-
- // in 3.0, we need to fix a spelling error
- if ( e.hasAttribute("version") && e.attribute("version").toDouble() == 3.0 ) {
- for ( i = 0; i < (int) nl.length(); i++ ) {
- TQDomElement el = nl.item(i).toElement();
- TQString s = el.attribute( "name" );
- if ( s == "resizeable" ) {
- el.removeAttribute( "name" );
- el.setAttribute( "name", "resizable" );
- }
- }
- return;
- }
-
-
- // in versions smaller than 3.0 we need to change more
- e.setAttribute( "version", 3.0 );
-
- e.setAttribute("stdsetdef", 1 );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- e = nl.item(i).toElement();
- TQString name;
- TQDomElement n2 = e.firstChild().toElement();
- if ( n2.tagName() == "name" ) {
- name = n2.firstChild().toText().data();
- if ( name == "resizeable" )
- e.setAttribute( "name", "resizable" );
- else
- e.setAttribute( "name", name );
- e.removeChild( n2 );
- }
- bool stdset = toBool( e.attribute( "stdset" ) );
- if ( stdset || name == "toolTip" || name == "whatsThis" ||
- name == "buddy" ||
- e.parentNode().toElement().tagName() == "item" ||
- e.parentNode().toElement().tagName() == "spacer" ||
- e.parentNode().toElement().tagName() == "column"
- )
- e.removeAttribute( "stdset" );
- else
- e.setAttribute( "stdset", 0 );
- }
-
- nl = doc.elementsByTagName( "attribute" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- e = nl.item(i).toElement();
- TQString name;
- TQDomElement n2 = e.firstChild().toElement();
- if ( n2.tagName() == "name" ) {
- name = n2.firstChild().toText().data();
- e.setAttribute( "name", name );
- e.removeChild( n2 );
- }
- }
-
- nl = doc.elementsByTagName( "image" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- e = nl.item(i).toElement();
- TQString name;
- TQDomElement n2 = e.firstChild().toElement();
- if ( n2.tagName() == "name" ) {
- name = n2.firstChild().toText().data();
- e.setAttribute( "name", name );
- e.removeChild( n2 );
- }
- }
-
- nl = doc.elementsByTagName( "widget" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- e = nl.item(i).toElement();
- TQString name;
- TQDomElement n2 = e.firstChild().toElement();
- if ( n2.tagName() == "class" ) {
- name = n2.firstChild().toText().data();
- e.setAttribute( "class", name );
- e.removeChild( n2 );
- }
- }
-
-}
-
diff --git a/python/pyqt/pyuic3/domtool.h b/python/pyqt/pyuic3/domtool.h
deleted file mode 100644
index d88e32eb..00000000
--- a/python/pyqt/pyuic3/domtool.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#ifndef DOMTOOL_H
-#define DOMTOOL_H
-
-#include <tqvariant.h>
-#include <tqnamespace.h>
-
-class TQDomElement;
-class TQDomDocument;
-
-class DomTool : public Qt
-{
-public:
- static TQVariant readProperty( const TQDomElement& e, const TQString& name, const TQVariant& defValue );
- static TQVariant readProperty( const TQDomElement& e, const TQString& name, const TQVariant& defValue, TQString& comment );
- static bool hasProperty( const TQDomElement& e, const TQString& name );
- static TQStringList propertiesOfType( const TQDomElement& e, const TQString& type );
- static TQVariant elementToVariant( const TQDomElement& e, const TQVariant& defValue );
- static TQVariant elementToVariant( const TQDomElement& e, const TQVariant& defValue, TQString &comment );
- static TQVariant readAttribute( const TQDomElement& e, const TQString& name, const TQVariant& defValue );
- static TQVariant readAttribute( const TQDomElement& e, const TQString& name, const TQVariant& defValue, TQString& comment );
- static bool hasAttribute( const TQDomElement& e, const TQString& name );
- static TQColor readColor( const TQDomElement &e );
- static void fixDocument( TQDomDocument& );
-};
-
-
-#endif // DOMTOOL_H
diff --git a/python/pyqt/pyuic3/embed.cpp b/python/pyqt/pyuic3/embed.cpp
deleted file mode 100644
index da1c1d5c..00000000
--- a/python/pyqt/pyuic3/embed.cpp
+++ /dev/null
@@ -1,323 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-** Copyright (c) 2001 Phil Thompson <phil@river-bank.demon.co.uk>
-** Copyright (c) 2002 Riverbank Computing Limited <info@riverbankcomputing.co.uk>
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "uic.h"
-#include <tqfile.h>
-#include <tqimage.h>
-#include <tqstringlist.h>
-#include <tqdatetime.h>
-#include <tqfileinfo.h>
-#include <stdio.h>
-#include <ctype.h>
-
-// on embedded, we do not compress image data. Rationale: by mapping
-// the ready-only data directly into memory we are both faster and
-// more memory efficient
-#if (QT_VERSION < 0x030100 || defined(Q_WS_QWS)) && !defined(QT_NO_IMAGE_COLLECTION_COMPRESSION)
-#define QT_NO_IMAGE_COLLECTION_COMPRESSION
-#endif
-
-struct EmbedImage
-{
- ~EmbedImage() { delete[] colorTable; }
- int width, height, depth;
- int numColors;
- QRgb* colorTable;
- TQString name;
- TQString cname;
- bool alpha;
-#ifndef QT_NO_IMAGE_COLLECTION_COMPRESSION
- ulong compressed;
-#endif
-};
-
-static TQString convertToCIdentifier( const char *s )
-{
- TQString r = s;
- int len = r.length();
- if ( len > 0 && !isalpha( (char)r[0].latin1() ) )
- r[0] = '_';
- for ( int i=1; i<len; i++ ) {
- if ( !isalnum( (char)r[i].latin1() ) )
- r[i] = '_';
- }
- return r;
-}
-
-
-static ulong embedData( TQTextStream& out, const uchar* input, int nbytes )
-{
-#ifndef QT_NO_IMAGE_COLLECTION_COMPRESSION
- TQByteArray bazip( qCompress( input, nbytes ) );
- uint len = bazip.size();
-#else
- uint len = (uint)nbytes;
-#endif
- static const char hexdigits[] = "0123456789abcdef";
- TQString s;
- for ( uint i=0; i<len; i++ ) {
- if ( (i%14) == 0 ) {
- if (i)
- s += '"';
-
- s += " \\\n \"";
- out << (const char*)s;
- s.truncate( 0 );
- }
- uint v = (uchar)
-#ifndef QT_NO_IMAGE_COLLECTION_COMPRESSION
- bazip
-#else
- input
-#endif
- [(int)i];
- s += "\\x";
- s += hexdigits[(v >> 4) & 15];
- s += hexdigits[v & 15];
- if ( i == len-1 )
- s += "\"\n";
- }
- if ( s.length() )
- out << (const char*)s;
- return (ulong)len;
-}
-
-static void embedData( TQTextStream& out, const QRgb* input, int n )
-{
- out << hex;
- const QRgb *v = input;
- for ( int i=0; i<n; i++ ) {
- if ( (i%14) == 0 )
- out << "\n ";
- out << "0x";
- out << hex << *v++;
- if ( i < n-1 )
- out << ',';
- }
- out << dec; // back to decimal mode
-}
-
-void Uic::embed( TQTextStream& out, const char* project, const TQStringList& images )
-{
-
- TQString cProject = convertToCIdentifier( project );
-
- TQStringList::ConstIterator it;
- out << "# Image collection for project '" << project << "'.\n";
- out << "#\n";
- out << "# Generated from reading image files: \n";
- for ( it = images.begin(); it != images.end(); ++it )
- out << "# " << *it << "\n";
- out << "#\n";
- out << "# Created: " << TQDateTime::currentDateTime().toString() << "\n";
- out << "# by: The PyQt User Interface Compiler (pyuic) " << PYQT_VERSION << "\n";
- out << "#\n";
- out << "# WARNING! All changes made in this file will be lost!\n";
-
- out << "\n";
- out << "\n";
- out << "from qt import TQImage, TQMimeSourceFactory";
-#ifndef QT_NO_IMAGE_COLLECTION_COMPRESSION
- out << ", qUncompress";
-#endif
- out << "\n";
- out << "\n";
- out << "\n";
-
-
- TQPtrList<EmbedImage> list_image;
- list_image.setAutoDelete( TRUE );
- int image_count = 0;
- for ( it = images.begin(); it != images.end(); ++it ) {
- TQImage img;
- if ( !img.load( *it ) ) {
- fprintf( stderr, "pyuic: cannot load image file %s\n", (*it).latin1() );
- continue;
- }
- EmbedImage *e = new EmbedImage;
- e->width = img.width();
- e->height = img.height();
- e->depth = img.depth();
- e->numColors = img.numColors();
- e->colorTable = new QRgb[e->numColors];
- e->alpha = img.hasAlphaBuffer();
- memcpy(e->colorTable, img.colorTable(), e->numColors*sizeof(QRgb));
- TQFileInfo fi( *it );
- e->name = fi.fileName();
- e->cname = TQString("image_%1").arg( image_count++);
- list_image.append( e );
- out << "# " << *it << "\n";
- TQString s;
- if ( e->depth == 1 )
- img = img.convertBitOrder(TQImage::BigEndian);
- out << s.sprintf( "%s_data =",
- (const char *)e->cname );
-#ifndef QT_NO_IMAGE_COLLECTION_COMPRESSION
- e->compressed =
-#endif
- embedData( out, img.bits(), img.numBytes() );
- out << "\n";
- if ( e->numColors ) {
- out << s.sprintf( "%s_ctable = [",
- (const char *)e->cname );
- embedData( out, e->colorTable, e->numColors );
- out << "\n]\n\n";
- }
- }
-
- if ( !list_image.isEmpty() ) {
- out << indent << "embed_image_vec = [\n";
- ++indent;
- EmbedImage *e = list_image.first();
- while ( e ) {
- out << indent << "["
- << e->width << ","
- << e->height << ","
- << e->depth << ","
- << e->cname << "_data,"
-#ifndef QT_NO_IMAGE_COLLECTION_COMPRESSION
- << e->compressed << ","
-#endif
- << e->numColors << ",";
- if ( e->numColors )
- out << e->cname << "_ctable,";
- else
- out << "None,";
- if ( e->alpha )
- out << "1,";
- else
- out << "0,";
- out << "\"" << e->name << "\"],\n";
- e = list_image.next();
- }
- --indent;
- out << indent << "]\n";
-
- out << "\n"
- "\n"
- "def uic_findImage(name):\n";
- ++indent;
- out << indent << "global embed_image_vec\n";
- out << "\n";
-#ifndef QT_NO_IMAGE_COLLECTION_COMPRESSION
- out << indent << "for (w,h,depth,data,comp,nrCol,colTab,alpha,iname) in embed_image_vec:" << endl;
-#else
- out << indent << "for (w,h,depth,data,nrCol,colTab,alpha,iname) in embed_image_vec:" << endl;
-#endif
- ++indent;
- out << indent << "if iname == str(name):" << endl;
- ++indent;
-#ifndef QT_NO_IMAGE_COLLECTION_COMPRESSION
- // Keep the data object alive until we have a deep copy of the image.
- out << indent << "data = qUncompress(data).data()\n";
-#endif
- out << indent << "img = TQImage(data,w,h,depth,colTab,nrCol,TQImage.BigEndian).copy()\n";
- out << "\n";
- out << indent << "if alpha:\n";
- ++indent;
- out << indent << "img.setAlphaBuffer(1)\n";
- --indent;
- out << "\n";
- out << indent << "return img\n";
- --indent;
- --indent;
- out << endl;
- out << indent << "return TQImage()\n";
- --indent;
- out << "\n";
- out << "\n";
-
- out << indent << "class MimeSourceFactory_" << cProject << "(TQMimeSourceFactory):\n";
- ++indent;
- out << indent << "def __init__(self):\n";
- ++indent;
- out << indent << "TQMimeSourceFactory.__init__(self)\n";
- out << "\n";
- --indent;
- out << indent << "def data(self,abs_name):\n";
- ++indent;
- out << indent << "d = TQMimeSourceFactory.data(self,abs_name)\n";
- out << indent << "if d or abs_name.isNull():\n";
- ++indent;
- out << indent << "return d\n";
- --indent;
- out << "\n";
- out << indent << "img = uic_findImage(abs_name)\n";
- out << indent << "if not img.isNull():\n";
- ++indent;
- out << indent << "self.setImage(abs_name,img)\n";
- --indent;
- out << "\n";
- out << indent << "return TQMimeSourceFactory.data(self,abs_name)\n";
- --indent;
- --indent;
- out << "\n";
- out << "\n";
-
- out << indent << "factory = None\n";
- out << "\n";
-
- out << indent << "def qInitImages_" << cProject << "():\n";
- ++indent;
- out << indent << "global factory\n";
- out << "\n";
- out << indent << "if factory is None:\n";
- ++indent;
- out << indent << "factory = MimeSourceFactory_" << cProject << "()\n";
- out << indent << "TQMimeSourceFactory.defaultFactory().addFactory(factory)\n";
- --indent;
- --indent;
- out << "\n";
- out << "\n";
-
- out << indent << "def qCleanupImages_" << cProject << "():\n";
- ++indent;
- out << indent << "global factory\n";
- out << "\n";
- out << indent << "if factory is not None:\n";
- ++indent;
- out << indent << "TQMimeSourceFactory.defaultFactory().removeFactory(factory)\n";
- out << indent << "factory = None\n";
- --indent;
- --indent;
- out << "\n";
- out << "\n";
-
- out << indent << "class StaticInitImages_" << cProject << ":\n";
- ++indent;
- out << indent << "def __init__(self):\n";
- ++indent;
- out << indent << "self.cleanup = qCleanupImages_" << cProject << "\n";
- out << indent << "qInitImages_" << cProject << "()\n";
- --indent;
- out << "\n";
- out << indent << "def __del__(self):\n";
- ++indent;
- out << indent << "self.cleanup()\n";
- --indent;
- --indent;
- out << "\n";
- out << "\n";
-
- out << "staticImages = StaticInitImages_" << cProject << "()\n";
- }
-}
diff --git a/python/pyqt/pyuic3/form.cpp b/python/pyqt/pyuic3/form.cpp
deleted file mode 100644
index ca68db39..00000000
--- a/python/pyqt/pyuic3/form.cpp
+++ /dev/null
@@ -1,938 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include <stdio.h>
-#include "uic.h"
-#include "parser.h"
-#include "widgetdatabase.h"
-#include "domtool.h"
-#include <tqstringlist.h>
-#include <tqfile.h>
-#include <tqfileinfo.h>
-#include <tqregexp.h>
-#define NO_STATIC_COLORS
-#include <globaldefs.h>
-
-#if QT_VERSION < 0x030100
-#include <zlib.h>
-#endif
-
-static TQByteArray unzipXPM( TQString data, ulong& length )
-{
-#if QT_VERSION >= 0x030100
- const int lengthOffset = 4;
- int baSize = data.length() / 2 + lengthOffset;
- uchar *ba = new uchar[ baSize ];
- for ( int i = lengthOffset; i < baSize; ++i ) {
- char h = data[ 2 * (i-lengthOffset) ].latin1();
- char l = data[ 2 * (i-lengthOffset) + 1 ].latin1();
- uchar r = 0;
- if ( h <= '9' )
- r += h - '0';
- else
- r += h - 'a' + 10;
- r = r << 4;
- if ( l <= '9' )
- r += l - '0';
- else
- r += l - 'a' + 10;
- ba[ i ] = r;
- }
- // qUncompress() expects the first 4 bytes to be the expected length of the
- // uncompressed data
- ba[0] = ( length & 0xff000000 ) >> 24;
- ba[1] = ( length & 0x00ff0000 ) >> 16;
- ba[2] = ( length & 0x0000ff00 ) >> 8;
- ba[3] = ( length & 0x000000ff );
- TQByteArray baunzip = qUncompress( ba, baSize );
- delete[] ba;
- return baunzip;
-#else
- uchar *ba = new uchar[ data.length() / 2 ];
- for ( int i = 0; i < (int)data.length() / 2; ++i ) {
- char h = data[ 2 * i ].latin1();
- char l = data[ 2 * i + 1 ].latin1();
- uchar r = 0;
- if ( h <= '9' )
- r += h - '0';
- else
- r += h - 'a' + 10;
- r = r << 4;
- if ( l <= '9' )
- r += l - '0';
- else
- r += l - 'a' + 10;
- ba[ i ] = r;
- }
- // I'm not sure this makes sense. Why couldn't the compressed data be
- // less than 20% of the original data? Maybe it's enough to trust the
- // `length' passed as an argument. Quoting the zlib header:
- // Upon entry, destLen is the total size of the destination
- // buffer, which must be large enough to hold the entire
- // uncompressed data. (The size of the uncompressed data must
- // have been saved previously by the compressor and transmitted
- // to the decompressor by some mechanism outside the scope of
- // this compression library.)
- // Which is the role of `length'. On the other hand this could prevent
- // crashes in some cases of slightly corrupt UIC files.
- if ( length < data.length() * 5 )
- length = data.length() * 5;
- TQByteArray baunzip( length );
- ::uncompress( (uchar*) baunzip.data(), &length, ba, data.length()/2 );
- delete[] ba;
- return baunzip;
-#endif
-}
-
-
-
-/*!
- Creates an implementation ( cpp-file ) for the form given in \a e
-
- \sa createFormDecl(), createObjectImpl()
- */
-void Uic::createFormImpl( const TQDomElement &e )
-{
- TQDomElement n;
- TQDomNodeList nl;
- int i;
- TQString objClass = getClassName( e );
- if ( objClass.isEmpty() )
- return;
- TQString objName = getObjectName( e );
-
- // generate local and local includes required
- TQStringList globalIncludes;
- TQStringList::Iterator it;
- TQStringList sqlClasses;
- TQStringList axwidgets, databrowsers;
-
- TQMap<TQString, CustomInclude> customWidgetIncludes;
- TQMap<TQString, TQString> functionImpls;
- // find additional slots and functions
- TQStringList extraSlots;
- TQStringList extraSlotTypes;
- nl = e.parentNode().toElement().elementsByTagName( "slot" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- n = nl.item(i).toElement();
- if ( n.parentNode().toElement().tagName() != "slots"
- && n.parentNode().toElement().tagName() != "connections" )
- continue;
- if ( n.attribute( "language", "C++" ) != "C++" )
- continue;
- TQString slotName = n.firstChild().toText().data().stripWhiteSpace();
- if ( slotName.endsWith( ";" ) )
- slotName = slotName.left( slotName.length() - 1 );
-
- extraSlots += Parser::cleanArgs(slotName);
- extraSlotTypes += n.attribute( "returnType", "void" );
- }
-
- for ( n = e; !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "functions" ) { // compatibility
- for ( TQDomElement n2 = n.firstChild().toElement(); !n2.isNull(); n2 = n2.nextSibling().toElement() ) {
- if ( n2.tagName() == "function" ) {
- TQString fname = n2.attribute( "name" );
- fname = Parser::cleanArgs( fname );
- functionImpls.insert( fname, n2.firstChild().toText().data() );
- }
- }
- }
- }
-
- // additional includes (local or global ) and forward declaractions
- nl = e.parentNode().toElement().elementsByTagName( "include" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- TQDomElement n2 = nl.item(i).toElement();
-
- TQString s = n2.firstChild().toText().data();
- if ( n2.attribute( "location" ) != "local" ) {
- if ( s.right( 5 ) == ".ui.h" && !TQFile::exists( s ) )
- continue;
- if ( n2.attribute( "impldecl", "in implementation" ) != "in implementation" )
- continue;
- globalIncludes += s;
- }
- }
-
- // do the local includes afterwards, since global includes have priority on clashes
- TQFileInfo fi(fileName);
-
- for ( i = 0; i < (int) nl.length(); i++ ) {
- TQDomElement n2 = nl.item(i).toElement();
- TQString s = n2.firstChild().toText().data();
- if ( n2.attribute( "location" ) == "local" &&!globalIncludes.contains( s ) ) {
- if ( s.right( 5 ) != ".ui.h" )
- continue;
-
- if ( !TQFile::exists( s ) )
- {
- s = fi.dirPath() + "/" + s;
-
- if ( !TQFile::exists( s ) )
- continue;
- }
-
- if ( TQFile::exists( s ) )
- {
- TQFile f(s);
- f.open(IO_ReadOnly);
- TQTextStream headerStream(&f);
- TQString line;
- TQString functionText;
- TQString functionName;
- TQRegExp rx("void .*::(.*\\(.*\\))");
- int pos, inFunction = 0;
-
- while (line = headerStream.readLine())
- {
- pos = rx.search(line);
-
- if (pos > -1)
- {
- if (inFunction)
- functionImpls.insert(Parser::cleanArgs(functionName),functionText);
-
- functionName = rx.cap(1);
- functionText = "";
- inFunction = 1;
- }
- functionText += line + "\n";
- }
-
- if (inFunction)
- functionImpls.insert(Parser::cleanArgs(functionName),functionText);
- }
- }
- }
-
- // additional custom widget headers
- nl = e.parentNode().toElement().elementsByTagName( "header" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- TQDomElement n2 = nl.item(i).toElement();
- TQString s = n2.firstChild().toText().data();
- if ( n2.attribute( "location" ) != "local" )
- globalIncludes += s;
- }
-
- // includes for child widgets
- for ( it = tags.begin(); it != tags.end(); ++it ) {
- nl = e.parentNode().toElement().elementsByTagName( *it );
- for ( i = 1; i < (int) nl.length(); i++ ) { // start at 1, 0 is the toplevel widget
- TQString name = getClassName( nl.item(i).toElement() );
- if ( name == "Spacer" ) {
- globalIncludes += "tqlayout.h";
- globalIncludes += "tqapplication.h";
- continue;
- }
- if ( name.mid( 1 ) == "ListView" )
- globalIncludes += "tqheader.h";
- else if ( name == "QAxWidget" )
- axwidgets += getObjectName(nl.item(i).toElement());
- else if ( name == "TQDataBrowser" )
- databrowsers += getObjectName(nl.item(i).toElement());
- if ( name != objClass ) {
- int wid = WidgetDatabase::idFromClassName( name );
- TQMap<TQString, CustomInclude>::Iterator it = customWidgetIncludes.find( name );
- if ( it == customWidgetIncludes.end() )
- globalIncludes += WidgetDatabase::includeFile( wid );
- }
- }
- }
-
- if (globalIncludes.findIndex("tqtable.h") >= 0)
- out << indent << "from qttable import TQTable" << endl;
-
- if (!axwidgets.empty())
- out << indent << "from qtaxcontainer import QAxWidget" << endl;
-
- if (globalIncludes.findIndex("qextscintilla.h") >= 0)
- out << indent << "from qtext import QextScintilla" << endl;
-
- registerDatabases( e );
- dbConnections = unique( dbConnections );
- if ( dbConnections.count() )
- sqlClasses += "TQSqlDatabase";
- if ( dbCursors.count() )
- sqlClasses += "TQSqlCursor";
- bool dbForm = FALSE;
- if ( dbForms[ "(default)" ].count() )
- dbForm = TRUE;
- bool subDbForms = FALSE;
- for ( it = dbConnections.begin(); it != dbConnections.end(); ++it ) {
- if ( !(*it).isEmpty() && (*it) != "(default)" ) {
- if ( dbForms[ (*it) ].count() ) {
- subDbForms = TRUE;
- break;
- }
- }
- }
- if ( dbForm || subDbForms ) {
- sqlClasses += "TQSqlForm";
- sqlClasses += "TQSqlRecord";
- }
-
- if (globalIncludes.findIndex("tqdatatable.h") >= 0)
- sqlClasses += "TQDataTable";
-
- if (globalIncludes.findIndex("qtableview.h") >= 0)
- sqlClasses += "QTableView";
-
- if (globalIncludes.findIndex("tqdatabrowser.h") >= 0)
- sqlClasses += "TQDataBrowser";
-
- if (globalIncludes.findIndex("tqdataview.h") >= 0)
- sqlClasses += "TQDataView";
-
- if ( !sqlClasses.empty() ) {
- out << indent << "from qtsql import";
- const char *sep = " ";
-
- for ( it = sqlClasses.begin(); it != sqlClasses.end(); ++it ) {
- out << sep << (*it);
- sep = ", ";
- }
-
- out << endl;
- }
-
- // Add any code from the comments.
- if (!pyCode.isEmpty())
- out << pyCode;
-
- out << endl;
-
- // find out what images are required
- TQStringList requiredImages;
- static const char *imgTags[] = { "pixmap", "iconset", 0 };
- for ( i = 0; imgTags[i] != 0; i++ ) {
- nl = e.parentNode().toElement().elementsByTagName( imgTags[i] );
- for ( int j = 0; j < (int) nl.length(); j++ ) {
- TQDomNode nn = nl.item(j);
- while ( nn.parentNode() != e.parentNode() )
- nn = nn.parentNode();
- if ( nn.nodeName() != "customwidgets" )
- requiredImages += nl.item(j).firstChild().toText().data();
- }
- }
-
- // register the object and unify its name
- objName = registerObject( objName );
-
- TQStringList images;
- TQStringList xpmImages;
- if ( pixmapLoaderFunction.isEmpty() && !externPixmaps ) {
- // create images
- for ( n = e; !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "images" ) {
- nl = n.elementsByTagName( "image" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- TQString img = registerObject( nl.item(i).toElement().attribute( "name" ) );
- if ( !requiredImages.contains( img ) )
- continue;
- TQDomElement tmp = nl.item(i).firstChild().toElement();
- if ( tmp.tagName() != "data" )
- continue;
- TQString format = tmp.attribute("format", "PNG" );
- TQString data = tmp.firstChild().toText().data();
- if ( format == "XPM.GZ" ) {
- xpmImages += img;
- ulong length = tmp.attribute("length").toULong();
- TQByteArray baunzip = unzipXPM( data, length );
- length = baunzip.size();
- // shouldn't we test the initial `length' against the
- // resulting `length' to catch corrupt UIC files?
- int a = 0;
- out << indent << img << "_data = [" << endl;
- while ( baunzip[a] != '\"' )
- a++;
- for ( ; a < (int) length; a++ )
- {
- char ch;
-
- if ((ch = baunzip[a]) == '}')
- {
- out << endl << "]";
- break;
- }
-
- out << ch;
- }
- out << endl;
- } else {
- images += img;
- out << indent << img << "_data = \\" << endl;
- ++indent;
- out << indent << "\"";
- int a ;
- for ( a = 0; a < (int) (data.length()/2)-1; a++ ) {
- out << "\\x" << TQString(data[2*a]) << TQString(data[2*a+1]);
- if ( a % 12 == 11 )
- out << "\" \\" << endl << indent << "\"";
- }
- out << "\\x" << TQString(data[2*a]) << TQString(data[2*a+1]) << "\"" << endl;
- --indent;
- }
- }
- }
- }
- out << endl;
- } else if ( externPixmaps ) {
-#if QT_VERSION >= 0x030100
- pixmapLoaderFunction = "TQPixmap.fromMimeSource";
-#else
- out << indent << "def uic_load_pixmap_" << objName << "(name):" << endl;
- ++indent;
- out << indent << "pix = TQPixmap()" << endl;
- out << indent << "m = TQMimeSourceFactory.defaultFactory().data(name)" << endl;
- out << endl;
- out << indent << "if m:" << endl;
- ++indent;
- out << indent << "TQImageDrag.decode(m,pix)" << endl;
- --indent;
- out << endl;
- out << indent << "return pix" << endl;
- --indent;
- out << endl;
- out << endl;
- pixmapLoaderFunction = "uic_load_pixmap_" + objName;
-#endif
- }
-
-
- // constructor(s)
-
- out << indent << "class " << nameOfClass << "(" << objClass << "):" << endl;
- ++indent;
-
- if ( objClass == "TQDialog" || objClass == "TQWizard" ) {
- out << indent << "def __init__(self,parent = None,name = None,modal = 0,fl = 0):" << endl;
- ++indent;
- out << indent << objClass << ".__init__(self,parent,name,modal,fl)" << endl;
- } else if ( objClass == "TQWidget" ) {
- out << indent << "def __init__(self,parent = None,name = None,fl = 0):" << endl;
- ++indent;
- out << indent << objClass << ".__init__(self,parent,name,fl)" << endl;
- } else if ( objClass == "TQMainWindow" ) {
- out << indent << "def __init__(self,parent = None,name = None,fl = 0):" << endl;
- ++indent;
- out << indent << objClass << ".__init__(self,parent,name,fl)" << endl;
- out << indent << "self.statusBar()" << endl;
- isMainWindow = TRUE;
- } else {
- out << indent << "def __init__(self,parent = None,name = None):" << endl;
- ++indent;
- out << indent << objClass << ".__init__(self,parent,name)" << endl;
- }
-
- out << endl;
-
- // create pixmaps for all images
- if ( !images.isEmpty() ) {
- TQStringList::Iterator it;
- for ( it = images.begin(); it != images.end(); ++it ) {
- out << indent << "self." << (*it) << " = TQPixmap()" << endl;
- out << indent << "self." << (*it) << ".loadFromData(" << (*it) << "_data,\"PNG\")" << endl;
- }
- }
- // create pixmaps for all images
- if ( !xpmImages.isEmpty() ) {
- for ( it = xpmImages.begin(); it != xpmImages.end(); ++it ) {
- out << indent << "self." << (*it) << " = TQPixmap(" << (*it) << "_data)" << endl;
- }
- out << endl;
- }
-
-
- // set the properties
- TQSize geometry( 0, 0 );
-
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "property" ) {
- bool stdset = stdsetdef;
- if ( n.hasAttribute( "stdset" ) )
- stdset = toBool( n.attribute( "stdset" ) );
- TQString prop = n.attribute("name");
- TQDomElement n2 = n.firstChild().toElement();
- TQString value = setObjectProperty( objClass, TQString::null, prop, n2, stdset );
- if ( value.isEmpty() )
- continue;
-
- if ( prop == "geometry" && n2.tagName() == "rect") {
- TQDomElement n3 = n2.firstChild().toElement();
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "width" )
- geometry.setWidth( n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "height" )
- geometry.setHeight( n3.firstChild().toText().data().toInt() );
- n3 = n3.nextSibling().toElement();
- }
- } else {
- TQString call;
- if ( stdset )
- call = "self." + mkStdSet( prop ) + "(" + value + ")";
- else
- call = "self.setProperty(\"" + prop + "\",TQVariant(" + value + "))";
-
- if ( n2.tagName() == "string" ) {
- trout << trindent << call << endl;
- } else if ( prop == "name" ) {
- out << indent << "if not name:" << endl;
- ++indent;
- out << indent << call << endl;
- --indent;
- out << endl;
- } else {
- out << indent << call << endl;
- }
- }
- }
- }
-
- out << endl;
-
- // create all children, some forms have special requirements
-
- if ( objClass == "TQWizard" ) {
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( tags.contains( n.tagName() ) ) {
- TQString page = createObjectImpl( n, objClass, "self" );
- TQString comment;
- TQString label = DomTool::readAttribute( n, "title", "", comment ).toString();
- out << indent << "self.addPage(" << page << ",TQString(\"\"))" << endl;
- trout << trindent << "self.setTitle(" << page << ","<< trcall( label, comment ) << ")" << endl;
- TQVariant def( FALSE, 0 );
- if ( DomTool::hasAttribute( n, "backEnabled" ) )
- out << indent << "self.setBackEnabled(" << page << "," << mkBool( DomTool::readAttribute( n, "backEnabled", def).toBool() ) << ")" << endl;
- if ( DomTool::hasAttribute( n, "nextEnabled" ) )
- out << indent << "self.setNextEnabled(" << page << "," << mkBool( DomTool::readAttribute( n, "nextEnabled", def).toBool() ) << ")" << endl;
- if ( DomTool::hasAttribute( n, "finishEnabled" ) )
- out << indent << "self.setFinishEnabled(" << page << "," << mkBool( DomTool::readAttribute( n, "finishEnabled", def).toBool() ) << ")" << endl;
- if ( DomTool::hasAttribute( n, "helpEnabled" ) )
- out << indent << "self.setHelpEnabled(" << page << "," << mkBool( DomTool::readAttribute( n, "helpEnabled", def).toBool() ) << ")" << endl;
- if ( DomTool::hasAttribute( n, "finish" ) )
- out << indent << "self.setFinish( " << page << "," << mkBool( DomTool::readAttribute( n, "finish", def).toBool() ) << ")" << endl;
- }
- }
- } else { // standard widgets
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( tags.contains( n.tagName() ) )
- createObjectImpl( n, objName, "self" );
- }
- }
-
- // database support
- dbConnections = unique( dbConnections );
- if ( dbConnections.count() )
- out << endl;
- for ( it = dbConnections.begin(); it != dbConnections.end(); ++it ) {
- if ( !(*it).isEmpty() && (*it) != "(default)") {
- out << indent << "self." << (*it) << "Connection = TQSqlDatabase.database(\"" <<(*it) << "\")" << endl;
- }
- }
-
- nl = e.parentNode().toElement().elementsByTagName( "widget" );
- for ( i = 1; i < (int) nl.length(); i++ ) { // start at 1, 0 is the toplevel widget
- n = nl.item(i).toElement();
- TQString s = getClassName( n );
- if ( (dbForm || subDbForms) && (s == "TQDataBrowser" || s == "TQDataView") ) {
- TQString objName = getObjectName( n );
- TQString tab = getDatabaseInfo( n, "table" );
- TQString con = getDatabaseInfo( n, "connection" );
- out << indent << objName << "Form = TQSqlForm(self,\"" << objName << "Form\")" << endl;
- TQDomElement n2;
- for ( n2 = n.firstChild().toElement(); !n2.isNull(); n2 = n2.nextSibling().toElement() )
- createFormImpl( n2, objName, con, tab );
- out << indent << "self." << objName << ".setForm(" << objName << "Form)" << endl;
- }
- }
-
- // actions, toolbars, menubar
- bool needEndl = FALSE;
- for ( n = e; !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "actions" ) {
- if ( !needEndl )
- out << endl;
- createActionImpl( n.firstChild().toElement(), "self" );
- needEndl = TRUE;
- }
- }
- if ( needEndl )
- out << endl;
- needEndl = FALSE;
- for ( n = e; !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "toolbars" ) {
- if ( !needEndl )
- out << endl;
- createToolbarImpl( n, objClass, objName );
- needEndl = TRUE;
- }
- }
- if ( needEndl )
- out << endl;
- needEndl = FALSE;
- for ( n = e; !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "menubar" ) {
- if ( !needEndl )
- out << endl;
- createMenuBarImpl( n, objClass, objName );
- needEndl = TRUE;
- }
- }
- if ( needEndl )
- out << endl;
-
- out << endl;
- out << indent << "self.languageChange()" << endl;
- out << endl;
-
- // take minimumSizeHint() into account, for height-for-width widgets
- if ( !geometry.isNull() ) {
- out << indent << "self.resize(TQSize(" << geometry.width() << ","
- << geometry.height() <<").expandedTo(self.minimumSizeHint()))" << endl;
- out << indent << "self.clearWState(Qt.WState_Polished)" << endl;
- }
-
- for ( n = e; !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "connections" ) {
- // setup signals and slots connections
- out << endl;
- nl = n.elementsByTagName( "connection" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- TQString sender, receiver, signal, slot;
- for ( TQDomElement n2 = nl.item(i).firstChild().toElement(); !n2.isNull(); n2 = n2.nextSibling().toElement() ) {
- if ( n2.tagName() == "sender" )
- sender = n2.firstChild().toText().data();
- else if ( n2.tagName() == "receiver" )
- receiver = n2.firstChild().toText().data();
- else if ( n2.tagName() == "signal" )
- signal = n2.firstChild().toText().data();
- else if ( n2.tagName() == "slot" )
- slot = n2.firstChild().toText().data();
- }
- if ( sender.isEmpty() ||
- receiver.isEmpty() ||
- signal.isEmpty() ||
- slot.isEmpty() )
- continue;
- if ( sender[0] == '<' ||
- receiver[0] == '<' ||
- signal[0] == '<' ||
- slot[0] == '<' )
- continue;
-
- sender = registeredName( sender );
- receiver = registeredName( receiver );
-
- // translate formwindow name to "self"
- if ( sender == objName )
- sender = "self";
- else
- sender = "self." + sender;
-
- bool isaxwidget = (axwidgets.findIndex(receiver) >= 0);
- bool isdatabrowser = (databrowsers.findIndex(receiver) >= 0);
-
- if ( receiver == objName )
- receiver = "self";
- else
- receiver = "self." + receiver;
-
- out << indent << "self.connect(" << sender
- << ",TQT_SIGNAL(\"" << signal << "\")," << receiver;
-
- // Normally we never use the TQT_SLOT() macro in case the
- // connection is to a method of a Python custom widget. The
- // exception is if the receiver is a QAxWidget where it must be
- // used because the slots are dynamic.
- if (isaxwidget)
- out << ",TQT_SLOT(\"" << slot << "\")";
- else
- {
- TQString mname = slot.left(slot.find('('));
-
- // Rename slots that have different names in PyQt.
- if (isdatabrowser && mname == "del")
- mname = "delOnCursor";
-
- out << "." << mname;
- }
-
- out << ")" << endl;
- }
- } else if ( n.tagName() == "tabstops" ) {
- // setup tab order
- out << endl;
- TQString lastName;
- TQDomElement n2 = n.firstChild().toElement();
- while ( !n2.isNull() ) {
- if ( n2.tagName() == "tabstop" ) {
- TQString name = n2.firstChild().toText().data();
- name = registeredName( name );
- if ( !lastName.isEmpty() )
- out << indent << "self.setTabOrder(self." << lastName << ",self." << name << ")" << endl;
- lastName = name;
- }
- n2 = n2.nextSibling().toElement();
- }
- }
- }
-
- // buddies
- bool firstBuddy = TRUE;
- for ( TQValueList<Buddy>::Iterator buddy = buddies.begin(); buddy != buddies.end(); ++buddy ) {
- if ( isObjectRegistered( (*buddy).buddy ) ) {
- if ( firstBuddy ) {
- out << endl;
- }
- out << indent << "self." << (*buddy).key << ".setBuddy(self." << registeredName( (*buddy).buddy ) << ")" << endl;
- firstBuddy = FALSE;
- }
-
- }
-
- if ( extraSlots.find( "init()" ) != extraSlots.end() )
- out << endl << indent << "self.init()" << endl;
-
- // end of constructor
- --indent;
-
- // destructor
- if ( extraSlots.find( "destroy()" ) != extraSlots.end() ) {
- out << endl;
- out << indent << "def __del__(self):" << endl;
- ++indent;
- out << indent << "self.destroy()" << endl;
- --indent;
- }
-
- // handle application events if required
- bool needFontEventHandler = FALSE;
- bool needSqlTableEventHandler = FALSE;
- bool needSqlDataBrowserEventHandler = FALSE;
- nl = e.elementsByTagName( "widget" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- if ( !DomTool::propertiesOfType( nl.item(i).toElement() , "font" ).isEmpty() )
- needFontEventHandler = TRUE;
- TQString s = getClassName( nl.item(i).toElement() );
- if ( s == "TQDataTable" || s == "TQDataBrowser" ) {
- if ( !isFrameworkCodeGenerated( nl.item(i).toElement() ) )
- continue;
- if ( s == "TQDataTable" )
- needSqlTableEventHandler = TRUE;
- if ( s == "TQDataBrowser" )
- needSqlDataBrowserEventHandler = TRUE;
- }
- if ( needFontEventHandler && needSqlTableEventHandler && needSqlDataBrowserEventHandler )
- break;
- }
- if ( needFontEventHandler && FALSE ) {
- // indent = "\t"; // increase indentation for if-clause below
- out << "/* " << endl;
- out << " * Main event handler. Reimplemented to handle" << endl;
- out << " * application font changes";
- out << " */" << endl;
- out << "bool " << nameOfClass << "::event( TQEvent* ev )" << endl;
- out << "{" << endl;
- out << " bool ret = " << objClass << "::event( ev ); " << endl;
- if ( needFontEventHandler ) {
- ++indent;
- out << " if ( ev->type() == TQEvent::ApplicationFontChange ) {" << endl;
- for ( i = 0; i < (int) nl.length(); i++ ) {
- n = nl.item(i).toElement();
- TQStringList list = DomTool::propertiesOfType( n, "font" );
- for ( it = list.begin(); it != list.end(); ++it )
- createExclusiveProperty( n, *it );
- }
- out << " }" << endl;
- --indent;
- }
- out << "}" << endl;
- out << endl;
- }
-
- if ( needSqlTableEventHandler || needSqlDataBrowserEventHandler ) {
- out << endl;
- out << indent << "# Widget polish. Reimplemented to handle default data" << endl;
- if ( needSqlTableEventHandler )
- out << indent << "# table initialization." << endl;
- if ( needSqlDataBrowserEventHandler )
- out << indent << "# browser initialization." << endl;
- out << indent << "def polish(self):" << endl;
- ++indent;
- if ( needSqlTableEventHandler ) {
- for ( i = 0; i < (int) nl.length(); i++ ) {
- TQString s = getClassName( nl.item(i).toElement() );
- if ( s == "TQDataTable" ) {
- n = nl.item(i).toElement();
- TQString c = getObjectName( n );
- TQString conn = getDatabaseInfo( n, "connection" );
- TQString tab = getDatabaseInfo( n, "table" );
- if ( !( conn.isEmpty() || tab.isEmpty() || !isFrameworkCodeGenerated( nl.item(i).toElement() ) ) ) {
- out << indent << "if self." << c << ":" << endl;
- ++indent;
- out << indent << "cursor = self." << c << ".sqlCursor()" << endl;
- out << endl;
- out << indent << "if not cursor:" << endl;
- ++indent;
- if ( conn == "(default)" )
- out << indent << "cursor = TQSqlCursor(\"" << tab << "\")" << endl;
- else
- out << indent << "cursor = TQSqlCursor(\"" << tab << "\",1,self." << conn << "Connection)" << endl;
- out << indent << "if self." << c << ".isReadOnly():" << endl;
- ++indent;
- out << indent << "cursor.setMode(TQSqlCursor.ReadOnly)" << endl;
- --indent;
- out << indent << "self." << c << ".setSqlCursor(cursor,0,1)" << endl;
- --indent;
- out << endl;
- out << indent << "if not cursor.isActive():" << endl;
- ++indent;
- out << indent << "self." << c << ".refresh(TQDataTable.RefreshAll)" << endl;
- --indent;
- --indent;
- }
- }
- }
- }
- if ( needSqlDataBrowserEventHandler ) {
- nl = e.elementsByTagName( "widget" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- TQString s = getClassName( nl.item(i).toElement() );
- if ( s == "TQDataBrowser" ) {
- TQString obj = getObjectName( nl.item(i).toElement() );
- TQString tab = getDatabaseInfo( nl.item(i).toElement(),
- "table" );
- TQString conn = getDatabaseInfo( nl.item(i).toElement(),
- "connection" );
- if ( !(tab.isEmpty() || !isFrameworkCodeGenerated( nl.item(i).toElement() ) ) ) {
- out << indent << "if self." << obj << ":" << endl;
- ++indent;
- out << indent << "if not self." << obj << ".sqlCursor():" << endl;
- ++indent;
- if ( conn == "(default)" )
- out << indent << "cursor = TQSqlCursor(\"" << tab << "\")" << endl;
- else
- out << indent << "cursor = TQSqlCursor(\"" << tab << "\",1,self." << conn << "Connection)" << endl;
- out << indent << "self." << obj << ".setSqlCursor(cursor,1)" << endl;
- out << indent << "self." << obj << ".refresh()" << endl;
- out << indent << "self." << obj << ".first()" << endl;
- --indent;
- --indent;
- }
- }
- }
- }
- out << indent << objClass << ".polish(self)" << endl;
- --indent;
- }
-
- out << endl;
- out << endl;
- out << indent << "def languageChange(self):" << endl;
- uint old = indent.setIndent(0);
- out << languageChangeBody << endl;
- indent.setIndent(old);
-
- // create stubs for additional slots if necessary
- if ( !extraSlots.isEmpty() && writeFunctImpl ) {
- TQStringList::ConstIterator cit;
-
- for ( cit = extraSlots.begin(); cit != extraSlots.end(); ++cit ) {
- pySlot(cit);
-
- bool createWarning = TRUE;
- TQString fname = Parser::cleanArgs( *cit );
- TQMap<TQString, TQString>::Iterator fit = functionImpls.find( fname );
- if ( fit != functionImpls.end() ) {
- int begin = (*fit).find( "{" );
- TQString body = (*fit).mid( begin + 1, (*fit).findRev( "}" ) - begin - 1 );
- createWarning = body.simplifyWhiteSpace().isEmpty();
- if ( !createWarning )
- {
- ++indent;
- TQString formatted_body = body.replace(TQRegExp("\n"), TQString("\n") + TQString(indent));
- out << formatted_body << endl;
- --indent;
- }
- }
- if ( createWarning ) {
- out << endl;
- ++indent;
- if ( *cit != "init()" && *cit != "destroy()" )
- out << indent << "print \"" << nameOfClass << "." << (*cit) << ": Not implemented yet\"" << endl;
- else
- out << indent << "pass" << endl;
- --indent;
- }
- }
- }
-
- --indent;
-}
-
-
-/*! Creates form support implementation code for the widgets given
- in \a e.
-
- Traverses recursively over all children.
- */
-
-void Uic::createFormImpl( const TQDomElement& e, const TQString& form, const TQString& connection, const TQString& table )
-{
- if ( e.tagName() == "widget" &&
- e.attribute( "class" ) != "TQDataTable" ) {
- TQString field = getDatabaseInfo( e, "field" );
- if ( !field.isEmpty() ) {
- if ( isWidgetInTable( e, connection, table ) )
- out << indent << form << "Form.insert(self." << getObjectName( e ) << "," << fixString( field ) << ")" << endl;
- }
- }
- TQDomElement n;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- createFormImpl( n, form, connection, table );
- }
-}
-
-
-// Generate a Python slot definition.
-
-void Uic::pySlot(TQStringList::ConstIterator &it)
-{
- out << endl;
-
- int astart = (*it).find('(');
- out << indent << "def " << (*it).left(astart) << "(self";
-
- // We don't reproduce the argument names (if any) because we would have to
- // remove the types - too complicated for the moment, so we just count them
- // and give them names based on their position.
-
- TQString args = (*it).mid(astart + 1,(*it).find(')') - astart - 1).stripWhiteSpace();
-
- if (!args.isEmpty()) {
- int nrargs = args.contains(',') + 1;
-
- for (int i = 0; i < nrargs; ++i)
- out << ",a" << i;
- }
-
- out << "):";
-}
diff --git a/python/pyqt/pyuic3/globaldefs.h b/python/pyqt/pyuic3/globaldefs.h
deleted file mode 100644
index 87fafbef..00000000
--- a/python/pyqt/pyuic3/globaldefs.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#ifndef GLOBALDEFS_H
-#define GLOBALDEFS_H
-
-#include <tqcolor.h>
-#include <tqapplication.h>
-
-#define BOXLAYOUT_DEFAULT_MARGIN 11
-#define BOXLAYOUT_DEFAULT_SPACING 6
-
-#ifndef NO_STATIC_COLORS
-static TQColor *backColor1 = 0;
-static TQColor *backColor2 = 0;
-static TQColor *selectedBack = 0;
-
-static void init_colors()
-{
- if ( backColor1 )
- return;
-
-#if 0 // a calculated alternative for backColor1
- TQColorGroup myCg = qApp->palette().active();
- int h1, s1, v1;
- int h2, s2, v2;
- myCg.color( TQColorGroup::Base ).hsv( &h1, &s1, &v1 );
- myCg.color( TQColorGroup::Background ).hsv( &h2, &s2, &v2 );
- TQColor c( h1, s1, ( v1 + v2 ) / 2, TQColor::Hsv );
-#endif
-
- backColor1 = new TQColor( 250, 248, 235 );
- backColor2 = new TQColor( 255, 255, 255 );
- selectedBack = new TQColor( 230, 230, 230 );
-}
-
-#endif
-
-#endif
diff --git a/python/pyqt/pyuic3/main.cpp b/python/pyqt/pyuic3/main.cpp
deleted file mode 100644
index fa93b9e3..00000000
--- a/python/pyqt/pyuic3/main.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-** Copyright (c) 2001 Phil Thompson <phil@river-bank.demon.co.uk>
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "uic.h"
-#include "parser.h"
-#include "widgetdatabase.h"
-#include "domtool.h"
-#include <tqapplication.h>
-#include <tqfile.h>
-#include <tqstringlist.h>
-#include <tqdatetime.h>
-#define NO_STATIC_COLORS
-#include <globaldefs.h>
-#include <tqregexp.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int main( int argc, char * argv[] )
-{
- PyIndent indent;
- bool testCode = FALSE, execCode = FALSE;
- bool subcl = FALSE;
- bool imagecollection = FALSE;
- TQStringList images;
- const char *error = 0;
- const char* fileName = 0;
- TQCString outputFile;
- const char* projectName = 0;
- const char* trmacro = 0;
- bool fix = FALSE;
- TQApplication app(argc, argv, FALSE);
- TQString className, uicClass;
-
- for ( int n = 1; n < argc && error == 0; n++ ) {
- TQCString arg = argv[n];
- if ( arg[0] == '-' ) { // option
- TQCString opt = &arg[1];
- if ( opt[0] == 'o' ) { // output redirection
- if ( opt[1] == '\0' ) {
- if ( !(n < argc-1) ) {
- error = "Missing output-file name";
- break;
- }
- outputFile = argv[++n];
- } else
- outputFile = &opt[1];
- } else if ( opt[0] == 'e' || opt == "embed" ) {
- imagecollection = TRUE;
- if ( opt == "embed" || opt[1] == '\0' ) {
- if ( !(n < argc-1) ) {
- error = "Missing name of project";
- break;
- }
- projectName = argv[++n];
- } else
- projectName = &opt[1];
- } else if ( opt == "subimpl" ) {
- subcl = TRUE;
- if ( !(n < argc-1) ) {
- error = "Missing class name";
- break;
- }
- className = argv[++n];
- } else if ( opt == "tr" ) {
- if ( opt == "tr" || opt[1] == '\0' ) {
- if ( !(n < argc-1) ) {
- error = "Missing tr macro";
- break;
- }
- trmacro = argv[++n];
- } else {
- trmacro = &opt[1];
- }
- } else if ( opt == "version" ) {
- fprintf( stderr,
- "Python User Interface Compiler %s for Qt version %s\n",
- PYQT_VERSION, QT_VERSION_STR );
- return 1;
- } else if ( opt == "help" ) {
- break;
- } else if ( opt == "fix" ) {
- fix = TRUE;
- } else if ( opt[0] == 'p' ) {
- uint tabstop;
- bool ok;
-
- if ( opt[1] == '\0' ) {
- if ( !(n < argc-1) ) {
- error = "Missing Python indent";
- break;
- }
- tabstop = TQCString(argv[++n]).toUInt(&ok);
- } else
- tabstop = opt.mid(1).toUInt(&ok);
-
- if (ok)
- indent.setTabStop(tabstop);
- else
- error = "Invalid Python indent";
- } else if ( opt == "test" ) {
- testCode = TRUE;
- } else if ( opt == "x" ) {
- execCode = TRUE;
- } else {
- error = "Unrecognized option";
- }
- } else {
- if ( imagecollection )
- images << argv[n];
- else if ( fileName ) // can handle only one file
- error = "Too many input files specified";
- else
- fileName = argv[n];
- }
- }
-
- if ( argc < 2 || error || (!fileName && !imagecollection ) ) {
- fprintf( stderr, "PyQt user interface compiler.\n" );
- if ( error )
- fprintf( stderr, "pyuic: %s\n", error );
-
- fprintf( stderr, "Usage: %s [options] [mode] <uifile>\n"
- "\nGenerate implementation:\n"
- " %s [options] <uifile>\n"
- "Generate image collection:\n"
- " %s [options] -embed <project> <image1> <image2> <image3> ...\n"
- "\t<project>\tproject name\n"
- "\t<image[0..n]>\timage files\n"
- "Generate subclass implementation:\n"
- " %s [options] -subimpl <classname> <uifile>\n"
- "\t<classname>\tname of the subclass to generate\n"
- "Options:\n"
- "\t-o file\t\tWrite output to file rather than stdout\n"
- "\t-p indent\tSet the Python indent in spaces (0 to use a tab)\n"
- "\t-tr func\tUse func() rather than TQApplication.translate() for i18n\n"
- "\t-x\t\tGenerate extra code to test and display the class\n"
- "\t-test\t\tGenerate extra code to test but not display the class\n"
- "\t-version\tDisplay version of pyuic\n"
- "\t-help\t\tDisplay this information\n"
- , argv[0], argv[0], argv[0], argv[0]);
- return 1;
- }
-
- Uic::setIndent(indent);
-
- TQFile fileOut;
- if ( !outputFile.isEmpty() ) {
- fileOut.setName( outputFile );
- if (!fileOut.open( IO_WriteOnly ) )
- qFatal( "pyuic: Could not open output file '%s'", outputFile.data() );
- } else {
- fileOut.open( IO_WriteOnly, stdout );
- }
- TQTextStream out( &fileOut );
-
- if ( imagecollection ) {
- out.setEncoding( TQTextStream::Latin1 );
- out << "# -*- coding: latin-1 -*-\n\n";
- Uic::embed( out, projectName, images );
- return 0;
- }
-
-
- out.setEncoding( TQTextStream::UnicodeUTF8 );
- TQFile file( fileName );
- if ( !file.open( IO_ReadOnly ) )
- qFatal( "pyuic: Could not open file '%s' ", fileName );
-
- TQDomDocument doc;
- TQString errMsg;
- int errLine;
- if ( !doc.setContent( &file, &errMsg, &errLine ) )
- qFatal( TQString("pyuic: Failed to parse %s: ") + errMsg + TQString (" in line %d\n"), fileName, errLine );
-
- TQDomElement e = doc.firstChild().toElement();
- if ( e.hasAttribute("version") && e.attribute("version").toDouble() > 3.3 ) {
- qWarning( TQString("pyuic: File generated with too recent version of Qt Designer (%s vs. %s)"),
- e.attribute("version").latin1(), QT_VERSION_STR );
- return 1;
- }
-
- DomTool::fixDocument( doc );
-
- if ( fix ) {
- out << doc.toString();
- return 0;
- }
-
- out << "# -*- coding: utf-8 -*-\n\n";
-
- if ( !subcl ) {
- out << "# Form implementation generated from reading ui file '" << fileName << "'" << endl;
- out << "#" << endl;
- out << "# Created: " << TQDateTime::currentDateTime().toString() << endl;
- out << "# by: The PyQt User Interface Compiler (pyuic) " << PYQT_VERSION << endl;
- out << "#" << endl;
- out << "# WARNING! All changes made in this file will be lost!" << endl;
- out << endl;
- out << endl;
- }
-
- if (testCode || execCode)
- out << "import sys" << endl;
-
- out << "from qt import *" << endl;
-
- Uic( fileName, outputFile, out, doc, subcl, trmacro, className, uicClass );
-
- if (testCode || execCode) {
- out << endl;
- out << indent << "if __name__ == \"__main__\":" << endl;
- ++indent;
- out << indent << "a = TQApplication(sys.argv)" << endl;
- out << indent << "TQObject.connect(a,TQT_SIGNAL(\"lastWindowClosed()\"),a,TQT_SLOT(\"quit()\"))" << endl;
- out << indent << "w = " << (subcl ? className : uicClass) << "()" << endl;
- out << indent << "a.setMainWidget(w)" << endl;
-
- if (execCode) {
- out << indent << "w.show()" << endl;
- out << indent << "a.exec_loop()" << endl;
- }
-
- --indent;
- }
-
- return 0;
-}
diff --git a/python/pyqt/pyuic3/object.cpp b/python/pyqt/pyuic3/object.cpp
deleted file mode 100644
index 335bce9b..00000000
--- a/python/pyqt/pyuic3/object.cpp
+++ /dev/null
@@ -1,704 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "uic.h"
-#include "parser.h"
-#include "domtool.h"
-#include <tqregexp.h>
-#include <tqsizepolicy.h>
-#include <tqstringlist.h>
-#define NO_STATIC_COLORS
-#include <globaldefs.h>
-
-
-/*!
- Creates an implementation for the object given in \a e.
-
- Traverses recursively over all children.
-
- Returns the name of the generated child object.
- */
-
-static bool createdCentralWidget = FALSE;
-
-TQString Uic::createObjectImpl( const TQDomElement &e, const TQString& parentClass, const TQString& par, const TQString& layout )
-{
- TQString parent( par );
- if ( parent == "self" && isMainWindow ) {
- if ( !createdCentralWidget )
- out << indent << "self.setCentralWidget(TQWidget(self,\"qt_central_widget\"))" << endl;
- createdCentralWidget = TRUE;
- parent = "self.centralWidget()";
- }
- TQDomElement n;
- TQString objClass, objName, fullObjName;
- int numItems = 0;
- int numColumns = 0;
- int numRows = 0;
-
- if ( layouts.contains( e.tagName() ) )
- return createLayoutImpl( e, parentClass, parent, layout );
-
- objClass = getClassName( e );
- if ( objClass.isEmpty() )
- return objName;
- objName = getObjectName( e );
-
- TQString definedName = objName;
- bool isTmpObject = objName.isEmpty() || objClass == "QLayoutWidget";
- if ( isTmpObject ) {
- if ( objClass[0] == 'Q' )
- objName = objClass.mid(1);
- else
- objName = objClass.lower();
- }
-
- bool isLine = objClass == "Line";
- if ( isLine )
- objClass = "TQFrame";
-
- out << endl;
- if ( objClass == "QLayoutWidget" ) {
- if ( layout.isEmpty() ) {
- // register the object and unify its name
- objName = registerObject( objName );
- out << indent << objName << " = TQWidget(" << parent << ",\"" << definedName << "\")" << endl;
- } else {
- // the layout widget is not necessary, hide it by creating its child in the parent
- TQString result;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if (tags.contains( n.tagName() ) )
- result = createObjectImpl( n, parentClass, parent, layout );
- }
- return result;
- }
-
- // Layouts don't go into the class instance dictionary.
- fullObjName = objName;
- } else if ( objClass != "TQToolBar" && objClass != "TQMenuBar" ) {
- // register the object and unify its name
- objName = registerObject( objName );
-
- // Temporary objects don't go into the class instance dictionary.
- fullObjName = isTmpObject ? objName : "self." + objName;
-
- out << indent << fullObjName << " = " << createObjectInstance( objClass, parent, objName ) << endl;
- }
- else
- fullObjName = "self." + objName;
-
- if ( objClass == "QAxWidget" ) {
- TQString controlId;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "property" && n.attribute( "name" ) == "control" ) {
- controlId = n.firstChild().toElement().text();
- }
- }
- out << indent << fullObjName << ".setControl(\"" << controlId << "\")" << endl;
- }
-
- lastItem = "None";
- // set the properties and insert items
- bool hadFrameShadow = FALSE;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "property" ) {
- bool stdset = stdsetdef;
- if ( n.hasAttribute( "stdset" ) )
- stdset = toBool( n.attribute( "stdset" ) );
- TQString prop = n.attribute( "name" );
- if ( prop == "database" )
- continue;
- TQString value = setObjectProperty( objClass, objName, prop, n.firstChild().toElement(), stdset );
- if ( value.isEmpty() )
- continue;
- if ( prop == "name" )
- continue;
- if ( isLine && prop == "frameShadow" )
- hadFrameShadow = TRUE;
- if ( prop == "buddy" && value.startsWith("\"") && value.endsWith("\"") ) {
- buddies << Buddy( objName, value.mid(1, value.length() - 2 ) );
- continue;
- }
- if ( isLine && prop == "orientation" ) {
- prop = "frameShape";
- if ( value.right(10) == "Horizontal" )
- value = "TQFrame.HLine";
- else
- value = "TQFrame.VLine";
- if ( !hadFrameShadow ) {
- prop = "frameStyle";
- value += " | TQFrame.Sunken";
- }
- }
- if ( prop == "buttonGroupId" ) {
- if ( parentClass == "TQButtonGroup" )
- out << indent << parent << ".insert( " << fullObjName << "," << value << ")" << endl;
- continue;
- }
- if ( prop == "frameworkCode" )
- continue;
- if ( objClass == "TQMultiLineEdit" &&
- TQRegExp("echoMode|hMargin|maxLength|maxLines|undoEnabled").exactMatch(prop) )
- continue;
- TQString call = fullObjName + ".";
- TQString tail;
- if ( stdset ) {
- call += mkStdSet( prop ) + "(";
- tail = ")";
- } else {
- call += "setProperty(\"" + prop + "\",TQVariant(";
- tail = "))";
- }
- if ( prop == "accel" ) {
- call += "TQKeySequence(";
- tail += ")";
- }
- call += value + tail;
-
- if ( n.firstChild().toElement().tagName() == "string" ||
- prop == "currentItem" ) {
- trout << trindent << call << endl;
- } else {
- out << indent << call << endl;
- }
- } else if ( n.tagName() == "item" ) {
- TQString call;
- TQString value;
-
- if ( objClass.contains( "ListBox" ) ) {
- call = createListBoxItemImpl( n, fullObjName );
- if ( !call.isEmpty() ) {
- if ( numItems == 0 )
- trout << trindent << fullObjName << ".clear()" << endl;
- trout << trindent << call << endl;
- }
- } else if ( objClass.contains( "ComboBox" ) ) {
- call = createListBoxItemImpl( n, fullObjName, &value );
- if ( !call.isEmpty() ) {
- if ( numItems == 0 )
- trout << trindent << fullObjName << ".clear()" << endl;
- trout << trindent << call << endl;
- }
- } else if ( objClass.contains( "IconView" ) ) {
- call = createIconViewItemImpl( n, fullObjName );
- if ( !call.isEmpty() ) {
- if ( numItems == 0 )
- trout << trindent << fullObjName << ".clear()" << endl;
- trout << trindent << call << endl;
- }
- } else if ( objClass.contains( "ListView" ) ) {
- call = createListViewItemImpl( n, fullObjName, TQString::null );
- if ( !call.isEmpty() ) {
- if ( numItems == 0 )
- trout << trindent << fullObjName << ".clear()" << endl;
- trout << call << endl;
- }
- }
- if ( !call.isEmpty() )
- numItems++;
- } else if ( n.tagName() == "column" || n.tagName() == "row" ) {
- TQString call;
- TQString value;
-
- if ( objClass.contains( "ListView" ) ) {
- call = createListViewColumnImpl( n, fullObjName, &value );
- if ( !call.isEmpty() ) {
- out << call;
- trout << trindent << fullObjName << ".header().setLabel("
- << numColumns++ << "," << value << ")\n";
- }
- } else if ( objClass == "TQTable" || objClass == "TQDataTable" ) {
- bool isCols = ( n.tagName() == "column" );
- call = createTableRowColumnImpl( n, fullObjName, &value );
- if ( !call.isEmpty() ) {
- out << call;
- trout << trindent << fullObjName << "."
- << ( isCols ? "horizontalHeader" : "verticalHeader" )
- << "().setLabel("
- << ( isCols ? numColumns++ : numRows++ )
- << "," << value << ")\n";
- }
- }
- }
- }
-
- // create all children, some widgets have special requirements
-
- if ( objClass == "TQTabWidget" ) {
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( tags.contains( n.tagName() ) ) {
- TQString page = createObjectImpl( n, objClass, fullObjName );
- TQString comment;
- TQString label = DomTool::readAttribute( n, "title", "", comment ).toString();
- out << indent << fullObjName << ".insertTab(" << page << ",TQString.fromLatin1(\"\"))" << endl;
- trout << trindent << fullObjName << ".changeTab(" << page << "," << trcall( label, comment ) << ")" << endl;
- }
- }
- } else if ( objClass == "TQWidgetStack" ) {
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( tags.contains( n.tagName() ) ) {
- TQString page = createObjectImpl( n, objClass, fullObjName );
- int id = DomTool::readAttribute( n, "id", "" ).toInt();
- out << indent << fullObjName << ".addWidget(" << page << "," << id << ")" << endl;
- }
- }
- } else if ( objClass == "TQToolBox" ) {
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( tags.contains( n.tagName() ) ) {
- TQString page = createObjectImpl( n, objClass, fullObjName );
- TQString comment;
- TQString label = DomTool::readAttribute( n, "label", "", comment ).toString();
- out << indent << fullObjName << ".addItem(" << page << ",TQString.fromLatin1(\"\"))" << endl;
- trout << trindent << fullObjName << ".setItemLabel(" << fullObjName
- << ".indexOf(" << page << ")," << trcall( label, comment )
- << ")" << endl;
- }
- }
- } else if ( objClass != "TQToolBar" && objClass != "TQMenuBar" ) { // standard widgets
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( tags.contains( n.tagName() ) )
- createObjectImpl( n, objClass, fullObjName );
- }
- }
-
- return fullObjName;
-}
-
-
-
-/*!
- Creates a set-call for property \a exclusiveProp of the object
- given in \a e.
-
- If the object does not have this property, the function does nothing.
-
- Exclusive properties are used to generate the implementation of
- application font or palette change handlers in createFormImpl().
-
- */
-void Uic::createExclusiveProperty( const TQDomElement & e, const TQString& exclusiveProp )
-{
- TQDomElement n;
- TQString objClass = getClassName( e );
- if ( objClass.isEmpty() )
- return;
- TQString objName = getObjectName( e );
-#if 0 // it's not clear whether this check should be here or not
- if ( objName.isEmpty() )
- return;
-#endif
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "property" ) {
- bool stdset = stdsetdef;
- if ( n.hasAttribute( "stdset" ) )
- stdset = toBool( n.attribute( "stdset" ) );
- TQString prop = n.attribute( "name" );
- if ( prop != exclusiveProp )
- continue;
- TQString value = setObjectProperty( objClass, objName, prop, n.firstChild().toElement(), stdset );
- if ( value.isEmpty() )
- continue;
- out << indent << indent << objName << ".setProperty(\"" << prop << "\",TQVariant(" << value << "))" << endl;
- }
- }
-}
-
-
-/* Convert a TQSizePolicy::SizeType to text. */
-static TQString mapSizeType(TQSizePolicy::SizeType st)
-{
- const char *txt;
-
- switch (st)
- {
- case TQSizePolicy::Fixed:
- txt = "TQSizePolicy.Fixed";
- break;
-
- case TQSizePolicy::Minimum:
- txt = "TQSizePolicy.Minimum";
- break;
-
- case TQSizePolicy::Maximum:
- txt = "TQSizePolicy.Maximum";
- break;
-
- case TQSizePolicy::Preferred:
- txt = "TQSizePolicy.Preferred";
- break;
-
- case TQSizePolicy::MinimumExpanding:
- txt = "TQSizePolicy.MinimumExpanding";
- break;
-
- case TQSizePolicy::Expanding:
- txt = "TQSizePolicy.Expanding";
- break;
-
- case TQSizePolicy::Ignored:
- txt = "TQSizePolicy.Ignored";
- break;
-
- default:
- txt = "Invalid TQSizePolicy::SizeType";
- }
-
- return txt;
-}
-
-
-/*! Attention: this function has to be in sync with
- Resource::saveProperty() and DomTool::elementToVariant. If you
- change one, change all.
- */
-TQString Uic::setObjectProperty( const TQString& objClass, const TQString& obj, const TQString &prop, const TQDomElement &e, bool stdset )
-{
- TQString v;
- if ( e.tagName() == "rect" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int x = 0, y = 0, w = 0, h = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "x" )
- x = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "y" )
- y = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "width" )
- w = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "height" )
- h = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = "TQRect(%1,%2,%3,%4)";
- v = v.arg(x).arg(y).arg(w).arg(h);
-
- } else if ( e.tagName() == "point" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int x = 0, y = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "x" )
- x = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "y" )
- y = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = "TQPoint(%1,%2)";
- v = v.arg(x).arg(y);
- } else if ( e.tagName() == "size" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int w = 0, h = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "width" )
- w = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "height" )
- h = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = "TQSize(%1,%2)";
- v = v.arg(w).arg(h);
- } else if ( e.tagName() == "color" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int r = 0, g = 0, b = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "red" )
- r = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "green" )
- g = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "blue" )
- b = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = "TQColor(%1,%2,%3)";
- v = v.arg(r).arg(g).arg(b);
- } else if ( e.tagName() == "font" ) {
- TQDomElement n3 = e.firstChild().toElement();
- TQString attrname = e.parentNode().toElement().attribute( "name", "font" );
- TQString fontname;
- if ( !obj.isEmpty() ) {
- fontname = registerObject( obj + "_" + attrname );
- out << indent << fontname << " = TQFont(self." << obj << ".font())" << endl;
- } else {
- fontname = registerObject( "f" );
- out << indent << fontname << " = TQFont(self.font())" << endl;
- }
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "family" )
- out << indent << fontname << ".setFamily(\"" << n3.firstChild().toText().data() << "\")" << endl;
- else if ( n3.tagName() == "pointsize" )
- out << indent << fontname << ".setPointSize(" << n3.firstChild().toText().data() << ")" << endl;
- else if ( n3.tagName() == "bold" )
- out << indent << fontname << ".setBold(" << mkBool( n3.firstChild().toText().data() ) << ")" << endl;
- else if ( n3.tagName() == "italic" )
- out << indent << fontname << ".setItalic(" << mkBool( n3.firstChild().toText().data() ) << ")" << endl;
- else if ( n3.tagName() == "underline" )
- out << indent << fontname << ".setUnderline(" << mkBool( n3.firstChild().toText().data() ) << ")" << endl;
- else if ( n3.tagName() == "strikeout" )
- out << indent << fontname << ".setStrikeOut(" << mkBool( n3.firstChild().toText().data() ) << ")" << endl;
- n3 = n3.nextSibling().toElement();
- }
-
- if ( prop == "font" ) {
- if ( !obj.isEmpty() )
- out << indent << "self." << obj << ".setFont(" << fontname << ")" << endl;
- else
- out << indent << "self.setFont(" << fontname << ")" << endl;
- } else {
- v = fontname;
- }
- } else if ( e.tagName() == "string" ) {
- TQString txt = e.firstChild().toText().data();
- TQString com = getComment( e.parentNode() );
-
- if ( prop == "toolTip" && objClass != "TQAction" && objClass != "TQActionGroup" ) {
- if ( !obj.isEmpty() )
- trout << trindent << "TQToolTip.add(self." << obj << ","
- << trcall( txt, com ) << ")" << endl;
- else
- trout << trindent << "TQToolTip.add(self,"
- << trcall( txt, com ) << ")" << endl;
- } else if ( prop == "whatsThis" && objClass != "TQAction" && objClass != "TQActionGroup" ) {
- if ( !obj.isEmpty() )
- trout << trindent << "TQWhatsThis.add(self." << obj << ","
- << trcall( txt, com ) << ")" << endl;
- else
- trout << trindent << "TQWhatsThis.add(self,"
- << trcall( txt, com ) << ")" << endl;
- } else {
- v = trcall( txt, com );
- }
- } else if ( e.tagName() == "cstring" ) {
- v = "\"%1\"";
- v = v.arg( e.firstChild().toText().data() );
- } else if ( e.tagName() == "number" ) {
- v = "%1";
- v = v.arg( e.firstChild().toText().data() );
- } else if ( e.tagName() == "bool" ) {
- if ( stdset )
- v = "%1";
- else
- v = "TQVariant(%1,0)";
- v = v.arg( mkBool( e.firstChild().toText().data() ) );
- } else if ( e.tagName() == "pixmap" ) {
- v = e.firstChild().toText().data();
- if ( !v.isEmpty() ) {
- if ( pixmapLoaderFunction.isEmpty() ) {
- v.prepend( "self." );
- } else {
- v.prepend( pixmapLoaderFunction + "(" + TQString( externPixmaps ? "\"" : "" ) );
- v.append( TQString( externPixmaps ? "\"" : "" ) + ")" );
- }
- }
- } else if ( e.tagName() == "iconset" ) {
- v = "TQIconSet(%1)";
- TQString s = e.firstChild().toText().data();
- if ( !s.isEmpty() ) {
- if ( pixmapLoaderFunction.isEmpty() ) {
- s.prepend( "self." );
- } else {
- s.prepend( pixmapLoaderFunction + "(" + TQString( externPixmaps ? "\"" : "" ) );
- s.append( TQString( externPixmaps ? "\"" : "" ) + ")" );
- }
- }
- v = v.arg( s );
- } else if ( e.tagName() == "image" ) {
- v = e.firstChild().toText().data() + ".convertToImage()";
- } else if ( e.tagName() == "enum" ) {
- v = "%1.%2";
- TQString oc = objClass;
- TQString ev = e.firstChild().toText().data();
- if ( oc == "TQListView" && ev == "Manual" ) // #### workaround, rename TQListView::Manual in 4.0
- oc = "TQScrollView";
- v = v.arg( oc ).arg( ev );
- } else if ( e.tagName() == "set" ) {
- TQString keys( e.firstChild().toText().data() );
- TQStringList lst = TQStringList::split( '|', keys );
- v = "";
- TQStringList::Iterator it = lst.begin();
- while ( it != lst.end() ) {
- v += objClass + "." + *it;
- if ( it != lst.fromLast() )
- v += " | ";
- ++it;
- }
- } else if ( e.tagName() == "sizepolicy" ) {
- TQDomElement n3 = e.firstChild().toElement();
- TQSizePolicy sp;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "hsizetype" )
- sp.setHorData( (TQSizePolicy::SizeType)n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "vsizetype" )
- sp.setVerData( (TQSizePolicy::SizeType)n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "horstretch" )
- sp.setHorStretch( n3.firstChild().toText().data().toInt() );
- else if ( n3.tagName() == "verstretch" )
- sp.setVerStretch( n3.firstChild().toText().data().toInt() );
- n3 = n3.nextSibling().toElement();
- }
- TQString tmp = "self.";
- if ( !obj.isEmpty() )
- tmp += obj + ".";
- v = "TQSizePolicy(%1,%2,%3,%4," + tmp + "sizePolicy().hasHeightForWidth())";
- v = v.arg( mapSizeType(sp.horData()) ).arg( mapSizeType(sp.verData()) ).arg( sp.horStretch() ).arg( sp.verStretch() );
- } else if ( e.tagName() == "palette" ) {
- TQPalette pal;
- bool no_pixmaps = e.elementsByTagName( "pixmap" ).count() == 0;
- TQDomElement n;
- if ( no_pixmaps ) {
- n = e.firstChild().toElement();
- while ( !n.isNull() ) {
- TQColorGroup cg;
- if ( n.tagName() == "active" ) {
- cg = loadColorGroup( n );
- pal.setActive( cg );
- } else if ( n.tagName() == "inactive" ) {
- cg = loadColorGroup( n );
- pal.setInactive( cg );
- } else if ( n.tagName() == "disabled" ) {
- cg = loadColorGroup( n );
- pal.setDisabled( cg );
- }
- n = n.nextSibling().toElement();
- }
- }
- if ( no_pixmaps && pal == TQPalette( pal.active().button(), pal.active().background() ) ) {
- v = "TQPalette(TQColor(%1,%2,%3),TQColor(%1,%2,%3))";
- v = v.arg( pal.active().button().red() ).arg( pal.active().button().green() ).arg( pal.active().button().blue() );
- v = v.arg( pal.active().background().red() ).arg( pal.active().background().green() ).arg( pal.active().background().blue() );
- } else {
- TQString palette = "pal";
- if ( !pal_used ) {
- out << indent << palette << " = TQPalette()" << endl;
- pal_used = TRUE;
- }
- TQString cg = "cg";
- if ( !cg_used ) {
- out << indent << cg << " = TQColorGroup()" << endl;
- cg_used = TRUE;
- }
- n = e.firstChild().toElement();
- while ( !n.isNull() && n.tagName() != "active" )
- n = n.nextSibling().toElement();
- createColorGroupImpl( cg, n );
- out << indent << palette << ".setActive(" << cg << ")" << endl;
-
- n = e.firstChild().toElement();
- while ( !n.isNull() && n.tagName() != "inactive" )
- n = n.nextSibling().toElement();
- createColorGroupImpl( cg, n );
- out << indent << palette << ".setInactive(" << cg << ")" << endl;
-
- n = e.firstChild().toElement();
- while ( !n.isNull() && n.tagName() != "disabled" )
- n = n.nextSibling().toElement();
- createColorGroupImpl( cg, n );
- out << indent << palette << ".setDisabled(" << cg << ")" << endl;
- v = palette;
- }
- } else if ( e.tagName() == "cursor" ) {
- v = "TQCursor(%1)";
- v = v.arg( e.firstChild().toText().data() );
- } else if ( e.tagName() == "date" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int y, m, d;
- y = m = d = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "year" )
- y = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "month" )
- m = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "day" )
- d = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = "TQDate(%1,%2,%3)";
- v = v.arg(y).arg(m).arg(d);
- } else if ( e.tagName() == "time" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int h, m, s;
- h = m = s = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "hour" )
- h = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "minute" )
- m = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "second" )
- s = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = "TQTime(%1,%2,%3)";
- v = v.arg(h).arg(m).arg(s);
- } else if ( e.tagName() == "datetime" ) {
- TQDomElement n3 = e.firstChild().toElement();
- int h, mi, s, y, mo, d;
- h = mi = s = y = mo = d = 0;
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "hour" )
- h = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "minute" )
- mi = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "second" )
- s = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "year" )
- y = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "month" )
- mo = n3.firstChild().toText().data().toInt();
- else if ( n3.tagName() == "day" )
- d = n3.firstChild().toText().data().toInt();
- n3 = n3.nextSibling().toElement();
- }
- v = "TQDateTime(TQDate(%1,%2,%3),TQTime(%4,%5,%6))";
- v = v.arg(y).arg(mo).arg(d).arg(h).arg(mi).arg(s);
- } else if ( e.tagName() == "stringlist" ) {
- TQStringList l;
- TQDomElement n3 = e.firstChild().toElement();
- TQString listname = "l";
- if ( !obj.isEmpty() ) {
- listname = obj + "_stringlist";
- listname = registerObject( listname );
- out << indent << listname << " = TQStringList()" << endl;
- } else {
- out << indent << listname << " = TQStringList()" << endl;
- }
- while ( !n3.isNull() ) {
- if ( n3.tagName() == "string" )
- out << indent << listname << ".append(\"" << n3.firstChild().toText().data().simplifyWhiteSpace() << "\")" << endl;
- n3 = n3.nextSibling().toElement();
- }
- v = listname;
- }
- return v;
-}
-
-
-
-
-/*! Extracts a named object property from \a e.
- */
-TQDomElement Uic::getObjectProperty( const TQDomElement& e, const TQString& name )
-{
- TQDomElement n;
- for ( n = e.firstChild().toElement();
- !n.isNull();
- n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "property" && n.toElement().attribute("name") == name )
- return n;
- }
- return n;
-}
-
diff --git a/python/pyqt/pyuic3/parser.cpp b/python/pyqt/pyuic3/parser.cpp
deleted file mode 100644
index 15374aa5..00000000
--- a/python/pyqt/pyuic3/parser.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "parser.h"
-#include <tqobject.h>
-#include <tqstringlist.h>
-
-class NormalizeObject : public QObject
-{
-public:
- NormalizeObject() : TQObject() {}
- static TQCString normalizeSignalSlot( const char *signalSlot ) { return TQObject::normalizeSignalSlot( signalSlot ); }
-};
-
-TQString Parser::cleanArgs( const TQString &func )
-{
- TQString slot( func );
- int begin = slot.find( "(" ) + 1;
- TQString args = slot.mid( begin );
- args = args.left( args.find( ")" ) );
- TQStringList lst = TQStringList::split( ',', args );
- TQString res = slot.left( begin );
- for ( TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
- if ( it != lst.begin() )
- res += ",";
- TQString arg = *it;
- int pos = 0;
- if ( ( pos = arg.find( "&" ) ) != -1 ) {
- arg = arg.left( pos + 1 );
- } else if ( ( pos = arg.find( "*" ) ) != -1 ) {
- arg = arg.left( pos + 1 );
- } else {
- arg = arg.simplifyWhiteSpace();
- if ( ( pos = arg.find( ':' ) ) != -1 )
- arg = arg.left( pos ).simplifyWhiteSpace() + ":" + arg.mid( pos + 1 ).simplifyWhiteSpace();
- TQStringList l = TQStringList::split( ' ', arg );
- if ( l.count() == 2 ) {
- if ( l[ 0 ] != "const" && l[ 0 ] != "unsigned" && l[ 0 ] != "var" )
- arg = l[ 0 ];
- } else if ( l.count() == 3 ) {
- arg = l[ 0 ] + " " + l[ 1 ];
- }
- }
- res += arg;
- }
- res += ")";
-
- return TQString::fromLatin1( NormalizeObject::normalizeSignalSlot( res.latin1() ) );
-}
diff --git a/python/pyqt/pyuic3/parser.h b/python/pyqt/pyuic3/parser.h
deleted file mode 100644
index ace96d9e..00000000
--- a/python/pyqt/pyuic3/parser.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#ifndef PARSER_H
-#define PARSER_H
-
-#include <tqstring.h>
-
-class Parser
-{
-public:
- static TQString cleanArgs( const TQString &func );
-
-};
-
-#endif
diff --git a/python/pyqt/pyuic3/pyuic-prof.sbf b/python/pyqt/pyuic3/pyuic-prof.sbf
deleted file mode 100644
index 3080263d..00000000
--- a/python/pyqt/pyuic3/pyuic-prof.sbf
+++ /dev/null
@@ -1,24 +0,0 @@
-# This is the build file for pyuic for Qt v3 Professional Edition.
-#
-# Copyright (c) 2007
-# Riverbank Computing Limited <info@riverbankcomputing.co.uk>
-#
-# This file is part of PyQt.
-#
-# This copy of PyQt is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the Free
-# Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# PyQt is supplied in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# PyQt; see the file LICENSE. If not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-target = pyuic
-sources = main.cpp uic.cpp form.cpp object.cpp subclassing.cpp embed.cpp widgetdatabase.cpp domtool.cpp parser.cpp qdom.cpp qxml.cpp
-headers = domtool.h globaldefs.h parser.h uic.h widgetdatabase.h widgetinterface.h
diff --git a/python/pyqt/pyuic3/pyuic.pro.in b/python/pyqt/pyuic3/pyuic.pro.in
deleted file mode 100644
index faebbd6f..00000000
--- a/python/pyqt/pyuic3/pyuic.pro.in
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2001
-# Phil Thompson <phil@river-bank.demon.co.uk>
-# Copyright (c) 2002, 2003
-# Riverbank Computing Limited <info@riverbankcomputing.co.uk>
-#
-# The project file for pyuic for Qt v3.
-
-
-TEMPLATE = app
-CONFIG += qt console warn_on release @PYQT_RBPROF@
-INCLUDEPATH += @BLX_INCLUDEPATH@ $(QTDIR)/src/3rdparty/zlib
-DEFINES += UIC QT_INTERNAL_XML @BLX_DEFINES@
-
-DESTDIR = @PYQT_BINDIR@
-TARGET = pyuic
-
-HEADERS = uic.h \
- widgetdatabase.h \
- domtool.h \
- parser.h \
- widgetinterface.h
-
-SOURCES = main.cpp \
- uic.cpp \
- form.cpp \
- object.cpp \
- subclassing.cpp \
- embed.cpp \
- widgetdatabase.cpp \
- domtool.cpp \
- parser.cpp
-
-rbprof:exists($(QTDIR)/src/qt_professional.pri) {
- QT_SOURCE_TREE = $(QTDIR)
- include($(QTDIR)/src/qt_professional.pri)
-}
diff --git a/python/pyqt/pyuic3/pyuic.sbf b/python/pyqt/pyuic3/pyuic.sbf
deleted file mode 100644
index 736b60ac..00000000
--- a/python/pyqt/pyuic3/pyuic.sbf
+++ /dev/null
@@ -1,24 +0,0 @@
-# This is the build file for pyuic for Qt v3.
-#
-# Copyright (c) 2007
-# Riverbank Computing Limited <info@riverbankcomputing.co.uk>
-#
-# This file is part of PyQt.
-#
-# This copy of PyQt is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the Free
-# Software Foundation; either version 2, or (at your option) any later
-# version.
-#
-# PyQt is supplied in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-# details.
-#
-# You should have received a copy of the GNU General Public License along with
-# PyQt; see the file LICENSE. If not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-target = pyuic
-sources = main.cpp uic.cpp form.cpp object.cpp subclassing.cpp embed.cpp widgetdatabase.cpp domtool.cpp parser.cpp
-headers = domtool.h globaldefs.h parser.h uic.h widgetdatabase.h widgetinterface.h
diff --git a/python/pyqt/pyuic3/subclassing.cpp b/python/pyqt/pyuic3/subclassing.cpp
deleted file mode 100644
index 251d704f..00000000
--- a/python/pyqt/pyuic3/subclassing.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "uic.h"
-#include "parser.h"
-#include "widgetdatabase.h"
-#include "domtool.h"
-#include <tqfile.h>
-#include <tqstringlist.h>
-#include <tqdatetime.h>
-#define NO_STATIC_COLORS
-#include <globaldefs.h>
-#include <tqregexp.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-/*!
- Creates an implementation for a subclass \a subClass of the form
- given in \a e
-
- \sa createSubDecl()
- */
-void Uic::createSubImpl( const TQDomElement &e, const TQString& subClass )
-{
- TQDomElement n;
- TQDomNodeList nl;
- int i;
-
- TQString objClass = getClassName( e );
- if ( objClass.isEmpty() )
- return;
-
- TQString supClsMod = fileName;
- int tail = supClsMod.findRev('.',-1);
- if (tail >= 0)
- supClsMod.truncate(tail);
-
- out << indent << "from " << supClsMod << " import " << nameOfClass << endl;
- out << endl;
- out << endl;
-
- out << indent << "class " << subClass << "(" << nameOfClass << "):" << endl;
- ++indent;
- out << endl;
-
- // constructor
- if ( objClass == "TQDialog" || objClass == "TQWizard" ) {
- out << indent << "def __init__(self,parent = None,name = None,modal = 0,fl = 0):" << endl;
- ++indent;
- out << indent << nameOfClass << ".__init__(self,parent,name,modal,fl)" << endl;
- } else { // standard QWidget
- out << indent << "def __init__(self,parent = None,name = None,fl = 0):" << endl;
- ++indent;
- out << indent << nameOfClass << ".__init__(self,parent,name,fl)" << endl;
- }
- --indent;
-
- // find additional functions
- TQStringList publicSlots, protectedSlots, privateSlots;
- TQStringList publicSlotTypes, protectedSlotTypes, privateSlotTypes;
- TQStringList publicSlotSpecifier, protectedSlotSpecifier, privateSlotSpecifier;
- TQStringList publicFuncts, protectedFuncts, privateFuncts;
- TQStringList publicFunctRetTyp, protectedFunctRetTyp, privateFunctRetTyp;
- TQStringList publicFunctSpec, protectedFunctSpec, privateFunctSpec;
-
- nl = e.parentNode().toElement().elementsByTagName( "slot" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- n = nl.item(i).toElement();
- if ( n.parentNode().toElement().tagName() != "slots"
- && n.parentNode().toElement().tagName() != "connections" )
- continue;
- if ( n.attribute( "language", "C++" ) != "C++" )
- continue;
- TQString returnType = n.attribute( "returnType", "void" );
- TQString functionName = n.firstChild().toText().data().stripWhiteSpace();
- if ( functionName.endsWith( ";" ) )
- functionName = functionName.left( functionName.length() - 1 );
- TQString specifier = n.attribute( "specifier" );
- TQString access = n.attribute( "access" );
- if ( access == "protected" ) {
- protectedSlots += functionName;
- protectedSlotTypes += returnType;
- protectedSlotSpecifier += specifier;
- } else if ( access == "private" ) {
- privateSlots += functionName;
- privateSlotTypes += returnType;
- privateSlotSpecifier += specifier;
- } else {
- publicSlots += functionName;
- publicSlotTypes += returnType;
- publicSlotSpecifier += specifier;
- }
- }
-
- nl = e.parentNode().toElement().elementsByTagName( "function" );
- for ( i = 0; i < (int) nl.length(); i++ ) {
- n = nl.item(i).toElement();
- if ( n.parentNode().toElement().tagName() != "functions" )
- continue;
- if ( n.attribute( "language", "C++" ) != "C++" )
- continue;
- TQString returnType = n.attribute( "returnType", "void" );
- TQString functionName = n.firstChild().toText().data().stripWhiteSpace();
- if ( functionName.endsWith( ";" ) )
- functionName = functionName.left( functionName.length() - 1 );
- TQString specifier = n.attribute( "specifier" );
- TQString access = n.attribute( "access" );
- if ( access == "protected" ) {
- protectedFuncts += functionName;
- protectedFunctRetTyp += returnType;
- protectedFunctSpec += specifier;
- } else if ( access == "private" ) {
- privateFuncts += functionName;
- privateFunctRetTyp += returnType;
- privateFunctSpec += specifier;
- } else {
- publicFuncts += functionName;
- publicFunctRetTyp += returnType;
- publicFunctSpec += specifier;
- }
- }
-
- if ( !publicFuncts.isEmpty() )
- writeFunctionsSubImpl( publicFuncts, publicFunctRetTyp, publicFunctSpec, subClass, "public function" );
-
- // create stubs for public additional slots
- if ( !publicSlots.isEmpty() )
- writeFunctionsSubImpl( publicSlots, publicSlotTypes, publicSlotSpecifier, subClass, "public slot" );
-
- if ( !protectedFuncts.isEmpty() )
- writeFunctionsSubImpl( protectedFuncts, protectedFunctRetTyp, protectedFunctSpec, subClass, "protected function" );
-
- // create stubs for protected additional slots
- if ( !protectedSlots.isEmpty() )
- writeFunctionsSubImpl( protectedSlots, protectedSlotTypes, protectedSlotSpecifier, subClass, "protected slot" );
-
- if ( !privateFuncts.isEmpty() )
- writeFunctionsSubImpl( privateFuncts, privateFunctRetTyp, privateFunctSpec, subClass, "private function" );
-
- // create stubs for private additional slots
- if ( !privateSlots.isEmpty() )
- writeFunctionsSubImpl( privateSlots, privateSlotTypes, privateSlotSpecifier, subClass, "private slot" );
-
- --indent;
-}
-
-void Uic::writeFunctionsSubImpl( const TQStringList &fuLst, const TQStringList &typLst, const TQStringList &specLst,
- const TQString &subClass, const TQString &descr )
-{
- TQValueListConstIterator<TQString> it, it2, it3;
- for ( it = fuLst.begin(), it2 = typLst.begin(), it3 = specLst.begin();
- it != fuLst.end(); ++it, ++it2, ++it3 ) {
- TQString type = *it2;
- if ( type.isEmpty() )
- type = "void";
- if ( *it3 == "non virtual" )
- continue;
- out << endl;
- out << indent << "# " << descr << endl;
- pySlot(it);
- ++indent;
- out << endl;
- out << indent << "print \"" << subClass << "." << (*it) << ": Not implemented yet\"" << endl;
- --indent;
- }
- out << endl;
-}
diff --git a/python/pyqt/pyuic3/uic.cpp b/python/pyqt/pyuic3/uic.cpp
deleted file mode 100644
index b9e046c5..00000000
--- a/python/pyqt/pyuic3/uic.cpp
+++ /dev/null
@@ -1,1145 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-** Copyright (c) 2004 Phil Thompson <phil@riverbankcomputing.co.uk>
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "uic.h"
-#include "parser.h"
-#include "widgetdatabase.h"
-#include "domtool.h"
-#include <tqfile.h>
-#include <tqstringlist.h>
-#include <tqdatetime.h>
-#define NO_STATIC_COLORS
-#include <globaldefs.h>
-#include <tqregexp.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-bool Uic::isMainWindow = FALSE;
-PyIndent Uic::indent;
-PyIndent Uic::trindent;
-
-
-// Re-calculate the indent string based on the current number and nature of the
-// indent.
-void PyIndent::calc()
-{
- indstr.truncate(0);
-
- for (uint i = current; i > 0; --i)
- if (tabStop == 0)
- indstr += '\t';
- else
- for (uint t = 0; t < tabStop; ++t)
- indstr += ' ';
-}
-
-
-TQString Uic::getComment( const TQDomNode& n )
-{
- TQDomNode child = n.firstChild();
- while ( !child.isNull() ) {
- if ( child.toElement().tagName() == "comment" )
- return child.toElement().firstChild().toText().data();
- child = child.nextSibling();
- }
- return TQString::null;
-}
-
-TQString Uic::mkBool( bool b )
-{
- return b? "1" : "0";
-}
-
-TQString Uic::mkBool( const TQString& s )
-{
- return mkBool( s == "true" || s == "1" );
-}
-
-bool Uic::toBool( const TQString& s )
-{
- return s == "true" || s.toInt() != 0;
-}
-
-TQString Uic::fixString( const TQString &str, bool encode )
-{
-#if QT_VERSION >= 0x030100
- TQString s;
- if ( !encode ) {
- s = str;
- s.replace( "\\", "\\\\" );
- s.replace( "\"", "\\\"" );
- s.replace( "\r", "" );
- s.replace( "\n", "\\n\"\n\"" );
- } else {
- TQCString utf8 = str.utf8();
- const int l = utf8.length();
-
- for ( int i = 0; i < l; ++i ) {
- uchar ch = (uchar)utf8[i];
-
- if (ch != 0x0d) { // skip \r
- s += "\\x";
-
- if (ch <= 0x0f)
- s += "0";
-
- s += TQString::number( ch, 16 );
- }
- }
- }
-#else
- TQString s( str );
- s.replace( TQRegExp( "\\\\" ), "\\\\" );
- s.replace( TQRegExp( "\"" ), "\\\"" );
- s.replace( TQRegExp( "\r?\n" ), "\\n\"\n\"" );
-#endif
- return "\"" + s + "\"";
-}
-
-TQString Uic::trcall( const TQString& sourceText, const TQString& comment )
-{
- if ( sourceText.isEmpty() && comment.isEmpty() )
- return "TQString.null";
-
- TQString t = trmacro;
- bool encode = FALSE;
- if ( t.isNull() ) {
- t = "self.__tr";
- for ( int i = 0; i < (int) sourceText.length(); i++ ) {
- if ( sourceText[i].unicode() >= 0x80 ) {
- t = "self.__trUtf8";
- encode = TRUE;
- break;
- }
- }
-
- if (encode)
- pyNeedTrUtf8 = TRUE;
- else
- pyNeedTr = TRUE;
- }
-
- if ( comment.isEmpty() ) {
- return t + "(" + fixString( sourceText, encode ) + ")";
- } else {
- return t + "(" + fixString( sourceText, encode ) + "," +
- fixString( comment, encode ) + ")";
- }
-}
-
-TQString Uic::mkStdSet( const TQString& prop )
-{
- return TQString( "set" ) + prop[0].upper() + prop.mid(1);
-}
-
-
-
-/*!
- \class Uic uic.h
- \brief User Interface Compiler
-
- The class Uic encapsulates the user interface compiler (uic).
- */
-Uic::Uic( const TQString &fn, const char *outputFn, TQTextStream &outStream,
- TQDomDocument doc, bool subcl, const TQString &trm,
- const TQString& subClass, TQString &uicClass )
- : out( outStream ), trout (&languageChangeBody ),
- outputFileName( outputFn ), trmacro( trm ),
- pyNeedTr(FALSE), pyNeedTrUtf8(FALSE)
-{
- fileName = fn;
- writeFunctImpl = TRUE;
- defMargin = BOXLAYOUT_DEFAULT_MARGIN;
- defSpacing = BOXLAYOUT_DEFAULT_SPACING;
- externPixmaps = FALSE;
-
- trindent.setIndent(2);
-
- item_used = cg_used = pal_used = 0;
-
- layouts << "hbox" << "vbox" << "grid";
- tags = layouts;
- tags << "widget";
-
- pixmapLoaderFunction = getPixmapLoaderFunction( doc.firstChild().toElement() );
- nameOfClass = getFormClassName( doc.firstChild().toElement() );
-
-#if QT_VERSION >= 0x030300
- uiFileVersion = doc.firstChild().toElement().attribute("version");
-#endif
- stdsetdef = toBool( doc.firstChild().toElement().attribute("stdsetdef") );
-
- if ( doc.firstChild().isNull() || doc.firstChild().firstChild().isNull() )
- return;
-
- // Extract any Python code in the comments.
- TQStringList comm = TQStringList::split('\n',getComment(doc.firstChild()));
-
- for (TQStringList::Iterator it = comm.begin(); it != comm.end(); ++it)
- if ((*it).startsWith("Python:"))
- pyCode += (*it).mid(7) + "\n";
-
- TQDomElement e = doc.firstChild().firstChild().toElement();
- TQDomElement widget;
- while ( !e.isNull() ) {
- if ( e.tagName() == "widget" ) {
- widget = e;
- } else if ( e.tagName() == "pixmapinproject" ) {
- externPixmaps = TRUE;
- } else if ( e.tagName() == "layoutdefaults" ) {
- defSpacing = e.attribute( "spacing", defSpacing.toString() );
- defMargin = e.attribute( "margin", defMargin.toString() );
- } else if ( e.tagName() == "layoutfunctions" ) {
- defSpacing = e.attribute( "spacing", defSpacing.toString() );
-
- bool ok;
- defSpacing.toInt( &ok );
- if ( !ok ) {
- TQString buf = defSpacing.toString();
- defSpacing = buf.append( "()" );
- }
- defMargin = e.attribute( "margin", defMargin.toString() );
- defMargin.toInt( &ok );
- if ( !ok ) {
- TQString buf = defMargin.toString();
- defMargin = buf.append( "()" );
- }
- }
- e = e.nextSibling().toElement();
- }
- e = widget;
-
- if ( nameOfClass.isEmpty() )
- nameOfClass = getObjectName( e );
-
- uicClass = nameOfClass;
-
- namespaces = TQStringList::split( "::", nameOfClass );
- bareNameOfClass = namespaces.last();
- namespaces.remove( namespaces.fromLast() );
-
- if ( subcl ) {
- createSubImpl( e, subClass );
- } else {
- createFormImpl( e );
- }
-
- ++indent;
-
- if (pyNeedTr)
- {
- out << "\n";
- out << indent << "def __tr(self,s,c = None):\n";
- ++indent;
- out << indent << "return qApp.translate(\"" << nameOfClass << "\",s,c)\n";
- --indent;
- }
-
- if (pyNeedTrUtf8)
- {
- out << "\n";
- out << indent << "def __trUtf8(self,s,c = None):\n";
- ++indent;
- out << indent << "return qApp.translate(\"" << nameOfClass << "\",s,c,TQApplication.UnicodeUTF8)\n";
- --indent;
- }
-
- --indent;
-}
-
-/*! Extracts a pixmap loader function from \a e
- */
-TQString Uic::getPixmapLoaderFunction( const TQDomElement& e )
-{
- TQDomElement n;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "pixmapfunction" )
- return n.firstChild().toText().data();
- }
- return TQString::null;
-}
-
-
-/*! Extracts the forms class name from \a e
- */
-TQString Uic::getFormClassName( const TQDomElement& e )
-{
- TQDomElement n;
- TQString cn;
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "class" ) {
- TQString s = n.firstChild().toText().data();
- int i;
- while ( ( i = s.find(' ' )) != -1 )
- s[i] = '_';
- cn = s;
- }
- }
- return cn;
-}
-
-/*! Extracts a class name from \a e.
- */
-TQString Uic::getClassName( const TQDomElement& e )
-{
- TQString s = e.attribute( "class" );
- if ( s.isEmpty() && e.tagName() == "toolbar" )
- s = "TQToolBar";
- else if ( s.isEmpty() && e.tagName() == "menubar" )
- s = "TQMenuBar";
- return s;
-}
-
-/*! Returns TRUE if database framework code is generated, else FALSE.
-*/
-
-bool Uic::isFrameworkCodeGenerated( const TQDomElement& e )
-{
- TQDomElement n = getObjectProperty( e, "frameworkCode" );
- if ( n.attribute("name") == "frameworkCode" &&
- !DomTool::elementToVariant( n.firstChild().toElement(), TQVariant( TRUE, 0 ) ).toBool() )
- return FALSE;
- return TRUE;
-}
-
-/*! Extracts an object name from \a e. It's stored in the 'name'
- property.
- */
-TQString Uic::getObjectName( const TQDomElement& e )
-{
- TQDomElement n = getObjectProperty( e, "name" );
- if ( n.firstChild().toElement().tagName() == "cstring" )
- return n.firstChild().toElement().firstChild().toText().data();
- return TQString::null;
-}
-
-/*! Extracts an layout name from \a e. It's stored in the 'name'
- property of the preceeding sibling (the first child of a QLayoutWidget).
- */
-TQString Uic::getLayoutName( const TQDomElement& e )
-{
- TQDomElement p = e.parentNode().toElement();
- TQString name;
-
- if ( getClassName(p) != "QLayoutWidget" )
- name = "Layout";
-
- TQDomElement n = getObjectProperty( p, "name" );
- if ( n.firstChild().toElement().tagName() == "cstring" ) {
- name.prepend( n.firstChild().toElement().firstChild().toText().data() );
- return TQStringList::split( "::", name ).last();
- }
- return e.tagName();
-}
-
-
-TQString Uic::getDatabaseInfo( const TQDomElement& e, const TQString& tag )
-{
- TQDomElement n;
- TQDomElement n1;
- int child = 0;
- // database info is a stringlist stored in this order
- if ( tag == "connection" )
- child = 0;
- else if ( tag == "table" )
- child = 1;
- else if ( tag == "field" )
- child = 2;
- else
- return TQString::null;
- n = getObjectProperty( e, "database" );
- if ( n.firstChild().toElement().tagName() == "stringlist" ) {
- // find correct stringlist entry
- TQDomElement n1 = n.firstChild().firstChild().toElement();
- for ( int i = 0; i < child && !n1.isNull(); ++i )
- n1 = n1.nextSibling().toElement();
- if ( n1.isNull() )
- return TQString::null;
- return n1.firstChild().toText().data();
- }
- return TQString::null;
-}
-
-
-/*!
- Returns include file for class \a className or a null string.
- */
-TQString Uic::getInclude( const TQString& className )
-{
- int wid = WidgetDatabase::idFromClassName( className );
- if ( wid != -1 )
- return WidgetDatabase::includeFile( wid );
- return TQString::null;
-}
-
-
-void Uic::createActionImpl( const TQDomElement &n, const TQString &parent )
-{
- for ( TQDomElement ae = n; !ae.isNull(); ae = ae.nextSibling().toElement() ) {
- TQString objName = registerObject( getObjectName( ae ) );
- if ( ae.tagName() == "action" )
- out << indent << "self." << objName << " = TQAction(" << parent << ",\"" << objName << "\")" << endl;
- else if ( ae.tagName() == "actiongroup" )
- out << indent << "self." << objName << " = TQActionGroup(" << parent << ",\"" << objName << "\")" << endl;
- else
- continue;
- bool subActionsDone = FALSE;
-#if QT_VERSION >= 0x030300
- bool hasMenuText = FALSE;
- TQString actionText;
-#endif
- for ( TQDomElement n2 = ae.firstChild().toElement(); !n2.isNull(); n2 = n2.nextSibling().toElement() ) {
- if ( n2.tagName() == "property" ) {
- bool stdset = stdsetdef;
- if ( n2.hasAttribute( "stdset" ) )
- stdset = toBool( n2.attribute( "stdset" ) );
- TQString prop = n2.attribute("name");
- if ( prop == "name" )
- continue;
- TQString value = setObjectProperty( "TQAction", objName, prop, n2.firstChild().toElement(), stdset );
- if ( value.isEmpty() )
- continue;
-
- TQString call = "self." + objName + ".";
- if ( stdset )
- call += mkStdSet( prop ) + "(" + value + ")";
- else
- call += "setProperty(\"" + prop + "\",TQVariant(" + value + "))";
-
-#if QT_VERSION >= 0x030300
- if (prop == "menuText")
- hasMenuText = TRUE;
- else if (prop == "text")
- actionText = value;
-#endif
-
- if ( n2.firstChild().toElement().tagName() == "string" ) {
- trout << trindent << call << endl;
- } else {
- out << indent << call << endl;
- }
- } else if ( !subActionsDone && ( n2.tagName() == "actiongroup" || n2.tagName() == "action" ) ) {
- createActionImpl( n2, "self." + objName );
- subActionsDone = TRUE;
- }
- }
-#if QT_VERSION >= 0x030300
- // workaround for loading pre-3.3 files expecting bogus TQAction behavior
- if (!hasMenuText && !actionText.isEmpty() && uiFileVersion < "3.3")
- trout << indent << "self." << objName << ".setMenuText(" << actionText << ")" << endl;
-#endif
- }
-}
-
-TQString get_dock( const TQString &d )
-{
- if ( d == "0" )
- return "Qt.DockUnmanaged";
- if ( d == "1" )
- return "Qt.DockTornOff";
- if ( d == "2" )
- return "Qt.DockTop";
- if ( d == "3" )
- return "Qt.DockBottom";
- if ( d == "4" )
- return "Qt.DockRight";
- if ( d == "5" )
- return "Qt.DockLeft";
- if ( d == "6" )
- return "Qt.DockMinimized";
- return "";
-}
-
-void Uic::createToolbarImpl( const TQDomElement &n, const TQString &parentClass, const TQString &parent )
-{
- TQDomNodeList nl = n.elementsByTagName( "toolbar" );
- for ( int i = 0; i < (int) nl.length(); i++ ) {
- TQDomElement ae = nl.item( i ).toElement();
- TQString dock = get_dock( ae.attribute( "dock" ) );
- TQString objName = getObjectName( ae );
- out << indent << "self." << objName << " = TQToolBar(TQString(\"\"),self," << dock << ")" << endl;
- createObjectImpl( ae, parentClass, parent );
- for ( TQDomElement n2 = ae.firstChild().toElement(); !n2.isNull(); n2 = n2.nextSibling().toElement() ) {
- if ( n2.tagName() == "action" ) {
- out << indent << "self." << n2.attribute( "name" ) << ".addTo(self." << objName << ")" << endl;
- } else if ( n2.tagName() == "separator" ) {
- out << indent << "self." << objName << ".addSeparator()" << endl;
- } else if ( n2.tagName() == "widget" ) {
- if ( n2.attribute( "class" ) != "Spacer" ) {
- createObjectImpl( n2, "TQToolBar", "self." + objName );
- } else {
- TQString child = createSpacerImpl( n2, parentClass, parent, objName );
- out << indent << "TQApplication.sendPostedEvents(self." << objName
- << ",TQEvent.ChildInserted)" << endl;
- out << indent << "self." << objName << ".boxLayout().addItem(" << child << ")" << endl;
- }
- }
- }
- }
-}
-
-void Uic::createMenuBarImpl( const TQDomElement &n, const TQString &parentClass, const TQString &parent )
-{
- TQString objName = getObjectName( n );
- out << indent << "self." << objName << " = TQMenuBar(self,\"" << objName << "\")" << endl;
- createObjectImpl( n, parentClass, parent );
-
- int i = 0;
- TQDomElement c = n.firstChild().toElement();
- while ( !c.isNull() ) {
- if ( c.tagName() == "item" ) {
- TQString itemName = "self." + c.attribute( "name" );
- out << endl;
- out << indent << itemName << " = TQPopupMenu(self)" << endl;
- createPopupMenuImpl( c, parentClass, itemName );
- out << indent << "self." << objName << ".insertItem(TQString(\"\")," << itemName << "," << i << ")" << endl;
- TQString findItem("self." + objName + ".findItem(%1)");
- findItem = findItem.arg(i);
- trout << indent << "if " << findItem << ":" << endl;
- ++indent;
- trout << indent << findItem << ".setText(" << trcall( c.attribute( "text" ) ) << ")" << endl;
- --indent;
- } else if ( c.tagName() == "separator" ) {
- out << endl;
- out << indent << "self." << objName << ".insertSeparator(" << i << ")" << endl;
- }
- c = c.nextSibling().toElement();
- i++;
- }
-}
-
-void Uic::createPopupMenuImpl( const TQDomElement &e, const TQString &parentClass, const TQString &parent )
-{
- int i = 0;
- for ( TQDomElement n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "action" || n.tagName() == "actiongroup" ) {
- TQDomElement n2 = n.nextSibling().toElement();
- if ( n2.tagName() == "item" ) { // the action has a sub menu
- TQString itemName = "self." + n2.attribute( "name" );
- TQString itemText = n2.attribute( "text" );
- out << indent << itemName << " = TQPopupMenu(self)" << endl;
- out << indent << parent << ".setAccel(" << trcall( n2.attribute( "accel" ) ) << ",";
- out << parent << ".insertItem(" << "self." << n.attribute( "name" ) << ".iconSet(),";
- out << trcall( itemText ) << "," << itemName << "))" << endl;
- trout << indent << parent << ".changeItem(" << parent << ".idAt(" << i << "),";
- trout << trcall( itemText ) << ")" << endl;
- createPopupMenuImpl( n2, parentClass, itemName );
- n = n2;
- } else {
- out << indent << "self." << n.attribute( "name" ) << ".addTo(" << parent << ")" << endl;
- }
- } else if ( n.tagName() == "separator" ) {
- out << indent << parent << ".insertSeparator()" << endl;
- }
- ++i;
- }
-}
-
-/*!
- Creates implementation of an listbox item tag.
-*/
-
-TQString Uic::createListBoxItemImpl( const TQDomElement &e, const TQString &parent ,
- TQString *value )
-{
- TQDomElement n = e.firstChild().toElement();
- TQString txt;
- TQString com;
- TQString pix;
- while ( !n.isNull() ) {
- if ( n.tagName() == "property" ) {
- TQString attrib = n.attribute( "name" );
- TQVariant v = DomTool::elementToVariant( n.firstChild().toElement(), TQVariant() );
- if ( attrib == "text" ) {
- txt = v.toString();
- com = getComment( n );
- } else if ( attrib == "pixmap" ) {
- pix = v.toString();
- if ( !pix.isEmpty() ) {
- if ( pixmapLoaderFunction.isEmpty() ) {
- pix.prepend( "self." );
- } else {
- pix.prepend( pixmapLoaderFunction + "( " + TQString( externPixmaps ? "\"" : "self." ) );
- pix.append( TQString( externPixmaps ? "\"" : "" ) + ")" );
- }
- }
- }
- }
- n = n.nextSibling().toElement();
- }
-
- if ( value )
- *value = trcall( txt, com );
-
- if ( pix.isEmpty() )
- return parent + ".insertItem(" + trcall( txt, com ) + ")";
-
- return parent + ".insertItem(" + pix + "," + trcall( txt, com ) + ")";
-}
-
-/*!
- Creates implementation of an iconview item tag.
-*/
-
-TQString Uic::createIconViewItemImpl( const TQDomElement &e, const TQString &parent )
-{
- TQDomElement n = e.firstChild().toElement();
- TQString txt;
- TQString com;
- TQString pix;
- while ( !n.isNull() ) {
- if ( n.tagName() == "property" ) {
- TQString attrib = n.attribute( "name" );
- TQVariant v = DomTool::elementToVariant( n.firstChild().toElement(), TQVariant() );
- if ( attrib == "text" ) {
- txt = v.toString();
- com = getComment( n );
- } else if ( attrib == "pixmap" ) {
- pix = v.toString();
- if ( !pix.isEmpty() ) {
- if ( pixmapLoaderFunction.isEmpty() ) {
- pix.prepend( "self." );
- } else {
- pix.prepend( pixmapLoaderFunction + "( " + TQString( externPixmaps ? "\"" : "self." ) );
- pix.append( TQString( externPixmaps ? "\"" : "" ) + ")" );
- }
- }
- }
- }
- n = n.nextSibling().toElement();
- }
-
- if ( pix.isEmpty() )
- return "TQIconViewItem(" + parent + "," + trcall( txt, com ) + ")";
- else
- return "TQIconViewItem(" + parent + "," + trcall( txt, com ) + "," + pix + ")";
-}
-
-/*!
- Creates implementation of an listview item tag.
-*/
-
-TQString Uic::createListViewItemImpl( const TQDomElement &e, const TQString &parent,
- const TQString &parentItem )
-{
- TQString s;
-
- TQDomElement n = e.firstChild().toElement();
-
- bool hasChildren = e.elementsByTagName( "item" ).count() > 0;
- TQString item;
-
- if ( hasChildren ) {
- item = registerObject( "item" );
- } else {
- item = "item";
- item_used = TRUE;
- }
- s = trindent + item + " = ";
-
- if ( !parentItem.isEmpty() )
- s += "TQListViewItem(" + parentItem + "," + lastItem + ")\n";
- else
- s += "TQListViewItem(" + parent + "," + lastItem + ")\n";
-
- TQStringList texts;
- TQStringList pixmaps;
- while ( !n.isNull() ) {
- if ( n.tagName() == "property" ) {
- TQString attrib = n.attribute("name");
- TQVariant v = DomTool::elementToVariant( n.firstChild().toElement(), TQVariant() );
- if ( attrib == "text" )
- texts << v.toString();
- else if ( attrib == "pixmap" ) {
- TQString pix = v.toString();
- if ( !pix.isEmpty() ) {
- if ( pixmapLoaderFunction.isEmpty() ) {
- pix.prepend( "self." );
- } else {
- pix.prepend( pixmapLoaderFunction + "( " + TQString( externPixmaps ? "\"" : "self." ) );
- pix.append( TQString( externPixmaps ? "\"" : "" ) + ")" );
- }
- }
- pixmaps << pix;
- }
- } else if ( n.tagName() == "item" ) {
- s += trindent + item + ".setOpen(1)\n";
- s += createListViewItemImpl( n, parent, item );
- }
- n = n.nextSibling().toElement();
- }
-
- for ( int i = 0; i < (int)texts.count(); ++i ) {
- if ( !texts[ i ].isEmpty() )
- s += trindent + item + ".setText(" + TQString::number( i ) + "," + trcall( texts[ i ] ) + ")\n";
- if ( !pixmaps[ i ].isEmpty() )
- s += trindent + item + ".setPixmap(" + TQString::number( i ) + "," + pixmaps[ i ] + ")\n";
- }
-
- lastItem = item;
- return s;
-}
-
-/*!
- Creates implementation of an listview column tag.
-*/
-
-TQString Uic::createListViewColumnImpl( const TQDomElement &e, const TQString &parent,
- TQString *value )
-{
- TQDomElement n = e.firstChild().toElement();
- TQString txt;
- TQString com;
- TQString pix;
- bool clickable = FALSE, resizable = FALSE;
- while ( !n.isNull() ) {
- if ( n.tagName() == "property" ) {
- TQString attrib = n.attribute("name");
- TQVariant v = DomTool::elementToVariant( n.firstChild().toElement(), TQVariant() );
- if ( attrib == "text" ) {
- txt = v.toString();
- com = getComment( n );
- } else if ( attrib == "pixmap" ) {
- pix = v.toString();
- if ( !pix.isEmpty() ) {
- if ( pixmapLoaderFunction.isEmpty() ) {
- pix.prepend( "self." );
- } else {
- pix.prepend( pixmapLoaderFunction + "( " + TQString( externPixmaps ? "\"" : "self." ) );
- pix.append( TQString( externPixmaps ? "\"" : "" ) + ")" );
- }
- }
- } else if ( attrib == "clickable" )
- clickable = v.toBool();
- else if ( attrib == "resizable" || attrib == "resizeable" )
- resizable = v.toBool();
- }
- n = n.nextSibling().toElement();
- }
-
- if ( value )
- *value = trcall( txt, com );
-
- TQString s;
- s = indent + parent + ".addColumn(" + trcall( txt, com ) + ")\n";
- if ( !pix.isEmpty() )
- s += indent + parent + ".header().setLabel(" + parent + ".header().count() - 1,TQIconSet(" + pix + ")," + trcall( txt, com ) + ")\n";
- if ( !clickable )
- s += indent + parent + ".header().setClickEnabled(0," + parent + ".header().count() - 1)\n";
- if ( !resizable )
- s += indent + parent + ".header().setResizeEnabled(0," + parent + ".header().count() - 1)\n";
- return s;
-}
-
-TQString Uic::createTableRowColumnImpl( const TQDomElement &e, const TQString &parent,
- TQString *value )
-{
- TQString objClass = getClassName( e.parentNode().toElement() );
- TQDomElement n = e.firstChild().toElement();
- TQString txt;
- TQString com;
- TQString pix;
- TQString field;
- bool isRow = e.tagName() == "row";
- while ( !n.isNull() ) {
- if ( n.tagName() == "property" ) {
- TQString attrib = n.attribute("name");
- TQVariant v = DomTool::elementToVariant( n.firstChild().toElement(), TQVariant() );
- if ( attrib == "text" ) {
- txt = v.toString();
- com = getComment( n );
- } else if ( attrib == "pixmap" ) {
- pix = v.toString();
- if ( !pix.isEmpty() ) {
- if ( pixmapLoaderFunction.isEmpty() ) {
- pix.prepend( "self." );
- } else {
- pix.prepend( pixmapLoaderFunction + "( " + TQString( externPixmaps ? "\"" : "self." ) );
- pix.append( TQString( externPixmaps ? "\"" : "" ) + ")" );
- }
- }
- } else if ( attrib == "field" )
- field = v.toString();
- }
- n = n.nextSibling().toElement();
- }
-
- if ( value )
- *value = trcall( txt, com );
-
- // ### This generated code sucks! We have to set the number of
- // rows/cols before and then only do setLabel/()
- // ### careful, though, since TQDataTable has an API which makes this code pretty good
-
- TQString s;
- if ( isRow ) {
- s = indent + parent + ".setNumRows(" + parent + ".numRows() + 1)\n";
- if ( pix.isEmpty() )
- s += indent + parent + ".verticalHeader().setLabel(" + parent + ".numRows() - 1,"
- + trcall( txt, com ) + ")\n";
- else
- s += indent + parent + ".verticalHeader().setLabel(" + parent + ".numRows() - 1,TQIconSet("
- + pix + ")," + trcall( txt, com ) + ")\n";
- } else {
- if ( objClass == "TQTable" ) {
- s = indent + parent + ".setNumCols(" + parent + ".numCols() + 1)\n";
- if ( pix.isEmpty() )
- s += indent + parent + ".horizontalHeader().setLabel(" + parent + ".numCols() - 1,"
- + trcall( txt, com ) + ")\n";
- else
- s += indent + parent + ".horizontalHeader().setLabel(" + parent + ".numCols() - 1,TQIconSet("
- + pix + ")," + trcall( txt, com ) + ")\n";
- } else if ( objClass == "TQDataTable" ) {
- if ( !txt.isEmpty() && !field.isEmpty() ) {
- if ( pix.isEmpty() )
- out << indent << parent << ".addColumn(" << fixString( field ) << "," << trcall( txt, com ) << ")" << endl;
- else
- out << indent << parent << ".addColumn(" << fixString( field ) << "," << trcall( txt, com ) << ",TQIconSet(" << pix << "))" << endl;
- }
- }
- }
- return s;
-}
-
-/*!
- 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 )
-{
- TQDomElement n;
- TQString objClass, objName;
- objClass = e.tagName();
-
- TQString qlayout = "TQVBoxLayout";
- if ( objClass == "hbox" )
- qlayout = "TQHBoxLayout";
- else if ( objClass == "grid" )
- qlayout = "TQGridLayout";
-
- bool isGrid = e.tagName() == "grid" ;
- objName = registerObject( getLayoutName( e ) );
- layoutObjects += objName;
-
- TQString margin = DomTool::readProperty( e, "margin", defMargin ).toString();
- TQString spacing = DomTool::readProperty( e, "spacing", defSpacing ).toString();
- TQString resizeMode = DomTool::readProperty( e, "resizeMode", TQString::null ).toString();
-
- TQString optcells;
- if ( isGrid )
- optcells = "1,1,";
- if ( (parentClass == "TQGroupBox" || parentClass == "TQButtonGroup") && layout.isEmpty() ) {
- // special case for group box
- out << indent << parent << ".setColumnLayout(0,Qt.Vertical)" << endl;
- out << indent << parent << ".layout().setSpacing(" << spacing << ")" << endl;
- out << indent << parent << ".layout().setMargin(" << margin << ")" << endl;
- out << indent << objName << " = " << qlayout << "(" << parent << ".layout())" << endl;
- out << indent << objName << ".setAlignment(Qt.AlignTop)" << endl;
- } else {
- out << indent << objName << " = " << qlayout << "(";
- if ( layout.isEmpty() )
- out << parent;
- else {
- out << "None";
- if ( !DomTool::hasProperty( e, "margin" ) )
- margin = "0";
- }
- out << "," << optcells << margin << "," << spacing << ",\"" << objName << "\")" << endl;
- }
- if ( !resizeMode.isEmpty() )
- out << indent << objName << ".setResizeMode(TQLayout." << resizeMode << ")" << endl;
-
- if ( !isGrid ) {
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- if ( n.tagName() == "spacer" ) {
- TQString child = createSpacerImpl( n, parentClass, parent, objName );
- out << indent << objName << ".addItem(" << child << ")" << endl;
- } else if ( tags.contains( n.tagName() ) ) {
- TQString child = createObjectImpl( n, parentClass, parent, objName );
- if ( isLayout( child ) )
- out << indent << objName << ".addLayout(" << child << ")" << endl;
- else
- out << indent << objName << ".addWidget(" << child << ")" << endl;
- }
- }
- } else {
- for ( n = e.firstChild().toElement(); !n.isNull(); n = n.nextSibling().toElement() ) {
- TQDomElement ae = n;
- int row = ae.attribute( "row" ).toInt();
- int col = ae.attribute( "column" ).toInt();
- int rowspan = ae.attribute( "rowspan" ).toInt();
- int colspan = ae.attribute( "colspan" ).toInt();
- if ( rowspan < 1 )
- rowspan = 1;
- if ( colspan < 1 )
- colspan = 1;
- if ( n.tagName() == "spacer" ) {
- TQString child = createSpacerImpl( n, parentClass, parent, objName );
- if ( rowspan * colspan != 1 )
- out << indent << objName << ".addMultiCell(" << child << ","
- << row << "," << ( row + rowspan - 1 ) << "," << col << "," << ( col + colspan - 1 ) << ")" << endl;
- else
- out << indent << objName << ".addItem(" << child << ","
- << row << "," << col << ")" << endl;
- } else if ( tags.contains( n.tagName() ) ) {
- TQString child = createObjectImpl( n, parentClass, parent, objName );
- out << endl;
- TQString o = "Widget";
- if ( isLayout( child ) )
- o = "Layout";
- if ( rowspan * colspan != 1 )
- out << indent << objName << ".addMultiCell" << o << "(" << child << ","
- << row << "," << ( row + rowspan - 1 ) << "," << col << "," << ( col + colspan - 1 ) << ")" << endl;
- else
- out << indent << objName << ".add" << o << "(" << child << ","
- << row << "," << col << ")" << endl;
- }
- }
- }
-
- return objName;
-}
-
-
-
-TQString Uic::createSpacerImpl( const TQDomElement &e, const TQString& /*parentClass*/, const TQString& /*parent*/, const TQString& /*layout*/)
-{
- TQDomElement n;
- TQString objClass, objName;
- objClass = e.tagName();
- objName = registerObject( getObjectName( e ) );
-
- TQSize size = DomTool::readProperty( e, "sizeHint", TQSize( 0, 0 ) ).toSize();
- TQString sizeType = DomTool::readProperty( e, "sizeType", "Expanding" ).toString();
- bool isVspacer = DomTool::readProperty( e, "orientation", "Horizontal" ) == "Vertical";
-
- if ( sizeType != "Expanding" && sizeType != "MinimumExpanding" &&
- DomTool::hasProperty( e, "geometry" ) ) { // compatibility Qt 2.2
- TQRect geom = DomTool::readProperty( e, "geometry", TQRect(0,0,0,0) ).toRect();
- size = geom.size();
- }
-
- if ( isVspacer )
- out << indent << objName << " = TQSpacerItem("
- << size.width() << "," << size.height()
- << ",TQSizePolicy.Minimum,TQSizePolicy." << sizeType << ")" << endl;
- else
- out << indent << objName << " = TQSpacerItem("
- << size.width() << "," << size.height()
- << ",TQSizePolicy." << sizeType << ",TQSizePolicy.Minimum)" << endl;
-
- return objName;
-}
-
-static const char* const ColorRole[] = {
- "Foreground", "Button", "Light", "Midlight", "Dark", "Mid",
- "Text", "BrightText", "ButtonText", "Base", "Background", "Shadow",
- "Highlight", "HighlightedText", "Link", "LinkVisited", 0
-};
-
-
-/*!
- Creates a colorgroup with name \a name from the color group \a cg
- */
-void Uic::createColorGroupImpl( const TQString& name, const TQDomElement& e )
-{
- TQColorGroup cg;
- int r = -1;
- TQDomElement n = e.firstChild().toElement();
- TQString color;
- while ( !n.isNull() ) {
- if ( n.tagName() == "color" ) {
- r++;
- TQColor col = DomTool::readColor( n );
- color = "TQColor(%1,%2,%3)";
- color = color.arg( col.red() ).arg( col.green() ).arg( col.blue() );
- if ( col == white )
- color = "Qt.white";
- else if ( col == black )
- color = "Qt.black";
- if ( n.nextSibling().toElement().tagName() != "pixmap" ) {
- out << indent << name << ".setColor(TQColorGroup." << ColorRole[r] << "," << color << ")" << endl;
- }
- } else if ( n.tagName() == "pixmap" ) {
- TQString pixmap = n.firstChild().toText().data();
- if ( pixmapLoaderFunction.isEmpty() ) {
- pixmap.prepend( "self." );
- } else {
- pixmap.prepend( pixmapLoaderFunction + "(" + TQString( externPixmaps ? "\"" : "self." ) );
- pixmap.append( TQString( externPixmaps ? "\"" : "" ) + ")" );
- }
- out << indent << name << ".setBrush(TQColorGroup."
- << ColorRole[r] << ",TQBrush(" << color << "," << pixmap << "))" << endl;
- }
- n = n.nextSibling().toElement();
- }
-}
-
-/*!
- Auxiliary function to load a color group. The colorgroup must not
- contain pixmaps.
- */
-TQColorGroup Uic::loadColorGroup( const TQDomElement &e )
-{
- TQColorGroup cg;
- int r = -1;
- TQDomElement n = e.firstChild().toElement();
- TQColor col;
- while ( !n.isNull() ) {
- if ( n.tagName() == "color" ) {
- r++;
- cg.setColor( (TQColorGroup::ColorRole)r, (col = DomTool::readColor( n ) ) );
- }
- n = n.nextSibling().toElement();
- }
- return cg;
-}
-
-/*! Returns TRUE if the widget properties specify that it belongs to
- the database \a connection and \a table.
-*/
-
-bool Uic::isWidgetInTable( const TQDomElement& e, const TQString& connection, const TQString& table )
-{
- TQString conn = getDatabaseInfo( e, "connection" );
- TQString tab = getDatabaseInfo( e, "table" );
- if ( conn == connection && tab == table )
- return TRUE;
- return FALSE;
-}
-
-/*!
- Registers all database connections, cursors and forms.
-*/
-
-void Uic::registerDatabases( const TQDomElement& e )
-{
- TQDomElement n;
- TQDomNodeList nl;
- int i;
- nl = e.parentNode().toElement().elementsByTagName( "widget" );
- for ( i = 0; i < (int) nl.length(); ++i ) {
- n = nl.item(i).toElement();
- TQString conn = getDatabaseInfo( n, "connection" );
- TQString tab = getDatabaseInfo( n, "table" );
- TQString fld = getDatabaseInfo( n, "field" );
- if ( !conn.isNull() ) {
- dbConnections += conn;
- if ( !tab.isNull() ) {
- dbCursors[conn] += tab;
- if ( !fld.isNull() )
- dbForms[conn] += tab;
- }
- }
- }
-}
-
-/*!
- Registers an object with name \a name.
-
- The returned name is a valid variable identifier, as similar to \a
- name as possible and guaranteed to be unique within the form.
-
- \sa registeredName(), isObjectRegistered()
- */
-TQString Uic::registerObject( const TQString& name )
-{
- if ( objectNames.isEmpty() ) {
- // some temporary variables we need
- objectNames += "img";
- objectNames += "item";
- objectNames += "cg";
- objectNames += "pal";
- }
-
- TQString result = name;
- int i;
- while ( ( i = result.find(' ' )) != -1 ) {
- result[i] = '_';
- }
-
- if ( objectNames.contains( result ) ) {
- int i = 2;
- while ( objectNames.contains( result + "_" + TQString::number(i) ) )
- i++;
- result += "_";
- result += TQString::number(i);
- }
- objectNames += result;
- objectMapper.insert( name, result );
- return result;
-}
-
-/*!
- Returns the registered name for the original name \a name
- or \a name if \a name wasn't registered.
-
- \sa registerObject(), isObjectRegistered()
- */
-TQString Uic::registeredName( const TQString& name )
-{
- if ( !objectMapper.contains( name ) )
- return name;
- return objectMapper[name];
-}
-
-/*!
- Returns whether the object \a name was registered yet or not.
- */
-bool Uic::isObjectRegistered( const TQString& name )
-{
- return objectMapper.contains( name );
-}
-
-
-/*!
- Unifies the entries in stringlist \a list. Should really be a TQStringList feature.
- */
-TQStringList Uic::unique( const TQStringList& list )
-{
- if ( list.isEmpty() )
- return list;
-
- TQStringList result;
- for ( TQStringList::ConstIterator it = list.begin(); it != list.end(); ++it ) {
- if ( !result.contains(*it) )
- result += *it;
- }
- return result;
-}
-
-
-
-/*!
- 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 )
-{
-
- if ( objClass.mid( 1 ) == "ComboBox" ) {
- return objClass + "(0," + parent + ",\"" + objName + "\")";
- }
- return objClass + "(" + parent + ",\"" + objName + "\")";
-}
-
-bool Uic::isLayout( const TQString& name ) const
-{
- return layoutObjects.contains( name );
-}
diff --git a/python/pyqt/pyuic3/uic.h b/python/pyqt/pyuic3/uic.h
deleted file mode 100644
index 0fceff50..00000000
--- a/python/pyqt/pyuic3/uic.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-** Copyright (c) 2001 Phil Thompson <phil@river-bank.demon.co.uk>
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#ifndef UIC_H
-#define UIC_H
-#include <tqdom.h>
-#include <tqstring.h>
-#include <tqstringlist.h>
-#include <tqmap.h>
-#include <tqtextstream.h>
-#include <tqpalette.h>
-#include <tqvariant.h>
-
-
-#define PYQT_VERSION "3.17.2"
-
-
-class PyIndent
-{
-public:
- PyIndent() : tabStop(4), current(0) {calc();}
-
- void setTabStop(uint n) {tabStop = n; calc();}
- uint setIndent(uint i) {uint old = current; current = i; calc(); return old;}
- void operator++() {++current; calc();}
- void operator--() {--current; calc();}
- operator TQString() {return indstr;}
-
-private:
- uint tabStop;
- uint current;
- TQString indstr;
-
- void calc();
-};
-
-
-class Uic : public Qt
-{
-public:
- Uic( const TQString &fn, const char *outputFn, TQTextStream& out,
- TQDomDocument doc, bool subcl, const TQString &trm,
- const TQString& subclname, TQString &uicClass );
-
- static void setIndent(const PyIndent &pyind) {indent = pyind; trindent = pyind;}
-
- void createFormImpl( const TQDomElement &e );
-
- void createSubImpl( const TQDomElement &e, const TQString& subclname );
-
- void createActionImpl( const TQDomElement& e, const TQString &parent );
- void createToolbarImpl( const TQDomElement &e, const TQString &parentClass, const TQString &parent );
- void createMenuBarImpl( const TQDomElement &e, const TQString &parentClass, const TQString &parent );
- void createPopupMenuImpl( const TQDomElement &e, const TQString &parentClass, const TQString &parent );
- TQString createObjectImpl( const TQDomElement &e, const TQString& parentClass, const TQString& parent, const TQString& layout = TQString::null );
- TQString createLayoutImpl( const TQDomElement &e, const TQString& parentClass, const TQString& parent, const TQString& layout = TQString::null );
- TQString createObjectInstance( const TQString& objClass, const TQString& parent, const TQString& objName );
- TQString createSpacerImpl( const TQDomElement &e, const TQString& parentClass, const TQString& parent, const TQString& layout = TQString::null );
- void createExclusiveProperty( const TQDomElement & e, const TQString& exclusiveProp );
- TQString createListBoxItemImpl( const TQDomElement &e, const TQString &parent, TQString *value = 0 );
- TQString createIconViewItemImpl( const TQDomElement &e, const TQString &parent );
- TQString createListViewColumnImpl( const TQDomElement &e, const TQString &parent, TQString *value = 0 );
- TQString createTableRowColumnImpl( const TQDomElement &e, const TQString &parent, TQString *value = 0 );
- TQString createListViewItemImpl( const TQDomElement &e, const TQString &parent,
- const TQString &parentItem );
- void createColorGroupImpl( const TQString& cg, const TQDomElement& e );
- TQColorGroup loadColorGroup( const TQDomElement &e );
-
- TQDomElement getObjectProperty( const TQDomElement& e, const TQString& name );
- TQString getPixmapLoaderFunction( const TQDomElement& e );
- TQString getFormClassName( const TQDomElement& e );
- TQString getClassName( const TQDomElement& e );
- TQString getObjectName( const TQDomElement& e );
- TQString getLayoutName( const TQDomElement& e );
- TQString getInclude( const TQString& className );
-
- TQString setObjectProperty( const TQString& objClass, const TQString& obj, const TQString &prop, const TQDomElement &e, bool stdset );
-
- TQString registerObject( const TQString& name );
- TQString registeredName( const TQString& name );
- bool isObjectRegistered( const TQString& name );
- TQStringList unique( const TQStringList& );
-
- TQString trcall( const TQString& sourceText, const TQString& comment = "" );
-
- static void embed( TQTextStream& out, const char* project, const TQStringList& images );
-
-private:
- TQTextStream& out;
- TQTextOStream trout;
- TQString languageChangeBody;
- TQCString outputFileName;
- TQStringList objectNames;
- TQMap<TQString,TQString> objectMapper;
- TQStringList tags;
- TQStringList layouts;
- TQString formName;
- TQString lastItem;
- TQString trmacro;
- static PyIndent indent, trindent;
-
- struct Buddy
- {
- Buddy( const TQString& k, const TQString& b )
- : key( k ), buddy( b ) {}
- Buddy(){} // for valuelist
- TQString key;
- TQString buddy;
- bool operator==( const Buddy& other ) const
- { return (key == other.key); }
- };
- struct CustomInclude
- {
- TQString header;
- TQString location;
- };
- TQValueList<Buddy> buddies;
-
- TQStringList layoutObjects;
- bool isLayout( const TQString& name ) const;
-
- uint item_used : 1;
- uint cg_used : 1;
- uint pal_used : 1;
- uint stdsetdef : 1;
- uint externPixmaps : 1;
-
-#if QT_VERSION >= 0x030300
- TQString uiFileVersion;
-#endif
- TQString nameOfClass;
- TQStringList namespaces;
- TQString bareNameOfClass;
- TQString pixmapLoaderFunction;
-
- void registerDatabases( const TQDomElement& e );
- bool isWidgetInTable( const TQDomElement& e, const TQString& connection, const TQString& table );
- bool isFrameworkCodeGenerated( const TQDomElement& e );
- TQString getDatabaseInfo( const TQDomElement& e, const TQString& tag );
- void createFormImpl( const TQDomElement& e, const TQString& form, const TQString& connection, const TQString& table );
- void writeFunctionsSubImpl( const TQStringList &fuLst, const TQStringList &typLst, const TQStringList &specLst,
- const TQString &subClass, const TQString &descr );
- TQStringList dbConnections;
- TQMap< TQString, TQStringList > dbCursors;
- TQMap< TQString, TQStringList > dbForms;
-
- static bool isMainWindow;
- static TQString mkBool( bool b );
- static TQString mkBool( const TQString& s );
- bool toBool( const TQString& s );
- static TQString fixString( const TQString &str, bool encode = FALSE );
- static bool onlyAscii;
- static TQString mkStdSet( const TQString& prop );
- static TQString getComment( const TQDomNode& n );
- TQVariant defSpacing, defMargin;
- TQString fileName;
- bool writeFunctImpl;
-
- void pySlot(TQStringList::ConstIterator &it);
-
- TQString pyCode;
- bool pyNeedTr, pyNeedTrUtf8;
-};
-
-#endif
diff --git a/python/pyqt/pyuic3/widgetdatabase.cpp b/python/pyqt/pyuic3/widgetdatabase.cpp
deleted file mode 100644
index 0b1720a8..00000000
--- a/python/pyqt/pyuic3/widgetdatabase.cpp
+++ /dev/null
@@ -1,953 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
-** licenses may use this file in accordance with the Qt Commercial License
-** Agreement provided with the Software.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
-** information about Qt Commercial License Agreements.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#include "widgetdatabase.h"
-#include "widgetinterface.h"
-
-#include <tqapplication.h>
-#define NO_STATIC_COLORS
-#include <globaldefs.h>
-#include <tqstrlist.h>
-#include <tqdict.h>
-#include <tqfile.h>
-#include <tqtextstream.h>
-#include <tqcleanuphandler.h>
-#include <tqfeatures.h>
-
-#include <stdlib.h>
-
-const int dbsize = 300;
-const int dbcustom = 200;
-const int dbdictsize = 211;
-static WidgetDatabaseRecord* db[ dbsize ];
-static TQDict<int> *className2Id = 0;
-static int dbcount = 0;
-static int dbcustomcount = 200;
-static TQStrList *wGroups;
-static TQStrList *invisibleGroups;
-static bool whatsThisLoaded = FALSE;
-static QPluginManager<WidgetInterface> *widgetPluginManager = 0;
-static bool plugins_set_up = FALSE;
-static bool was_in_setup = FALSE;
-
-TQCleanupHandler<QPluginManager<WidgetInterface> > cleanup_manager;
-
-WidgetDatabaseRecord::WidgetDatabaseRecord()
-{
- isForm = FALSE;
- isContainer = FALSE;
- icon = 0;
- nameCounter = 0;
- isCommon = FALSE;
- isPlugin = FALSE;
-}
-
-WidgetDatabaseRecord::~WidgetDatabaseRecord()
-{
- delete icon;
-}
-
-
-/*!
- \class WidgetDatabase widgetdatabase.h
- \brief The WidgetDatabase class holds information about widgets
-
- The WidgetDatabase holds information about widgets like toolTip(),
- iconSet(), ... It works Id-based, so all access functions take the
- widget id as parameter. To get the id for a widget (classname), use
- idFromClassName().
-
- All access functions are static. Having multiple widgetdatabases in
- one application doesn't make sense anyway and so you don't need more
- than an instance of the widgetdatabase.
-
- For creating widgets, layouts, etc. see WidgetFactory.
-*/
-
-/*!
- Creates widget database. Does nothing.
-*/
-
-WidgetDatabase::WidgetDatabase()
-{
-}
-
-/*! Sets up the widget database. If the static widgetdatabase already
- exists, the functions returns immediately.
-*/
-
-void WidgetDatabase::setupDataBase( int id )
-{
- was_in_setup = TRUE;
-#ifndef UIC
- Q_UNUSED( id )
- if ( dbcount )
- return;
-#else
- if ( dbcount && id != -2 )
- return;
- if ( dbcount && !plugins_set_up ) {
- setupPlugins();
- return;
- }
- if ( dbcount && plugins_set_up)
- return;
-#endif
-
- wGroups = new TQStrList;
- invisibleGroups = new TQStrList;
- invisibleGroups->append( "Forms" );
- invisibleGroups->append( "Temp" );
- className2Id = new TQDict<int>( dbdictsize );
- className2Id->setAutoDelete( TRUE );
-
- WidgetDatabaseRecord *r = 0;
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_pushbutton.png";
- r->name = "TQPushButton";
- r->group = widgetGroup( "Buttons" );
- r->toolTip = "Push Button";
- r->isCommon = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_toolbutton.png";
- r->name = "TQToolButton";
- r->group = widgetGroup( "Buttons" );
- r->toolTip = "Tool Button";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_radiobutton.png";
- r->name = "TQRadioButton";
- r->group = widgetGroup( "Buttons" );
- r->toolTip = "Radio Button";
- r->isCommon = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_checkbox.png";
- r->name = "TQCheckBox";
- r->group = widgetGroup( "Buttons" );
- r->toolTip = "Check Box";
- r->isCommon = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_groupbox.png";
- r->name = "TQGroupBox";
- r->group = widgetGroup( "Containers" );
- r->toolTip = "Group Box";
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_buttongroup.png";
- r->name = "TQButtonGroup";
- r->group = widgetGroup( "Containers" );
- r->toolTip = "Button Group";
- r->isContainer = TRUE;
- r->isCommon = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_frame.png";
- r->name = "TQFrame";
- r->group = widgetGroup( "Containers" );
- r->toolTip = "Frame";
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_tabwidget.png";
- r->name = "TQTabWidget";
- r->group = widgetGroup( "Containers" );
- r->toolTip = "Tabwidget";
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_widgetstack.png";
- r->name = "TQWidgetStack";
- r->group = widgetGroup( "Containers" );
- r->toolTip = "Widget Stack";
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_toolbox.png";
- r->name = "TQToolBox";
- r->group = widgetGroup( "Containers" );
- r->toolTip = "Tool Box";
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_listbox.png";
- r->name = "TQListBox";
- r->group = widgetGroup( "Views" );
- r->toolTip = "List Box";
- r->isCommon = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_listview.png";
- r->name = "TQListView";
- r->group = widgetGroup( "Views" );
- r->toolTip = "List View";
-
- append( r );
-
-#if !defined(QT_NO_ICONVIEW) || defined(UIC)
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_iconview.png";
- r->name = "TQIconView";
- r->group = widgetGroup( "Views" );
- r->toolTip = "Icon View";
-
- append( r );
-#endif
-
-#if !defined(QT_NO_TABLE)
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_table.png";
- r->name = "TQTable";
- r->group = widgetGroup( "Views" );
- r->toolTip = "Table";
-
- append( r );
-#endif
-
-#if !defined(QT_NO_SQL)
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_datatable.png";
- r->includeFile = "tqdatatable.h";
- r->name = "TQDataTable";
- r->group = widgetGroup( "Database" );
- r->toolTip = "Data Table";
-
- append( r );
-#endif
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_lineedit.png";
- r->name = "TQLineEdit";
- r->group = widgetGroup( "Input" );
- r->toolTip = "Line Edit";
- r->isCommon = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_spinbox.png";
- r->name = "TQSpinBox";
- r->group = widgetGroup( "Input" );
- r->toolTip = "Spin Box";
- r->isCommon = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_dateedit.png";
- r->name = "QDateEdit";
- r->group = widgetGroup( "Input" );
- r->toolTip = "Date Edit";
- r->includeFile = "tqdatetimeedit.h";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_timeedit.png";
- r->name = "QTimeEdit";
- r->group = widgetGroup( "Input" );
- r->toolTip = "Time Edit";
- r->includeFile = "tqdatetimeedit.h";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_datetimeedit.png";
- r->name = "QDateTimeEdit";
- r->group = widgetGroup( "Input" );
- r->toolTip = "Date-Time Edit";
- r->includeFile = "tqdatetimeedit.h";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_multilineedit.png";
- r->name = "TQMultiLineEdit";
- r->group = widgetGroup( "Temp" );
- r->toolTip = "Multi Line Edit";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_richtextedit.png";
- r->name = "TQTextEdit";
- r->group = widgetGroup( "Input" );
- r->toolTip = "Rich Text Edit";
- r->isCommon = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_combobox.png";
- r->name = "TQComboBox";
- r->group = widgetGroup( "Input" );
- r->toolTip = "Combo Box";
- r->isCommon = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_slider.png";
- r->name = "TQSlider";
- r->group = widgetGroup( "Input" );
- r->toolTip = "Slider";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_scrollbar.png";
- r->name = "TQScrollBar";
- r->group = widgetGroup( "Input" );
- r->toolTip = "Scrollbar";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_dial.png";
- r->name = "TQDial";
- r->group = widgetGroup( "Input" );
- r->toolTip = "Dial";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_label.png";
- r->name = "TQLabel";
- r->group = widgetGroup( "Temp" );
- r->toolTip = "Label";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_label.png";
- r->name = "TextLabel";
- r->group = widgetGroup( "Display" );
- r->toolTip = "Text Label";
- r->whatsThis = "The Text Label provides a widget to display static text.";
- r->isCommon = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_pixlabel.png";
- r->name = "PixmapLabel";
- r->group = widgetGroup( "Display" );
- r->toolTip = "Pixmap Label";
- r->whatsThis = "The Pixmap Label provides a widget to display pixmaps.";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_lcdnumber.png";
- r->name = "TQLCDNumber";
- r->group = widgetGroup( "Display" );
- r->toolTip = "LCD Number";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_line.png";
- r->name = "Line";
- r->group = widgetGroup( "Display" );
- r->toolTip = "Line";
- r->includeFile = "tqframe.h";
- r->whatsThis = "The Line widget provides horizontal and vertical lines.";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_progress.png";
- r->name = "TQProgressBar";
- r->group = widgetGroup( "Display" );
- r->toolTip = "Progress Bar";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_textview.png";
- r->name = "TQTextView";
- r->group = widgetGroup( "Temp" );
- r->toolTip = "Text View";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_textbrowser.png";
- r->name = "TQTextBrowser";
- r->group = widgetGroup( "Display" );
- r->toolTip = "Text Browser";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_spacer.png";
- r->name = "Spacer";
- r->group = widgetGroup( "Temp" );
- r->toolTip = "Spacer";
- r->whatsThis = "The Spacer provides horizontal and vertical spacing to be able to manipulate the behaviour of layouts.";
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->name = "TQWidget";
- r->isForm = TRUE;
- r->group = widgetGroup( "Forms" );
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->name = "TQDialog";
- r->group = widgetGroup( "Forms" );
- r->isForm = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->name = "TQWizard";
- r->group = widgetGroup( "Forms" );
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->name = "QDesignerWizard";
- r->group = widgetGroup( "Forms" );
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->name = "QLayoutWidget";
- r->group = widgetGroup( "Temp" );
- r->includeFile = "";
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->name = "TQSplitter";
- r->group = widgetGroup( "Temp" );
- r->includeFile = "tqsplitter.h";
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_tabwidget.png";
- r->name = "QDesignerTabWidget";
- r->group = widgetGroup( "Temp" );
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_tabwidget.png";
- r->name = "QDesignerWidget";
- r->group = widgetGroup( "Temp" );
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "designer_tabwidget.png";
- r->name = "QDesignerDialog";
- r->group = widgetGroup( "Temp" );
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "";
- r->name = "TQMainWindow";
- r->includeFile = "tqmainwindow.h";
- r->group = widgetGroup( "Temp" );
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "";
- r->name = "QDesignerAction";
- r->includeFile = "tqaction.h";
- r->group = widgetGroup( "Temp" );
- r->isContainer = FALSE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "";
- r->name = "QDesignerActionGroup";
- r->includeFile = "tqaction.h";
- r->group = widgetGroup( "Temp" );
- r->isContainer = FALSE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "";
- r->name = "TQScrollView";
- r->includeFile = "tqscrollview.h";
- r->group = widgetGroup( "Temp" );
- r->isContainer = TRUE;
-
- append( r );
-
-#ifndef QT_NO_SQL
- r = new WidgetDatabaseRecord;
- r->iconSet = "";
- r->name = "TQDataBrowser";
- r->includeFile = "tqdatabrowser.h";
- r->group = widgetGroup( "Database" );
- r->toolTip = "Data Browser";
- r->iconSet = "designer_databrowser.png";
- r->isContainer = TRUE;
-
- append( r );
-
- r = new WidgetDatabaseRecord;
- r->iconSet = "";
- r->name = "TQDataView";
- r->includeFile = "tqdataview.h";
- r->group = widgetGroup( "Database" );
- r->toolTip = "Data View";
- r->iconSet = "designer_dataview.png";
- r->isContainer = TRUE;
-
- append( r );
-#endif
-
-#ifndef UIC
- setupPlugins();
-#endif
-}
-
-void WidgetDatabase::setupPlugins()
-{
- if ( plugins_set_up )
- return;
- plugins_set_up = TRUE;
- TQStringList widgets = widgetManager()->featureList();
- for ( TQStringList::Iterator it = widgets.begin(); it != widgets.end(); ++it ) {
- if ( hasWidget( *it ) )
- continue;
- WidgetDatabaseRecord *r = new WidgetDatabaseRecord;
- WidgetInterface *iface = 0;
- widgetManager()->queryInterface( *it, &iface );
- if ( !iface )
- continue;
-
-#ifndef UIC
- TQIconSet icon = iface->iconSet( *it );
- if ( !icon.pixmap().isNull() )
- r->icon = new TQIconSet( icon );
-#endif
- TQString grp = iface->group( *it );
- if ( grp.isEmpty() )
- grp = "3rd party widgets";
- r->group = widgetGroup( grp );
- r->toolTip = iface->toolTip( *it );
- r->whatsThis = iface->whatsThis( *it );
- r->includeFile = iface->includeFile( *it );
- r->isContainer = iface->isContainer( *it );
- r->name = *it;
- r->isPlugin = TRUE;
- append( r );
- iface->release();
- }
-}
-
-/*!
- Returns the number of elements in the widget database.
-*/
-
-int WidgetDatabase::count()
-{
- setupDataBase( -1 );
- return dbcount;
-}
-
-/*!
- Returns the id at which the ids of custom widgets start.
-*/
-
-int WidgetDatabase::startCustom()
-{
- setupDataBase( -1 );
- return dbcustom;
-}
-
-/*!
- Returns the iconset which represents the class registered as \a id.
-*/
-
-TQIconSet WidgetDatabase::iconSet( int id )
-{
- setupDataBase( id );
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return TQIconSet();
-#if !defined(UIC) && !defined(RESOURCE)
- if ( !r->icon ) {
- if ( r->iconSet.isEmpty() )
- return TQIconSet();
- TQPixmap pix = TQPixmap::fromMimeSource( r->iconSet );
- if ( pix.isNull() )
- pix = TQPixmap( r->iconSet );
- r->icon = new TQIconSet( pix );
- }
- return *r->icon;
-#else
- return TQIconSet();
-#endif
-}
-
-/*!
- Returns the classname of the widget which is registered as \a id.
-*/
-
-TQString WidgetDatabase::className( int id )
-{
- setupDataBase( id );
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return TQString::null;
- return r->name;
-}
-
-/*!
- Returns the group the widget registered as \a id belongs to.
-*/
-
-TQString WidgetDatabase::group( int id )
-{
- setupDataBase( id );
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return TQString::null;
- return r->group;
-}
-
-/*!
- Returns the tooltip text of the widget which is registered as \a id.
-*/
-
-TQString WidgetDatabase::toolTip( int id )
-{
- setupDataBase( id );
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return TQString::null;
- return r->toolTip;
-}
-
-/*!
- Returns the what's this? text of the widget which is registered as \a id.
-*/
-
-TQString WidgetDatabase::whatsThis( int id )
-{
- setupDataBase( id );
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return TQString::null;
- return r->whatsThis;
-}
-
-/*!
- Returns the include file if the widget which is registered as \a id.
-*/
-
-TQString WidgetDatabase::includeFile( int id )
-{
- setupDataBase( id );
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return TQString::null;
- if ( r->includeFile.isNull() )
- return r->name.lower() + ".h";
- return r->includeFile;
-}
-
-/*! Returns whether the widget registered as \a id is a form.
-*/
-bool WidgetDatabase::isForm( int id )
-{
- setupDataBase( id );
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return FALSE;
- return r->isForm;
-}
-
-/*! Returns whether the widget registered as \a id can have children.
-*/
-
-bool WidgetDatabase::isContainer( int id )
-{
- setupDataBase( id );
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return FALSE;
- return r->isContainer || r->isForm;
-}
-
-bool WidgetDatabase::isCommon( int id )
-{
- setupDataBase( id );
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return FALSE;
- return r->isCommon;
-}
-
-TQString WidgetDatabase::createWidgetName( int id )
-{
- setupDataBase( id );
- TQString n = className( id );
- if ( n == "QLayoutWidget" )
- n = "Layout";
- if ( n[ 0 ] == 'Q' && n[ 1 ].lower() != n[ 1 ] )
- n = n.mid( 1 );
- int colonColon = n.findRev( "::" );
- if ( colonColon != -1 )
- n = n.mid( colonColon + 2 );
-
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return n;
- n += TQString::number( ++r->nameCounter );
- n[0] = n[0].lower();
- return n;
-}
-
-/*! Returns the id for \a name or -1 if \a name is unknown.
- */
-int WidgetDatabase::idFromClassName( const TQString &name )
-{
- setupDataBase( -1 );
- if ( name.isEmpty() )
- return 0;
- int *i = className2Id->find( name );
- if ( i )
- return *i;
- if ( name == "FormWindow" )
- return idFromClassName( "QLayoutWidget" );
-#ifdef UIC
- setupDataBase( -2 );
- i = className2Id->find( name );
- if ( i )
- return *i;
-#endif
- return -1;
-}
-
-bool WidgetDatabase::hasWidget( const TQString &name )
-{
- return className2Id->find( name ) != 0;
-}
-
-WidgetDatabaseRecord *WidgetDatabase::at( int index )
-{
- if ( index < 0 )
- return 0;
- if ( index >= dbcustom && index < dbcustomcount )
- return db[ index ];
- if ( index < dbcount )
- return db[ index ];
- return 0;
-}
-
-void WidgetDatabase::insert( int index, WidgetDatabaseRecord *r )
-{
- if ( index < 0 || index >= dbsize )
- return;
- db[ index ] = r;
- className2Id->insert( r->name, new int( index ) );
- if ( index < dbcustom )
- dbcount = QMAX( dbcount, index );
-}
-
-void WidgetDatabase::append( WidgetDatabaseRecord *r )
-{
- if ( !was_in_setup )
- setupDataBase( -1 );
- insert( dbcount++, r );
-}
-
-TQString WidgetDatabase::widgetGroup( const TQString &g )
-{
- if ( wGroups->find( g ) == -1 )
- wGroups->append( g );
- return g;
-}
-
-bool WidgetDatabase::isGroupEmpty( const TQString &grp )
-{
- WidgetDatabaseRecord *r = 0;
- for ( int i = 0; i < dbcount; ++i ) {
- if ( !( r = db[ i ] ) )
- continue;
- if ( r->group == grp )
- return FALSE;
- }
- return TRUE;
-}
-
-TQString WidgetDatabase::widgetGroup( int i )
-{
- setupDataBase( -1 );
- if ( i >= 0 && i < (int)wGroups->count() )
- return wGroups->at( i );
- return TQString::null;
-}
-
-int WidgetDatabase::numWidgetGroups()
-{
- setupDataBase( -1 );
- return wGroups->count();
-}
-
-bool WidgetDatabase::isGroupVisible( const TQString &g )
-{
- setupDataBase( -1 );
- return invisibleGroups->find( g ) == -1;
-}
-
-int WidgetDatabase::addCustomWidget( WidgetDatabaseRecord *r )
-{
- insert( dbcustomcount++, r );
- return dbcustomcount - 1;
-}
-
-void WidgetDatabase::customWidgetClassNameChanged( const TQString &oldName,
- const TQString &newName )
-{
- int id = idFromClassName( oldName );
- if ( id == -1 )
- return;
- WidgetDatabaseRecord *r = db[ id ];
- r->name = newName;
- className2Id->remove( oldName );
- className2Id->insert( newName, new int( id ) );
-}
-
-bool WidgetDatabase::isCustomWidget( int id )
-{
- if ( id >= dbcustom && id < dbcustomcount )
- return TRUE;
- return FALSE;
-}
-
-bool WidgetDatabase::isCustomPluginWidget( int id )
-{
- setupDataBase( id );
- WidgetDatabaseRecord *r = at( id );
- if ( !r )
- return FALSE;
- return r->isPlugin;
-}
-
-bool WidgetDatabase::isWhatsThisLoaded()
-{
- return whatsThisLoaded;
-}
-
-void WidgetDatabase::loadWhatsThis( const TQString &docPath )
-{
- TQString whatsthisFile = docPath + "/whatsthis";
- TQFile f( whatsthisFile );
- if ( !f.open( IO_ReadOnly ) )
- return;
- TQTextStream ts( &f );
- while ( !ts.atEnd() ) {
- TQString s = ts.readLine();
- TQStringList l = TQStringList::split( " | ", s );
- int id = idFromClassName( l[ 1 ] );
- WidgetDatabaseRecord *r = at( id );
- if ( r )
- r->whatsThis = l[ 0 ];
- }
- whatsThisLoaded = TRUE;
-}
-
-
-// ### Qt 3.1: make these publically accessible via QWidgetDatabase API
-#if defined(UIC)
-bool dbnounload = FALSE;
-TQStringList *dbpaths = 0;
-#else
-extern TQString *qwf_plugin_dir;
-#endif
-
-
-QPluginManager<WidgetInterface> *widgetManager()
-{
- if ( !widgetPluginManager ) {
- TQString pluginDir = "/designer";
-#if !defined(UIC)
- if ( qwf_plugin_dir )
- pluginDir = *qwf_plugin_dir;
-#endif
- widgetPluginManager = new QPluginManager<WidgetInterface>( IID_Widget, TQApplication::libraryPaths(), pluginDir );
- cleanup_manager.add( &widgetPluginManager );
-#if defined(UIC)
- if ( dbnounload )
- widgetPluginManager->setAutoUnload( FALSE );
- if ( dbpaths ) {
- TQStringList::ConstIterator it = dbpaths->begin();
- for ( ; it != dbpaths->end(); ++it )
- widgetPluginManager->addLibraryPath( *it );
- }
-#endif
- }
- return widgetPluginManager;
-}
diff --git a/python/pyqt/pyuic3/widgetdatabase.h b/python/pyqt/pyuic3/widgetdatabase.h
deleted file mode 100644
index c75c2a59..00000000
--- a/python/pyqt/pyuic3/widgetdatabase.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
-** licenses may use this file in accordance with the Qt Commercial License
-** Agreement provided with the Software.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
-** information about Qt Commercial License Agreements.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#ifndef WIDGETDATABASE_H
-#define WIDGETDATABASE_H
-
-#include <tqiconset.h>
-#include <tqstring.h>
-#include "widgetinterface.h" // up here for GCC 2.7.* compatibility
-#include <private/qpluginmanager_p.h>
-
-
-extern QPluginManager<WidgetInterface> *widgetManager();
-
-struct WidgetDatabaseRecord
-{
- WidgetDatabaseRecord();
- ~WidgetDatabaseRecord();
- TQString iconSet, name, group, toolTip, whatsThis, includeFile;
- uint isContainer : 1;
- uint isForm : 1;
- uint isCommon : 1;
- uint isPlugin : 1;
- TQIconSet *icon;
- int nameCounter;
-};
-
-class WidgetDatabase : public Qt
-{
-public:
- WidgetDatabase();
- static void setupDataBase( int id );
- static void setupPlugins();
-
- static int count();
- static int startCustom();
-
- static TQIconSet iconSet( int id );
- static TQString className( int id );
- static TQString group( int id );
- static TQString toolTip( int id );
- static TQString whatsThis( int id );
- static TQString includeFile( int id );
- static bool isForm( int id );
- static bool isContainer( int id );
- static bool isCommon( int id );
-
- static int idFromClassName( const TQString &name );
- static TQString createWidgetName( int id );
-
- static WidgetDatabaseRecord *at( int index );
- static void insert( int index, WidgetDatabaseRecord *r );
- static void append( WidgetDatabaseRecord *r );
-
- static TQString widgetGroup( const TQString &g );
- static TQString widgetGroup( int i );
- static int numWidgetGroups();
- static bool isGroupVisible( const TQString &g );
- static bool isGroupEmpty( const TQString &grp );
-
- static int addCustomWidget( WidgetDatabaseRecord *r );
- static bool isCustomWidget( int id );
- static bool isCustomPluginWidget( int id );
-
- static bool isWhatsThisLoaded();
- static void loadWhatsThis( const TQString &docPath );
-
- static bool hasWidget( const TQString &name );
- static void customWidgetClassNameChanged( const TQString &oldName, const TQString &newName );
-
-};
-
-#endif
diff --git a/python/pyqt/pyuic3/widgetinterface.h b/python/pyqt/pyuic3/widgetinterface.h
deleted file mode 100644
index bf6bcd55..00000000
--- a/python/pyqt/pyuic3/widgetinterface.h
+++ /dev/null
@@ -1,29 +0,0 @@
- /**********************************************************************
-** Copyright (C) 2000-2001 Trolltech AS. All rights reserved.
-**
-** This file is part of Qt Designer.
-**
-** This file may be distributed and/or modified under the terms of the
-** GNU General Public License version 2 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file.
-**
-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-**
-** See http://www.trolltech.com/gpl/ for GPL licensing information.
-**
-** Contact info@trolltech.com if any conditions of this licensing are
-** not clear to you.
-**
-**********************************************************************/
-
-#ifndef WIDGETINTERFACE_H
-#define WIDGETINTERFACE_H
-
-#include <private/qwidgetinterface_p.h>
-
-#define WidgetInterface QWidgetFactoryInterface
-#define IID_Widget IID_QWidgetFactory
-
-#endif