From d796c9dd933ab96ec83b9a634feedd5d32e1ba3f Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 8 Nov 2011 12:31:36 -0600 Subject: Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731 --- doc/man/man1/lrelease.1 | 101 +++++++++++ doc/man/man1/lupdate.1 | 107 ++++++++++++ doc/man/man1/moc.1 | 449 ++++++++++++++++++++++++++++++++++++++++++++++++ doc/man/man1/uic.1 | 136 +++++++++++++++ 4 files changed, 793 insertions(+) create mode 100644 doc/man/man1/lrelease.1 create mode 100644 doc/man/man1/lupdate.1 create mode 100644 doc/man/man1/moc.1 create mode 100644 doc/man/man1/uic.1 (limited to 'doc/man/man1') diff --git a/doc/man/man1/lrelease.1 b/doc/man/man1/lrelease.1 new file mode 100644 index 000000000..2c66f8405 --- /dev/null +++ b/doc/man/man1/lrelease.1 @@ -0,0 +1,101 @@ +.TH lrelease 1 "18 October 2001" "Trolltech AS" \" -*- nroff -*- +.\" +.\" Copyright (C) 2001-2007 Trolltech ASA. All rights reserved. +.\" +.\" This file may be used under the terms of the GNU General Public +.\" License versions 2.0 or 3.0 as published by the Free Software +.\" Foundation and appearing in the file LICENSE.GPL included in the +.\" packaging of this file. Alternatively you may (at your option) use any +.\" later version of the GNU General Public License if such license has +.\" been publicly approved by Trolltech ASA (or its successors, if any) +.\" and the KDE Free Qt Foundation. +.\" +.\" Please review the following information to ensure GNU General +.\" Public Licensing retquirements will be met: +.\" http://trolltech.com/products/qt/licenses/licensing/opensource/. +.\" If you are unsure which license is appropriate for your use, please +.\" review the following information: +.\" http://trolltech.com/products/qt/licenses/licensing/licensingoverview +.\" or contact the sales department at sales@trolltech.com. +.\" +.\" Licensees holding valid Qt Commercial 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 WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR +.\" A PARTICULAR PURPOSE. Trolltech reserves all rights not granted +.\" herein. +.\" +.SH NAME +lrelease \- generate Qt message files from Qt Linguist translation files +.SH SYNOPSIS +.B lrelease +.RI "[ " options " ] " project-file +.br +.B lrelease +.RI "[ " options " ] " ts-files " [ -qm " qm-file " ]" +.SH DESCRIPTION +This page documents the +.B Qt Linguist Release +tool for the Qt GUI toolkit. +.B Lrelease +reads a qmake/tmake project file (.pro file) and converts the +translation files (.ts files) specified in it into Qt message files +(.qm files) used by the application to translate. +.PP +The .qm file format is a compact binary format that provides +extremely fast lookups for translations and that is used by Qt. +.SH OPTIONS +.TP +.I "-help" +Display the usage and exit. +.TP +.I "-nocompress" +Do not compress the .qm files. +.TP +.I "-verbose" +Explain what is being done. +.TP +.I "-version" +Display the version of +.B lrelease +and exit. +.SH USAGE +Here is an example .pro file that can be given to +.B lrelease: +.PP +.in +4 +.nf +HEADERS = funnydialog.h \\ + wackywidget.h +SOURCES = funnydialog.cpp \\ + main.cpp \\ + wackywidget.cpp +FORMS = fancybox.ui +TRANSLATIONS = gnomovision_dk.ts \\ + gnomovision_fi.ts \\ + gnomovision_no.ts \\ + gnomovision_se.ts +.fi +.in -4 +.PP +When running +.B lrelease +on this project file, the Qt message files gnomovision_dk.qm, +gnomovision_fi.qm, gnomovision_no.qm and gnomovision_se.qm will be +generated from gnomovision_dk.ts, gnomovision_fi.ts, +gnomovision_no.ts and gnomovision_se.ts, respectively. +.PP +.B Lrelease +can also be invoked with a list of .ts files to convert: +.PP +.in +4 +.nf +lrelease gnomovision_*.ts +.fi +.in -4 +.SH "SEE ALSO" +.BR lupdate (1) +and +.BR http://doc.trolltech.com/i18n.html diff --git a/doc/man/man1/lupdate.1 b/doc/man/man1/lupdate.1 new file mode 100644 index 000000000..c85169923 --- /dev/null +++ b/doc/man/man1/lupdate.1 @@ -0,0 +1,107 @@ +.TH lupdate 1 "18 October 2001" "Trolltech AS" \" -*- nroff -*- +.\" +.\" Copyright (C) 2001-2007 Trolltech ASA. All rights reserved. +.\" +.\" This file may be used under the terms of the GNU General Public +.\" License versions 2.0 or 3.0 as published by the Free Software +.\" Foundation and appearing in the file LICENSE.GPL included in the +.\" packaging of this file. Alternatively you may (at your option) use any +.\" later version of the GNU General Public License if such license has +.\" been publicly approved by Trolltech ASA (or its successors, if any) +.\" and the KDE Free Qt Foundation. +.\" +.\" Please review the following information to ensure GNU General +.\" Public Licensing retquirements will be met: +.\" http://trolltech.com/products/qt/licenses/licensing/opensource/. +.\" If you are unsure which license is appropriate for your use, please +.\" review the following information: +.\" http://trolltech.com/products/qt/licenses/licensing/licensingoverview +.\" or contact the sales department at sales@trolltech.com. +.\" +.\" Licensees holding valid Qt Commercial 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 WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR +.\" A PARTICULAR PURPOSE. Trolltech reserves all rights not granted +.\" herein. +.\" +.SH NAME +lupdate \- update Qt Linguist translation files +.SH SYNOPSIS +.B lupdate +.RI "[ " options " ] " project-file +.br +.B lupdate +.RI "[ " options " ] " source-files " -ts " ts-files +.SH DESCRIPTION +This page documents the +.B Qt Linguist Update +tool for the Qt GUI toolkit. +.B Lupdate +reads a qmake/tmake project file (.pro file), finds the translatable +strings in the specified source, header and interface files, and +updates the translation files (.ts files) specified in it. The +translation files are given to the translator who uses +.B Qt Linguist +to read the files and insert the translations. +.PP +The .ts file format is a simple human-readable XML format that can be +used with version control systems if retquired. +.PP +.SH OPTIONS +.TP +.I "-help" +Display the usage and exit. +.TP +.I "-noobsolete" +Drop all obsolete strings. +.TP +.I "-verbose" +Explain what is being done. +.TP +.I "-version" +Display the version of +.B lupdate +and exit. +.SH USAGE +Here is an example .pro file that can be given to +.B lupdate: +.PP +.in +4 +.nf +HEADERS = funnydialog.h \\ + wackywidget.h +SOURCES = funnydialog.cpp \\ + main.cpp \\ + wackywidget.cpp +FORMS = fancybox.ui +TRANSLATIONS = gnomovision_dk.ts \\ + gnomovision_fi.ts \\ + gnomovision_no.ts \\ + gnomovision_se.ts +.fi +.in -4 +.PP +When running +.B lupdate +on this project file, the translatable strings in all the files +listed in the HEADERS, SOURCES and FORMS entries will be put in +the translation files listed in the TRANSLATIONS entry. Previous +translations will be reused as far as possible, and translated +strings that have vanished from the source files are marked obsolete. +.PP +.B Lupdate +can also be invoked with a list of C++ source files, .ui files +and .ts files: +.PP +.in +4 +.nf +lupdate *.cpp *.h *.ui -ts gnomovision_dk.ts +.fi +.in -4 +.SH "SEE ALSO" +.BR lrelease (1) +and +.BR http://doc.trolltech.com/i18n.html diff --git a/doc/man/man1/moc.1 b/doc/man/man1/moc.1 new file mode 100644 index 000000000..5f806ec98 --- /dev/null +++ b/doc/man/man1/moc.1 @@ -0,0 +1,449 @@ +.TH moc 1 "24 June 2001" "Trolltech AS" \" -*- nroff -*- +.\" +.\" $Id: qt/moc.1 3.3.8 edited Jan 11 14:38 $ +.\" +.\" Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. +.\" +.\" This file is part of Qt and may be distributed and used according to +.\" the terms and conditions described in the LICENSE file. +.\" +.nh +.SH NAME +moc \- generate Qt meta object support code +.SH SYNOPSIS +.B moc +[-o file] [-i] [-f] [-k] [-ldbg] [-nw] [-p path] [-q path] [-v] file +.SH DESCRIPTION +This page documents the +.B Meta Object Compiler +for the Qt GUI application framework. The +.B moc +reads one or more C++ class declarations from a C++ header or source +file and generates one C++ source file containing meta object +information for the classes. The C++ source file generated by the +.B moc +must be compiled and linked with the implementation of the class (or it +can be #included into the class's source file). +.PP +If you use +.B qmake +to create your Makefiles, build rules will be included that call the +.B moc +when retquired, so you will not need to use the +.B moc +directly. +.PP +In brief, the meta object system is a structure used by Qt (see +.BR http://doc.trolltech.com ")" +for component programming and run time type information. It adds +properties and inheritance information to (some) classes and +provides a new type of communication between those instances of those +classes, signal-slot +connections. +.SH OPTIONS +.TP +.I "-o file" +Write output to +.I file +rather than to stdout. +.TP +.I -f +Force the generation of an #include statement in the output. +This is the default for files whose name matches the regular +expression .[hH][^.]* (i.e. the extension starts with +.B H +or +.B h +). This +option is only useful if you have header files that do not follow the +standard naming conventions. +.TP +.I "-i" +Do not generate an #include statement in the output. This may be used +to run +.B moc +on a C++ file containing one or more class declarations. You should then +#include the meta object code in the .cpp file (see USAGE below). If both +.I -f +and +.I -i +are present, the last one wins. +.TP +.I "-nw" +Do not generate any warnings. Not recommended. +.TP +.I "-ldbg" +Write a flood of lex debug information to stdout. +.TP +.I "-p path" +Makes +.B moc +prepend +.IR path / +to the file name in the generated #include statement (if one is generated). +.TP +.I "-q path" +Makes +.B moc +prepend +.IR path / +to the file name of qt #include files in the generated code. +.TP +.I "-v" +Displays the version of +.B moc +and Qt. +.PP +You can explicitly tell the +.B moc +not to parse parts of a header +file. It recognizes any C++ comment (//) that contains the substrings +MOC_SKIP_BEGIN or MOC_SKIP_END. They work as you would expect and you +can have several levels of them. The net result as seen by the +.B moc +is as if you had removed all lines between a MOC_SKIP_BEGIN and a +MOC_SKIP_END +.SH USAGE +.B moc +is almost always invoked by +.BR make (1), +not by hand. +.PP +.B moc +is typically used with an input file containing class declarations +like this: +.PP +.in +4 +.nf +class YourClass : public QObject { + Q_OBJECT + Q_PROPERTY( ... ) + Q_CLASSINFO( ... ) + +public: + YourClass( QObject * parent=0, const char * name=0 ); + ~YourClass(); + +signals: + +public slots: + +}; +.fi +.in -4 +.PP +Here is a useful makefile rule if you only use GNU make: +.PP +.in +4 +.nf +m%.cpp: %.h + moc $< -o $@ +.fi +.in -4 +.PP +If you want to write portably, you can use individual rules of the +following form: +.PP +.in +4 +.nf +mNAME.cpp: NAME.h + moc $< -o $@ +.fi +.in -4 +.PP +You must also remember to add +.I mNAME.cpp +to your SOURCES (substitute your favorite name) variable and +.I mNAME.o +to your OBJECTS variable. +.PP +(While we prefer to name our C++ source files .cpp, the +.B moc +doesn't know that, so you can use .C, .cc, .CC, .cxx or even .c++ if +you prefer.) +.PP +If you have class declarations in C++ files, we recommend that you use +a makefile rule like this: +.PP +.in +4 +.nf +NAME.o: mNAME.cpp + +mNAME.cpp: NAME.cpp + moc -i $< -o $@ +.fi +.in -4 +.PP +This guarantees that +.BR make (1) +will run the +.B moc +before it compiles +.IR NAME.cpp . +You can then put +.PP +.ti +4 +#include "nNAME.cpp" +.PP +at the end of +.IR NAME.cpp , +where all the classes declared in that file are fully known. +.SH DIAGNOSTICS +Sometimes you may get linkage errors, saying that +YourClass::className() is undefined or that YourClass lacks a vtbl. +Those errors happen most often when you forget to compile the +moc-generated C++ code or include that object file in the link +command. +.PP +The +.B moc +will warn you about a number of dangerous or illegal constructs. +.SH BUGS + +The +.B moc +does not expand #include or #define, it simply skips any preprocessor +directives it encounters. This is regrettable, but is normally not a +problem in practice. + +The +.B moc +does not handle all of C++. The main problem is that class templates +cannot have signals or slots. This is an important bug. Here is an +example: +.PP +.in +4 +.nf +class SomeTemplate : public QFrame { + Q_OBJECT + .... +signals: + void bugInMocDetected( int ); +}; +.fi +.in -4 +.PP +Less importantly, the following constructs are illegal. All of them +have have alternatives which we think are usually better, so removing +these limitations is not a high priority for us. +.SS "Multiple inheritance retquires QObject to be first." +If you are using multiple inheritance, +.B moc +assumes that the +.B first +inherited class is a subclass of QObject. Also, be sure that +.B only +the first inherited class is a QObject. +.PP +.in +4 +.nf +class SomeClass : public QObject, public OtherClass { + ... +}; +.fi +.in -4 +.PP +This bug is almost impossible to fix; since the +.B moc +does not expand +#include or #define, it cannot find out which one of the base classes is a +QObject. +.SS "Function pointers cannot be arguments to signals or slots." +In most cases where you would consider that, we think inheritance is a +better alternative. Here is an example of illegal syntax: +.PP +.in +4 +.nf +class SomeClass : public QObject { + Q_OBJECT + ... +public slots: + // illegal + void apply( void (*apply)(List *, void *), void * ); +}; +.fi +.in -4 +.PP +You can work around this restriction like this: +.PP +.in +4 +.nf +typedef void (*ApplyFunctionType)( List *, void * ); + +class SomeClass : public QObject { + Q_OBJECT + ... +public slots: + void apply( ApplyFunctionType, char * ); +}; +.fi +.in -4 +.PP +It may sometimes be even better to replace the function pointer with +inheritance and virtual functions, signals or slots. +.SS "Friend declarations cannot be placed in signals or slots sections" +Sometimes it will work, but in general, friend declarations cannot be +placed in +.B signals +or +.B slots +sections. Put them in the good old +.BR private ", " protected +or +.B public +sections instead. Here is an example of the illegal syntax: +.PP +.in +4 +.nf +class SomeClass : public QObject { + Q_OBJECT + ... +signals: + friend class ClassTemplate; // illegal +}; +.fi +.in -4 +.SS "Signals and slots cannot be upgraded" +The C++ feature of upgrading an inherited member function to +.B public +status is not extended to cover signals and slots. Here is an illegal +example: +.PP +.in +4 +.nf +class Whatever : public QButtonGroup { + ... +public slots: + QButtonGroup::buttonPressed; // illegal + ... +}; +.fi +.in -4 +.PP +The QButtonGroup::buttonPressed() slot is protected. +.PP +C++ tquiz: What happens if you try to upgrade a protected member +function which is overloaded? +.IP +- All the functions are upgraded. +.IP +- That is not legal C++. +.\" Good idea, but look in the SEE ALSO section... +.SS "Type macros cannot be used for signal and slot arguments" + +Since the +.B moc +does not expand #define, type macros that take an argument +will not work in signals and slots. Here is an illegal example: +.PP +.in +4 +.nf +#ifdef ultrix +#define SIGNEDNESS(a) unsigned a +#else +#define SIGNEDNESS(a) a +#endif +class Whatever : public QObject { + ... +signals: + void someSignal( SIGNEDNESS(int) ); // illegal +}; +.PP +A #define without arguments works. +.fi +.in -4 +.SS "Nested classes cannot be in the signals or slots sections nor have signals or slots" +Here's an example: +.PP +.in +4 +.nf +class A { + Q_OBJECT +public: + class B { + public slots: // illegal + void b(); + ... + }; +signals: + class B { // illegal + void b(); + ... + }: +}; +.fi +.in -4 +.PP +.SS "Constructors cannot be used in signals or slots sections" +It is a mystery to us why anyone would put a constructor on either the +.B signals +or +.B slots +sections. You can't, anyway (except that it happens to work in some +cases). Put them in +.BR private ", " protected +or +.B public +sections, where they belong. Here is an example of the illegal syntax: +.PP +.in +4 +.nf +class SomeClass : public QObject { + Q_OBJECT +public slots: + SomeClass( QObject *parent, const char *name ) + : QObject( parent, name ) {} // illegal + ... +}; +.fi +.in -4 +.SS "Properties need to be declared before the public section that contains the respective get and set functions" +.PP +Declaring the first property within or after the public section that +contains the type definition and the respective get and set functions +does not work as expected. The +.B moc +will complain that it can neither +find the functions nor resolve the type. Here is an example of the +illegal syntax: +.PP +.in +4 +.nf +class SomeClass : public QObject { + Q_OBJECT +public: + ... + // illegal + Q_PROPERTY( Priority priority READ priority WRITE setPriority ) + Q_ENUMS( Priority ) + enum Priority { High, Low, VeryHigh, VeryLow }; + void setPriority( Priority ); + Priority priority() const; + ... +}; +.fi +.in -4 +.PP +Work around this limitation by declaring all properties at the +beginning of the class declaration, right after Q_OBJECT: +.PP +.in +4 +.nf +class SomeClass : public QObject { + Q_OBJECT + Q_PROPERTY( Priority priority READ priority WRITE setPriority ) + Q_ENUMS( Priority ) +public: + ... + enum Priority { High, Low, VeryHigh, VeryLow }; + void setPriority( Priority ); + Priority priority() const; + ... +}; +.fi +.in -4 +.PP +.SH "SEE ALSO" +.BR http://www.trolltech.com ", " +.BR "C++ ARM, section r.11.3" " (for the answer to the tquiz), and" +.BR http://doc.trolltech.com " (for complete Qt documentation)." diff --git a/doc/man/man1/uic.1 b/doc/man/man1/uic.1 new file mode 100644 index 000000000..154e4942c --- /dev/null +++ b/doc/man/man1/uic.1 @@ -0,0 +1,136 @@ +.TH uic 1 "2 Aug 2001" "Trolltech AS" \" -*- nroff -*- +.\" +.\" Copyright (C) 2000-2007 Trolltech ASA. All rights reserved. +.\" +.\" This file is part of Qt and may be distributed and used according to +.\" the terms and conditions described in the LICENSE file. +.\" +.SH NAME +uic \- Qt user interface compiler +.SH SYNOPSIS +.B uic +[options] file +.SH DESCRIPTION +This page documents the +.B User Interface Compiler +for the Qt GUI toolkit. The +.B uic +reads a user interface definition (.ui) file in XML as generated by +.I Qt Designer +and creates corresponding C++ header or source files. It also +generates an image file that embeds raw image data in C++ source code. +.PP +.PP +Generate declaration: +.br +.I "\fB uic [options] \fI" +.br +.PP +Generate implementation: +.br +.I "\fB uic [options] -impl \fI " +.br + \fI\fP: name of the declaration file +.br +.PP +Generate image collection: +.br +.I "\fB uic [options] -embed \fI \fP ..." +.br + \fI\fP: project name + \fI\fP: image files +.br +.\" .PP +.\" Generate binary UI file: +.\" .br +.\" .I "\fB uic [options] -binary \fI" +.\" .br +.PP +.PP +For convenience, +.B uic +can also generate declaration or implementation stubs for subclasses. +.PP +Generate subclass declaration: +.br +.I "\fB uic [options] -subdecl \fI " +.br + \fI\fP: name of the subclass to generate +.br + \fI\fP: declaration file of the baseclass +.PP +Generate subclass implementation: +.br +.I "\fB uic [options] -subimpl \fI " +.br + \fI\fP: name of the subclass to generate +.br + \fI\fP: declaration file of the subclass + +.SH GENERAL OPTIONS +.TP +.I "-o file" +Write output to +.I file +rather than to stdout. +.TP +.I "-nofwd" +Omit forward declarations of custom classes in the generated +header file. This is necessary if typedef classes are used. +.TP +.I "-tr func" +Use +.I func() +instead of tr() for internationalization. +.TP +.I "-version" +Display the version of +.B uic +and exit. + +.SH USAGE +.B uic +is almost always invoked by +.BR make (1), +rather than by hand. +.PP +Here are useful makefile rules if you only use GNU make: +.PP +.in +4 +%.h: %.ui +.br + uic $< -o $@ +.br +%.cpp: %.ui +.br + uic -impl $*.h $< -o $@ +.in -4 +.PP +If you want to write portably, you can use individual rules of the +following form: +.PP +.in +4 +NAME.h: NAME.ui +.br + uic $< -o $@ +.br +NAME.cpp: NAME.ui +.br + uic -impl $*.h $< -o $@ +.in -4 +.PP +You must also remember to add +.I NAME.cpp +to your SOURCES (substitute your favorite name) variable and +.I NAME.o +to your OBJECTS variable. +.PP +(While we prefer to name our C++ source files .cpp, the +.B uic +doesn't care, so you can use .C, .cc, .CC, .cxx or even .c++ if +you prefer.) +.PP +.SH "SEE ALSO" +.BR http://www.trolltech.com/ " " +.SH AUTHOR +Trolltech ASA -- cgit v1.2.1