QDoc: Fix QDoc warnings

This patch fixes ~1100 warnings from qdoc

Change-Id: Ia9555db675acbf8083b2f87d9855a62a3a34ccb9
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
This commit is contained in:
Tobias Hunger
2013-09-25 18:19:45 +02:00
parent 529cc963b5
commit 0479abdcd7
18 changed files with 940 additions and 944 deletions

View File

@@ -35,10 +35,10 @@
Qt, such as: Qt, such as:
\list \list
\o Widgets and layout managers \li Widgets and layout managers
\o Container classes \li Container classes
\o Signals and slots \li Signals and slots
\o Input and output devices \li Input and output devices
\endlist \endlist
All these technologies will be introduced via the Qt Creator Integrated All these technologies will be introduced via the Qt Creator Integrated
@@ -53,13 +53,13 @@
Tutorial chapters: Tutorial chapters:
\list 1 \list 1
\o \l{examples/addressbook-sdk/part1}{Designing the User Interface} \li \l{examples/addressbook-sdk/part1}{Designing the User Interface}
\o \l{examples/addressbook-sdk/part2}{Adding Addresses} \li \l{examples/addressbook-sdk/part2}{Adding Addresses}
\o \l{examples/addressbook-sdk/part3}{Navigating between Entries} \li \l{examples/addressbook-sdk/part3}{Navigating between Entries}
\o \l{examples/addressbook-sdk/part4}{Editing and Removing Addresses} \li \l{examples/addressbook-sdk/part4}{Editing and Removing Addresses}
\o \l{examples/addressbook-sdk/part5}{Adding a Find Function} \li \l{examples/addressbook-sdk/part5}{Adding a Find Function}
\o \l{examples/addressbook-sdk/part6}{Loading and Saving} \li \l{examples/addressbook-sdk/part6}{Loading and Saving}
\o \l{examples/addressbook-sdk/part7}{Additional Features} \li \l{examples/addressbook-sdk/part7}{Additional Features}
\endlist \endlist
Although this little application does not look much like a fully-fledged Although this little application does not look much like a fully-fledged
@@ -93,7 +93,7 @@
Begin by launching Qt Creator and use it to generate a new project. To Begin by launching Qt Creator and use it to generate a new project. To
do this, select \gui{File} > \gui{New File or Project...} > do this, select \gui{File} > \gui{New File or Project...} >
\gui{Qt Application Project} > \gui{Qt Gui Application} and \gui{Qt Application Project} > \gui{Qt Gui Application} and
click \gui OK. Set your project name to \bold part1 with the QtCore and click \gui OK. Set your project name to \b part1 with the QtCore and
QtGui modules checked. Ensure that you select QWidget as your base class QtGui modules checked. Ensure that you select QWidget as your base class
and name it \c AddressBook. and name it \c AddressBook.
@@ -101,15 +101,15 @@
\gui{Project}: \gui{Project}:
\list \list
\o \c{main.cpp} - the file containing a \c main() function, with an \li \c{main.cpp} - the file containing a \c main() function, with an
instance of \c AddressBook, instance of \c AddressBook,
\o \c{addressbook.cpp} - the implementation file for the \li \c{addressbook.cpp} - the implementation file for the
\c AddressBook class, \c AddressBook class,
\o \c{addressbook.h} - the definition file for the \c AddressBook \li \c{addressbook.h} - the definition file for the \c AddressBook
class, class,
\o \c{addressbook.ui} - the user interface file created with \QD, \li \c{addressbook.ui} - the user interface file created with \QD,
and and
\o \c{part1.pro} - the project file. \li \c{part1.pro} - the project file.
\endlist \endlist
Now that you have all the files you need, click \gui Finish so you can Now that you have all the files you need, click \gui Finish so you can
@@ -132,16 +132,16 @@
QLineEdit and a QTextEdit for the input fields. To create this follow the QLineEdit and a QTextEdit for the input fields. To create this follow the
steps mentioned below: steps mentioned below:
\list \list
\o Drag those widgets from the \gui{Widget Box} to your form. \li Drag those widgets from the \gui{Widget Box} to your form.
\o In the \gui{Property Editor}, set their \gui{objectName} property to \li In the \gui{Property Editor}, set their \gui{objectName} property to
\c nameLabel and \c addressLabel for the \l{QLabel}s, \c nameLine \c nameLabel and \c addressLabel for the \l{QLabel}s, \c nameLine
for the QLineEdit and finally, \c addressText for the QTextEdit. for the QLineEdit and finally, \c addressText for the QTextEdit.
\o Position the widgets properly, according to the screenshot above. \li Position the widgets properly, according to the screenshot above.
\o Use a QGridLayout to position our labels and input fields in a \li Use a QGridLayout to position our labels and input fields in a
structured manner. QGridLayout divides the available space into structured manner. QGridLayout divides the available space into
a grid and places widgets in the cells you specify with row and a grid and places widgets in the cells you specify with row and
column numbers. column numbers.
\o Place the caption of the \c addressLabel on the top, change the \li Place the caption of the \c addressLabel on the top, change the
vertical alignment property to \c AlignTop. vertical alignment property to \c AlignTop.
\endlist \endlist
@@ -227,13 +227,13 @@
the behavior of a widget has the following advantages: the behavior of a widget has the following advantages:
\list \list
\o You can write implementations of virtual or pure virtual functions \li You can write implementations of virtual or pure virtual functions
to obtain exactly what you need, falling back on the base class's to obtain exactly what you need, falling back on the base class's
implementation when necessary. implementation when necessary.
\o It allows you to encapsulate parts of the user interface within a \li It allows you to encapsulate parts of the user interface within a
class, so that the other parts of the application do not need to class, so that the other parts of the application do not need to
know about the individual widgets in the user interface. know about the individual widgets in the user interface.
\o The subclass can be used to create multiple custom widgets in the \li The subclass can be used to create multiple custom widgets in the
same application or library, and the code for the subclass can be same application or library, and the code for the subclass can be
reused in other projects. reused in other projects.
\endlist \endlist
@@ -272,27 +272,27 @@
complete the process of adding a contact. Break the existing layouts by complete the process of adding a contact. Break the existing layouts by
following the steps below: following the steps below:
\list \list
\o Select, \gui{Break Layout} from the context menu. You might have to \li Select, \gui{Break Layout} from the context menu. You might have to
do a \gui{Select All} with \key{Ctrl+A} first.. do a \gui{Select All} with \key{Ctrl+A} first..
\o Add three push buttons and double-click on each of them to set \li Add three push buttons and double-click on each of them to set
their text to "Add", "Submit", and "Cancel". their text to "Add", "Submit", and "Cancel".
\o Set the \c objectName of the buttons to \c addButton, \li Set the \c objectName of the buttons to \c addButton,
\c submitButton and \c cancelButton respectively. \c submitButton and \c cancelButton respectively.
\o A \gui{Vertical Spacer} is required to ensure that the push buttons \li A \gui{Vertical Spacer} is required to ensure that the push buttons
will be laid out neatly; drag one from the \gui{Widget Box}. will be laid out neatly; drag one from the \gui{Widget Box}.
\o Lay out these three push buttons and the spacer vertically, by \li Lay out these three push buttons and the spacer vertically, by
selecting all three of them using \key{Ctrl + click} and selecting selecting all three of them using \key{Ctrl + click} and selecting
\gui{Lay out Vertically} from the context menu. Alternatively you \gui{Lay out Vertically} from the context menu. Alternatively you
can use the \key{Ctrl+L} shortcut key. can use the \key{Ctrl+L} shortcut key.
\note Use the spacer as you do not want the buttons to be evenly \note Use the spacer as you do not want the buttons to be evenly
spaced, but arranged closer to the top of the widget. spaced, but arranged closer to the top of the widget.
\o The figure below shows the difference between using the spacer and \li The figure below shows the difference between using the spacer and
not using it. not using it.
\image addressbook-tutorial-part2-stretch-effects.png \image addressbook-tutorial-part2-stretch-effects.png
\o Select all the objects on the form using, \key{Ctrl+A} and lay them \li Select all the objects on the form using, \key{Ctrl+A} and lay them
out in a grid. out in a grid.
\o Lastly, set the top level widget's layout by right-clicking anywhere \li Lastly, set the top level widget's layout by right-clicking anywhere
on the widget and selecting \gui{Lay out Horizontally} or on the widget and selecting \gui{Lay out Horizontally} or
\gui{Lay out Vertically}. \gui{Lay out Vertically}.
\endlist \endlist
@@ -376,7 +376,7 @@
This function can be divided into three parts: This function can be divided into three parts:
\list 1 \list 1
\o Extract the contact's detail from \c nameLine and \c addressText \li Extract the contact's detail from \c nameLine and \c addressText
and store them in QString objects. Also validate to ensure that and store them in QString objects. Also validate to ensure that
you did not click \gui Submit with empty input fields; you did not click \gui Submit with empty input fields;
otherwise, a QMessageBox is displayed to remind you for a name otherwise, a QMessageBox is displayed to remind you for a name
@@ -384,7 +384,7 @@
\snippet examples/addressbook-sdk/part2/addressbook.cpp submitContact part1 \snippet examples/addressbook-sdk/part2/addressbook.cpp submitContact part1
\o Then proceed to check if the contact already exists. If it does \li Then proceed to check if the contact already exists. If it does
not exist, add the contact to \c contacts and display a not exist, add the contact to \c contacts and display a
QMessageBox to inform you about this, preventing you from QMessageBox to inform you about this, preventing you from
adding duplicate contacts. Our \c contacts object is based on adding duplicate contacts. Our \c contacts object is based on
@@ -393,7 +393,7 @@
\snippet examples/addressbook-sdk/part2/addressbook.cpp submitContact part2 \snippet examples/addressbook-sdk/part2/addressbook.cpp submitContact part2
\o Once you have handled both cases mentioned above, restore the \li Once you have handled both cases mentioned above, restore the
push buttons to their normal state with the following code: push buttons to their normal state with the following code:
\snippet examples/addressbook-sdk/part2/addressbook.cpp submitContact part3 \snippet examples/addressbook-sdk/part2/addressbook.cpp submitContact part3
@@ -457,17 +457,17 @@
need to traverse the existing contacts. To do so follow the steps need to traverse the existing contacts. To do so follow the steps
mentioned below: mentioned below:
\list \list
\o Add two push buttons at the bottom of your application and name \li Add two push buttons at the bottom of your application and name
them: \gui Next and \gui Previous. them: \gui Next and \gui Previous.
\o The buttons' \c objectName should be \c nextButton and \li The buttons' \c objectName should be \c nextButton and
\c previousButton, respectively. \c previousButton, respectively.
\o Break your top level layout by right-clicking on \c AddressBook in \li Break your top level layout by right-clicking on \c AddressBook in
the \gui{Object Inspector} and then select \gui{Lay out|Break Layout}. the \gui{Object Inspector} and then select \gui{Lay out|Break Layout}.
\o Place the \gui Next and \gui Previous buttons in a horizontal \li Place the \gui Next and \gui Previous buttons in a horizontal
layout. layout.
\o Drag and drop the buttons together with their layout into the \li Drag and drop the buttons together with their layout into the
existing grid layout. existing grid layout.
\o Set a top level layout for the widget again. \li Set a top level layout for the widget again.
\endlist \endlist
The screenshot below illustrates what you will see as the button layout The screenshot below illustrates what you will see as the button layout
@@ -523,9 +523,9 @@
for \c contacts and then: for \c contacts and then:
\list \list
\o If the iterator is not at the end of \c contacts, increment it by \li If the iterator is not at the end of \c contacts, increment it by
one. one.
\o If the iterator is at the end of \c contacts, move it to the \li If the iterator is at the end of \c contacts, move it to the
beginning of \c contacts. This gives an illusion that our QMap beginning of \c contacts. This gives an illusion that our QMap
is working like a circularly-linked list. is working like a circularly-linked list.
\endlist \endlist
@@ -539,11 +539,11 @@
\c contacts and then: \c contacts and then:
\list \list
\o If the iterator is at the end of \c contacts, clear the display \li If the iterator is at the end of \c contacts, clear the display
and return. and return.
\o If the iterator is at the beginning of \c contacts, move it to \li If the iterator is at the beginning of \c contacts, move it to
the end. the end.
\o Then decrement the iterator by one. \li Then decrement the iterator by one.
\endlist \endlist
\snippet examples/addressbook-sdk/part3/addressbook.cpp previous \snippet examples/addressbook-sdk/part3/addressbook.cpp previous
@@ -578,9 +578,9 @@
In this chapter, define the \c Mode enum with three different values: In this chapter, define the \c Mode enum with three different values:
\list \list
\o \c{NavigationMode} \li \c{NavigationMode}
\o \c{AddingMode} \li \c{AddingMode}
\o \c{EditingMode} \li \c{EditingMode}
\endlist \endlist
\section1 Placing Widgets on The Form \section1 Placing Widgets on The Form

View File

@@ -35,20 +35,20 @@
following rules: following rules:
\list \list
\o The most important rule is: KISS (keep it short and simple). Always \li The most important rule is: KISS (keep it short and simple). Always
choose the simpler implementation option over the more complicated one. choose the simpler implementation option over the more complicated one.
This makes maintenance a lot easier. This makes maintenance a lot easier.
\o Write good C++ code. That is, readable, well commented when necessary, \li Write good C++ code. That is, readable, well commented when necessary,
and object-oriented. and object-oriented.
\o Take advantage of Qt. Do not re-invent the wheel. Think about which parts \li Take advantage of Qt. Do not re-invent the wheel. Think about which parts
of your code are generic enough that they might be incorporated into of your code are generic enough that they might be incorporated into
Qt instead of Qt Creator. Qt instead of Qt Creator.
\o Adapt the code to the existing structures in Qt Creator. \li Adapt the code to the existing structures in Qt Creator.
If you have improvement ideas, discuss them with other developers If you have improvement ideas, discuss them with other developers
before writing the code. before writing the code.
\o Follow the guidelines in \l{Code Constructs}, \l{Formatting}, and \li Follow the guidelines in \l{Code Constructs}, \l{Formatting}, and
\l{Patterns and Practices}. \l{Patterns and Practices}.
\o Document interfaces. Right now we use qdoc, but changing to doxygen \li Document interfaces. Right now we use qdoc, but changing to doxygen
is being considered. is being considered.
\endlist \endlist
@@ -68,13 +68,13 @@
releases: releases:
\list \list
\o Qt Creator 2.0.0 is a \e {major release}, Qt Creator 2.1.0 is a \e {minor \li Qt Creator 2.0.0 is a \e {major release}, Qt Creator 2.1.0 is a \e {minor
release}, and Qt Creator 2.1.3 is a \e {patch release}. release}, and Qt Creator 2.1.3 is a \e {patch release}.
\o \e {Backward binary compatibility} means that code linked to an \li \e {Backward binary compatibility} means that code linked to an
earlier version of the library still works. earlier version of the library still works.
\o \e {Forward binary compatibility} means that code linked to a \li \e {Forward binary compatibility} means that code linked to a
newer version of the library works with an older library. newer version of the library works with an older library.
\o \e {Source code compatibility} means that code compiles without \li \e {Source code compatibility} means that code compiles without
modification. modification.
\endlist \endlist
@@ -86,11 +86,11 @@
backward source code compatibility in patch releases, so: backward source code compatibility in patch releases, so:
\list \list
\o Do not add or remove any public API (e.g. global functions,x \li Do not add or remove any public API (e.g. global functions,x
public/protected/private methods). public/protected/private methods).
\o Do not reimplement methods (not even inlines, \li Do not reimplement methods (not even inlines,
nor protected or private methods). nor protected or private methods).
\o Check \li Check
\l {http://wiki.qt-project.org/index.php/Binary_Compatibility_Workarounds}{Binary Compatibility Workarounds} \l {http://wiki.qt-project.org/index.php/Binary_Compatibility_Workarounds}{Binary Compatibility Workarounds}
for ways to preserve binary compatibility. for ways to preserve binary compatibility.
\endlist \endlist
@@ -107,7 +107,7 @@
type checking in C++. type checking in C++.
\list \list
\o Prefer preincrement to postincrement whenever possible. \li Prefer preincrement to postincrement whenever possible.
Preincrement is potentially faster than postincrement. Just Preincrement is potentially faster than postincrement. Just
think about the obvious implementations of pre/post-increment. This think about the obvious implementations of pre/post-increment. This
rule applies to decrement too: rule applies to decrement too:
@@ -122,7 +122,7 @@
U--; U--;
\endcode \endcode
\o Try to minimize evaluation of the same code over and over. This is \li Try to minimize evaluation of the same code over and over. This is
aimed especially at loops: aimed especially at loops:
\code \code
@@ -141,7 +141,7 @@
\endcode \endcode
\o You can use the Qt \c foreach loop in non-time-critical code with a Qt \li You can use the Qt \c foreach loop in non-time-critical code with a Qt
container. It is a nice way to keep line noise down and to give the container. It is a nice way to keep line noise down and to give the
loop variable a proper name: loop variable a proper name:
@@ -180,19 +180,19 @@
Capitalize the first word in an identifier as follows: Capitalize the first word in an identifier as follows:
\list \list
\o Class names begin with a capital letter. \li Class names begin with a capital letter.
\o Function names begin with a lower case letter. \li Function names begin with a lower case letter.
\o Variable names begin with a lower case letter. \li Variable names begin with a lower case letter.
\o Enum names and values begin with a capital letter. Enum values \li Enum names and values begin with a capital letter. Enum values
contain some part of the name of the enum type. contain some part of the name of the enum type.
\endlist \endlist
\section2 Whitespace \section2 Whitespace
\list \list
\o Use four spaces for indentation, no tabs. \li Use four spaces for indentation, no tabs.
\o Use blank lines to group statements together where suited. \li Use blank lines to group statements together where suited.
\o Always use only one blank line. \li Always use only one blank line.
\endlist \endlist
\section3 Pointers and References \section3 Pointers and References
@@ -405,10 +405,10 @@
\section2 Line Breaks \section2 Line Breaks
\list \list
\o Keep lines shorter than 100 characters. \li Keep lines shorter than 100 characters.
\o Insert line breaks if necessary. \li Insert line breaks if necessary.
\o Commas go at the end of a broken line. \li Commas go at the end of a broken line.
\o Operators start at the beginning of the new line. \li Operators start at the beginning of the new line.
\code \code
if (longExpression if (longExpression
|| otherLongExpression || otherLongExpression
@@ -427,15 +427,15 @@
\section2 Declarations \section2 Declarations
\list \list
\o Use this order for the access sections of your class: public, \li Use this order for the access sections of your class: public,
protected, private. The public section is interesting for every protected, private. The public section is interesting for every
user of the class. The private section is only of interest for the user of the class. The private section is only of interest for the
implementors of the class (you). implementors of the class (you).
\o Avoid declaring global objects in the declaration file of the class. \li Avoid declaring global objects in the declaration file of the class.
If the same variable is used for all objects, use a static member. If the same variable is used for all objects, use a static member.
\o Use \c{class} instead of \c{struct}. Some compilers mangle that \li Use \c{class} instead of \c{struct}. Some compilers mangle that
difference into the symbol names and spit out warnings if a struct difference into the symbol names and spit out warnings if a struct
declaration is followed by a class definition. To avoid ongoing declaration is followed by a class definition. To avoid ongoing
changes from one to the other we declare \c{class} the preferred way. changes from one to the other we declare \c{class} the preferred way.
@@ -445,16 +445,16 @@
\section3 Declaring Variables \section3 Declaring Variables
\list \list
\o Avoid global variables of class type to rule out initialization order problems. \li Avoid global variables of class type to rule out initialization order problems.
Consider using \c Q_GLOBAL_STATIC if they cannot be avoided. Consider using \c Q_GLOBAL_STATIC if they cannot be avoided.
\o Declare global string literals as \li Declare global string literals as
\code \code
const char aString[] = "Hello"; const char aString[] = "Hello";
\endcode \endcode
\o Avoid short names (such as, a, rbarr, nughdeget) whenever possible. \li Avoid short names (such as, a, rbarr, nughdeget) whenever possible.
Use single-character variable names only for counters and Use single-character variable names only for counters and
temporaries, where the purpose of the variable is obvious. temporaries, where the purpose of the variable is obvious.
\o Declare each variable on a separate line: \li Declare each variable on a separate line:
\code \code
QString a = "Joe"; QString a = "Joe";
QString b = "Foo"; QString b = "Foo";
@@ -475,7 +475,7 @@
mistaken as function declaration, and it reduces the level of nested mistaken as function declaration, and it reduces the level of nested
parantheses in more initializations. parantheses in more initializations.
\o Avoid abbreviations: \li Avoid abbreviations:
\code \code
int height; int height;
@@ -489,16 +489,16 @@
char *c, *d; char *c, *d;
\endcode \endcode
\o Wait with declaring a variable until it is needed. This is especially \li Wait with declaring a variable until it is needed. This is especially
important when initialization is done at the same time. important when initialization is done at the same time.
\endlist \endlist
\section2 Namespaces \section2 Namespaces
\list \list
\o Put the left curly brace on the same line as the \namespace keyword. \li Put the left curly brace on the same line as the \namespace keyword.
\o Do not indent declarations or definitions inside. \li Do not indent declarations or definitions inside.
\o Optional, but recommended if the namespaces spans more than a few lines: \li Optional, but recommended if the namespaces spans more than a few lines:
Add a comment after the right curly brace repeating the namespace. Add a comment after the right curly brace repeating the namespace.
\code \code
@@ -509,7 +509,7 @@
} // namespace MyPlugin } // namespace MyPlugin
\endcode \endcode
\o As an exception, if there is only a single class declaration inside \li As an exception, if there is only a single class declaration inside
the namespace, all can go on a single line: the namespace, all can go on a single line:
\code \code
namespace MyPlugin { class MyClass; } namespace MyPlugin { class MyClass; }
@@ -526,10 +526,10 @@
The namespacing policy within Qt Creator is as follows: The namespacing policy within Qt Creator is as follows:
\list \list
\o Classes/Symbols of a library or plugin that are exported for use of \li Classes/Symbols of a library or plugin that are exported for use of
other libraries or plugins are in a namespace specific to that other libraries or plugins are in a namespace specific to that
library/plugin, e.g. \c{MyPlugin}. library/plugin, e.g. \c{MyPlugin}.
\o Classes/Symbols of a library or plugin that are not exported are in \li Classes/Symbols of a library or plugin that are not exported are in
an additional \c{Internal} namespace, e.g. \c{MyPlugin::Internal}. an additional \c{Internal} namespace, e.g. \c{MyPlugin::Internal}.
\endlist \endlist
@@ -577,35 +577,35 @@
\section2 C++ Features \section2 C++ Features
\list \list
\o Do not use exceptions, unless you know what you do. \li Do not use exceptions, unless you know what you do.
\o Do not use RTTI (Run-Time Type Information; that is, the typeinfo \li Do not use RTTI (Run-Time Type Information; that is, the typeinfo
struct, the dynamic_cast or the typeid operators, including throwing struct, the dynamic_cast or the typeid operators, including throwing
exceptions), unless you know what you do. exceptions), unless you know what you do.
\o Do not use virtual inheritance, unless you know what you do. \li Do not use virtual inheritance, unless you know what you do.
\o Use templates wisely, not just because you can. \li Use templates wisely, not just because you can.
Hint: Use the compile autotest to see whether a C++ feature is supported Hint: Use the compile autotest to see whether a C++ feature is supported
by all compilers in the test farm. by all compilers in the test farm.
\o All code is ASCII only (7-bit characters only, run \c {man ascii} if unsure) \li All code is ASCII only (7-bit characters only, run \c {man ascii} if unsure)
\list \list
\o Rationale: We have too many locales inhouse and an unhealthy \li Rationale: We have too many locales inhouse and an unhealthy
mix of UTF-8 and Latin1 systems. Usually, characters > 127 can mix of UTF-8 and Latin1 systems. Usually, characters > 127 can
be broken without you even knowing by clicking Save in your be broken without you even knowing by clicking Save in your
favourite editor. favourite editor.
\o For strings: Use \\nnn (where nnn is the octal representation \li For strings: Use \\nnn (where nnn is the octal representation
of whatever locale you want your string in) or \xnn (where nn of whatever locale you want your string in) or \\xnn (where nn
is hexadecimal). is hexadecimal).
For example: QString s = QString::fromUtf8("\\213\\005"); For example: QString s = QString::fromUtf8("\\213\\005");
\o For umlauts in documentation, or other non-ASCII characters, \li For umlauts in documentation, or other non-ASCII characters,
either use the qdoc \c {\unicode} command or use the relevant macro. either use the qdoc \c {\unicode} command or use the relevant macro.
For example: \c{\uuml} for \uuml. For example: \c{\uuml} for \uuml.
\endlist \endlist
\o Use static keywords instead of anonymous namespaces whenever possible. \li Use static keywords instead of anonymous namespaces whenever possible.
A name localized to the compilation unit with static is A name localized to the compilation unit with static is
guaranteed to have internal linkage. For names declared in anonymous guaranteed to have internal linkage. For names declared in anonymous
namespaces, the C++ standard unfortunately mandates external linkage namespaces, the C++ standard unfortunately mandates external linkage
@@ -640,10 +640,10 @@
\section2 Using QObject \section2 Using QObject
\list \list
\o Every QObject subclass must have a Q_OBJECT macro, even if it \li Every QObject subclass must have a Q_OBJECT macro, even if it
does not have signals or slots, if it is intended to be used does not have signals or slots, if it is intended to be used
with qobject_cast<>. See also \l{Casting}. with qobject_cast<>. See also \l{Casting}.
\o Normalize the arguments for signals and slots \li Normalize the arguments for signals and slots
(see \l{http://qt-project.org/doc/qt-4.8/qmetaobject.html#normalizedSignature}{QMetaObject::normalizedSignature} (see \l{http://qt-project.org/doc/qt-4.8/qmetaobject.html#normalizedSignature}{QMetaObject::normalizedSignature}
inside connect statements inside connect statements
to safely make signal and slot lookup a few cycles faster. to safely make signal and slot lookup a few cycles faster.
@@ -658,34 +658,34 @@
\section2 Including Headers \section2 Including Headers
\list \list
\o Use the following format to include Qt headers: \li Use the following format to include Qt headers:
\c{#include <QWhatEver>}. Do not include the module as it might have changed between \c{#include <QWhatEver>}. Do not include the module as it might have changed between
Qt4 and Qt5. Qt4 and Qt5.
\o Arrange includes in an order that goes from specific to generic to \li Arrange includes in an order that goes from specific to generic to
ensure that the headers are self-contained. For example: ensure that the headers are self-contained. For example:
\list \list
\o \c{#include "myclass.h"} \li \c{#include "myclass.h"}
\o \c{#include "otherclassinplugin.h"} \li \c{#include "otherclassinplugin.h"}
\o \c{#include <otherplugin/someclass.h>} \li \c{#include <otherplugin/someclass.h>}
\o \c{#include <QtClass>} \li \c{#include <QtClass>}
\o \c{#include <stdthing>} \li \c{#include <stdthing>}
\o \c{#include <system.h>} \li \c{#include <system.h>}
\endlist \endlist
\o Enclose headers from other plugins in square brackets (<>) rather than \li Enclose headers from other plugins in square brackets (<>) rather than
quotation marks ("") to make it easier to spot external dependencies in quotation marks ("") to make it easier to spot external dependencies in
the sources. the sources.
\o Add empty lines between long blocks of \e peer headers and try to \li Add empty lines between long blocks of \e peer headers and try to
arrange the headers in alphabetic order within a block. arrange the headers in alphabetic order within a block.
\endlist \endlist
\section2 Casting \section2 Casting
\list \list
\o Avoid C casts, prefer C++ casts (\c static_cast, \c const_cast, \li Avoid C casts, prefer C++ casts (\c static_cast, \c const_cast,
\c reinterpret_cast) Both \c reinterpret_cast and \c reinterpret_cast) Both \c reinterpret_cast and
C-style casts are dangerous, but at least \c reinterpret_cast C-style casts are dangerous, but at least \c reinterpret_cast
will not remove the const modifier. will not remove the const modifier.
\o Do not use \c dynamic_cast, use \c {qobject_cast} for QObjects, or \li Do not use \c dynamic_cast, use \c {qobject_cast} for QObjects, or
refactor your design, for example by introducing a \c {type()} refactor your design, for example by introducing a \c {type()}
method (see QListWidgetItem), unless you know what you do. method (see QListWidgetItem), unless you know what you do.
\endlist \endlist
@@ -693,7 +693,7 @@
\section2 Compiler and Platform-specific Issues \section2 Compiler and Platform-specific Issues
\list \list
\o Be extremely careful when using the question mark operator. \li Be extremely careful when using the question mark operator.
If the returned types are not identical, some compilers generate If the returned types are not identical, some compilers generate
code that crashes at runtime (you will not even get a compiler warning): code that crashes at runtime (you will not even get a compiler warning):
\code \code
@@ -702,7 +702,7 @@
return condition ? s : "nothing"; return condition ? s : "nothing";
\endcode \endcode
\o Be extremely careful about alignment. \li Be extremely careful about alignment.
Whenever a pointer is cast such that the required alignment of Whenever a pointer is cast such that the required alignment of
the target is increased, the resulting code might crash at runtime the target is increased, the resulting code might crash at runtime
@@ -721,7 +721,7 @@
}; };
\endcode \endcode
\o Anything that has a constructor or needs to run code to be \li Anything that has a constructor or needs to run code to be
initialized cannot be used as global object in library code, initialized cannot be used as global object in library code,
since it is undefined when that constructor or code will be run since it is undefined when that constructor or code will be run
(on first usage, on library load, before \c {main()} or not at all). (on first usage, on library load, before \c {main()} or not at all).
@@ -784,7 +784,7 @@
will be run the first time the function is entered. The code is not will be run the first time the function is entered. The code is not
reentrant, though. reentrant, though.
\o A \c char is signed or unsigned dependent on the architecture. Use signed \li A \c char is signed or unsigned dependent on the architecture. Use signed
\c char or \c uchar if you explicitly want a signed or unsigned char. \c char or \c uchar if you explicitly want a signed or unsigned char.
The following code will break on PowerPC, for example: The following code will break on PowerPC, for example:
@@ -796,11 +796,11 @@
} }
\endcode \endcode
\o Avoid 64-bit enum values. The AAPCS (Procedure Call Standard \li Avoid 64-bit enum values. The AAPCS (Procedure Call Standard
for the ARM Architecture) embedded ABI hard codes for the ARM Architecture) embedded ABI hard codes
all enum values to a 32-bit integer. all enum values to a 32-bit integer.
\o Do not mix const and non-const iterators. This will silently crash \li Do not mix const and non-const iterators. This will silently crash
on broken compilers. on broken compilers.
\code \code
for (Container::const_iterator it = c.constBegin(); it != c.constEnd(); ++it) for (Container::const_iterator it = c.constBegin(); it != c.constEnd(); ++it)
@@ -814,10 +814,10 @@
\section2 Esthetics \section2 Esthetics
\list \list
\o Prefer enums to define const over static const int or defines. \li Prefer enums to define const over static const int or defines.
Enumeration values will be replaced by the compiler at compile time, Enumeration values will be replaced by the compiler at compile time,
resulting in faster code. Defines are not namespace safe. resulting in faster code. Defines are not namespace safe.
\o Prefer verbose argument names in headers. \li Prefer verbose argument names in headers.
Qt Creator will show the argument names in their completion box. Qt Creator will show the argument names in their completion box.
It will look better in the documentation. It will look better in the documentation.
\endlist \endlist
@@ -828,8 +828,8 @@
pitfalls: pitfalls:
\list \list
\o The destructors are not virtual, which can lead to memory leaks. \li The destructors are not virtual, which can lead to memory leaks.
\o The symbols are not exported (and mostly inline), which can lead to \li The symbols are not exported (and mostly inline), which can lead to
symbol clashes. symbol clashes.
\endlist \endlist
@@ -845,16 +845,16 @@
\list \list
\o No C style casts (\c{-Wold-style-cast}). Use \c static_cast, \c const_cast \li No C style casts (\c{-Wold-style-cast}). Use \c static_cast, \c const_cast
or \c reinterpret_cast, for basic types, use the constructor form: or \c reinterpret_cast, for basic types, use the constructor form:
\c {int(a)} instead of \c {(int)a}. For more information, see \l{Casting}. \c {int(a)} instead of \c {(int)a}. For more information, see \l{Casting}.
\o No float comparisons (\c{-Wfloat-equal}). Use \c qFuzzyCompare to compare \li No float comparisons (\c{-Wfloat-equal}). Use \c qFuzzyCompare to compare
values with a delta. Use \c qIsNull to check whether a float is values with a delta. Use \c qIsNull to check whether a float is
binary 0, instead of comparing it to 0.0, or, preferred, move binary 0, instead of comparing it to 0.0, or, preferred, move
such code into an implementation file. such code into an implementation file.
\o Do not hide virtual methods in subclasses (\{-Woverloaded-virtual}). \li Do not hide virtual methods in subclasses (\{-Woverloaded-virtual}).
If the baseclass A has a virtual \c {int val()} and subclass B an If the baseclass A has a virtual \c {int val()} and subclass B an
overload with the same name, \c {int val(int x)}, the A \c val function overload with the same name, \c {int val(int x)}, the A \c val function
is hidden. Use the \c using keyword to make it visible again, and is hidden. Use the \c using keyword to make it visible again, and
@@ -870,14 +870,14 @@
}; };
\endcode \endcode
\o Do not shadow variables (\c{-Wshadow}). \li Do not shadow variables (\c{-Wshadow}).
\o Avoid things like \c {this->x = x;} if possible. \li Avoid things like \c {this->x = x;} if possible.
\o Do not give variables the same name as functions declared in \li Do not give variables the same name as functions declared in
your class. your class.
\o To improve code readability, always check whether a preprocessor \li To improve code readability, always check whether a preprocessor
variable is defined before probing its value (\c{-Wundef}). variable is defined before probing its value (\c{-Wundef}).
\code \code
@@ -892,7 +892,7 @@
#if Foo - 0 == 0 #if Foo - 0 == 0
\endcode \endcode
\o When checking for a preprocessor define using the \c{defined} \li When checking for a preprocessor define using the \c{defined}
operator, always include the variable name in parentheses. operator, always include the variable name in parentheses.
\code \code

View File

@@ -44,22 +44,22 @@
\section1 Basics \section1 Basics
\list \list
\o \l{Getting and Building Qt Creator} \li \l{Getting and Building Qt Creator}
\o \l{Creating Your First Plugin} \li \l{Creating Your First Plugin}
\o \l{Plugin Specifications} \li \l{Plugin Specifications}
\o \l{Plugin Life Cycle} \li \l{Plugin Life Cycle}
\endlist \endlist
\section1 Design Principles \section1 Design Principles
\list \list
\o \l{The Plugin Manager, the Object Pool, and Registered Objects} \li \l{The Plugin Manager, the Object Pool, and Registered Objects}
\o \l{Aggregations} \li \l{Aggregations}
\o \l{Extending and Providing Interfaces} \li \l{Extending and Providing Interfaces}
\endlist \endlist
\section1 Creating 3rd-Party Plugins \section1 Creating 3rd-Party Plugins
\list \list
\o \l{A Note on Binary Compatibility} \li \l{A Note on Binary Compatibility}
\o \l{Creating User-Installable Plugins} \li \l{Creating User-Installable Plugins}
\endlist \endlist
*/ */

View File

@@ -49,19 +49,19 @@
\table \table
\header \header
\o Tag \li Tag
\o Meaning \li Meaning
\row \row
\o externaltool \li externaltool
\o Root element in the XML file that specifies an external tool. \li Root element in the XML file that specifies an external tool.
\endtable \endtable
\table \table
\header \header
\o Attribute \li Attribute
\o Meaning \li Meaning
\row \row
\o id \li id
\o A string that identifies the external tool. \li A string that identifies the external tool.
Two tools cannot have the same id. Required. Two tools cannot have the same id. Required.
\endtable \endtable
@@ -74,17 +74,17 @@
\table \table
\header \header
\o Tag \li Tag
\o Meaning \li Meaning
\row \row
\o description \li description
\o Short, one-line description of what the tool is for. Required. \li Short, one-line description of what the tool is for. Required.
\row \row
\o displayname \li displayname
\o Name to show in the menu item for the tool. Required. \li Name to show in the menu item for the tool. Required.
\row \row
\o category \li category
\o Name of the category to show the tool in. \li Name of the category to show the tool in.
This is the name of the sub menu of the \c { Tools > External } This is the name of the sub menu of the \c { Tools > External }
menu where the tool is placed. For example, specify the value menu where the tool is placed. For example, specify the value
\c "Text" to display the tool in the \c { Tools > External > Text } \c "Text" to display the tool in the \c { Tools > External > Text }
@@ -92,11 +92,11 @@
\endtable \endtable
\table \table
\header \header
\o Attribute \li Attribute
\o Meaning \li Meaning
\row \row
\o xml:lang \li xml:lang
\o Language code (such as, \c "en" or \c "de") of the language that is used for \li Language code (such as, \c "en" or \c "de") of the language that is used for
the description, display name, or category. Optional. the description, display name, or category. Optional.
\endtable \endtable
@@ -107,27 +107,27 @@
\table \table
\header \header
\o Tag \li Tag
\o Meaning \li Meaning
\row \row
\o executable \li executable
\o Encloses subtags that specify what to run and which parameters to use. Required. \li Encloses subtags that specify what to run and which parameters to use. Required.
\endtable \endtable
\table \table
\header \header
\o Attribute \li Attribute
\o Meaning \li Meaning
\row \row
\o output \li output
\o Specifies how to handle the tool's standard output stream. \li Specifies how to handle the tool's standard output stream.
Defaults to \c ShowInPane. Optional. Defaults to \c ShowInPane. Optional.
\row \row
\o error \li error
\o Specifies how to handle the tool's standard error stream. \li Specifies how to handle the tool's standard error stream.
Defaults to \c ShowInPane. Optional. Defaults to \c ShowInPane. Optional.
\row \row
\o modifiesdocument \li modifiesdocument
\o Specifies whether Qt Creator should expect changes to the current \li Specifies whether Qt Creator should expect changes to the current
document. If this flag is set, Qt Creator prompts users to save document. If this flag is set, Qt Creator prompts users to save
changes to the current document before running the tool, changes to the current document before running the tool,
and silently reloads the current document after the tool has finished. and silently reloads the current document after the tool has finished.
@@ -140,28 +140,28 @@
\table \table
\header \header
\o Subtag \li Subtag
\o Meaning \li Meaning
\row \row
\o path \li path
\o File path to the executable to run, including filename. If you \li File path to the executable to run, including filename. If you
specify the executable name without a path, Qt creator checks the specify the executable name without a path, Qt creator checks the
system PATH environment variable for a path to the executable. You system PATH environment variable for a path to the executable. You
can specify the path multiple times. Qt Creator tries to resolve the can specify the path multiple times. Qt Creator tries to resolve the
references in the given order and runs the first executable that it references in the given order and runs the first executable that it
finds. Required. finds. Required.
\row \row
\o arguments \li arguments
\o Command line arguments for the executable. Specify the string in the \li Command line arguments for the executable. Specify the string in the
same format (with respect to quoting and argument splitting, for same format (with respect to quoting and argument splitting, for
example) as you would specify it on the command line of the platform example) as you would specify it on the command line of the platform
the tool runs on. Optional. the tool runs on. Optional.
\row \row
\o workingdirectory \li workingdirectory
\o The working directory for the executable. Optional. \li The working directory for the executable. Optional.
\row \row
\o input \li input
\o A potentially multiline string that is passed to the tool via standard input stream. \li A potentially multiline string that is passed to the tool via standard input stream.
\endtable \endtable
\section1 Example \section1 Example

View File

@@ -36,7 +36,7 @@
your plugin with. your plugin with.
\list 1 \list 1
\o Select \gui{File > New File or Project > Libraries > Qt Creator Plugin > Choose}. \li Select \gui{File > New File or Project > Libraries > Qt Creator Plugin > Choose}.
\image firstplugin-wizard.png "Choose the \QC Plugin Wizard" \image firstplugin-wizard.png "Choose the \QC Plugin Wizard"
@@ -44,7 +44,7 @@
\image firstplugin-nameandpath.png "Choose Name and Place of the Project" \image firstplugin-nameandpath.png "Choose Name and Place of the Project"
\o Give your project a name and specify in which path \li Give your project a name and specify in which path
this project will be created. The actual plugin's name can be different this project will be created. The actual plugin's name can be different
from the project name. You will choose that name later in the wizard. from the project name. You will choose that name later in the wizard.
Continue to the next page. Continue to the next page.
@@ -53,7 +53,7 @@
\image firstplugin-kitselection.png "Choose the kit to build and run your project with" \image firstplugin-kitselection.png "Choose the kit to build and run your project with"
\o Select the \l{glossary-buildandrun-kit}{kit} to build and run your project with. \li Select the \l{glossary-buildandrun-kit}{kit} to build and run your project with.
For a \QC plugin this needs to be a kit with \gui{Desktop} device type, For a \QC plugin this needs to be a kit with \gui{Desktop} device type,
and a Qt version that is compatible with the Qt version that your and a Qt version that is compatible with the Qt version that your
\QC was built with (in the best case the exact same build). \QC was built with (in the best case the exact same build).
@@ -65,35 +65,35 @@
\image firstplugin-pluginsetup.png "Specify Your Plugin Details" \image firstplugin-pluginsetup.png "Specify Your Plugin Details"
\o In the \gui{Plugin name} field, type \gui{Example}. The name of the plugin \li In the \gui{Plugin name} field, type \gui{Example}. The name of the plugin
is used as its identifier, and also is the base for the file names and is used as its identifier, and also is the base for the file names and
classes in the code. classes in the code.
\o The values of the following fields are mainly informational, and \li The values of the following fields are mainly informational, and
are shown in the detailed view in \QC's plugin overview are shown in the detailed view in \QC's plugin overview
(\gui{Help > About Plugins}, or \gui{Qt Creator > About Plugins} (\gui{Help > About Plugins}, or \gui{Qt Creator > About Plugins}
on Mac). on Mac).
\list \list
\o \gui{Vendor name} is a short one-word name of the company \li \gui{Vendor name} is a short one-word name of the company
or organization that created the plugin. This is also used for or organization that created the plugin. This is also used for
the path name where the plugin will be deployed to. the path name where the plugin will be deployed to.
\o \gui{Copyright} is a one-line, short copyright string. \li \gui{Copyright} is a one-line, short copyright string.
\o \gui{License} is a multi-line license text (but shouldn't be pages over pages long, \li \gui{License} is a multi-line license text (but shouldn't be pages over pages long,
since the interface doesn't allow nice reading of long texts). since the interface doesn't allow nice reading of long texts).
\o \gui{Description} is a relatively short, but \li \gui{Description} is a relatively short, but
possibly multi-line description of what the plugin does. possibly multi-line description of what the plugin does.
\o \gui{URL} is a website where the user can find more \li \gui{URL} is a website where the user can find more
information about the plugin and/or organization providing it. information about the plugin and/or organization providing it.
\endlist \endlist
\o Set the \gui{Qt Creator sources} and \gui{Qt Creator build} fields to \li Set the \gui{Qt Creator sources} and \gui{Qt Creator build} fields to
the source and build directory of the \QC the source and build directory of the \QC
instance you want to use to test your plugin with, respectively. instance you want to use to test your plugin with, respectively.
If you don't do that correctly you will get compile errors for your If you don't do that correctly you will get compile errors for your
plugin, and your plugin might not show up in \QC at all. plugin, and your plugin might not show up in \QC at all.
\o In the \gui{Deploy into} list, select \gui{Qt Creator build}. This sets \li In the \gui{Deploy into} list, select \gui{Qt Creator build}. This sets
your .pro file up to deploy your plugin directly into your \QC build's your .pro file up to deploy your plugin directly into your \QC build's
plugin directory (requires you to have write permissions there). plugin directory (requires you to have write permissions there).
The other option, \gui{Local user settings}, sets your .pro file up to The other option, \gui{Local user settings}, sets your .pro file up to
@@ -108,7 +108,7 @@
\image firstplugin-summary.png "Summary of Created Files" \image firstplugin-summary.png "Summary of Created Files"
\o Review the files that will be created, choose a version control \li Review the files that will be created, choose a version control
system that \QC should use for your project (always a good idea!), system that \QC should use for your project (always a good idea!),
and finish the wizard. and finish the wizard.
\endlist \endlist
@@ -138,26 +138,26 @@
\table \table
\header \header
\o File \li File
\o Role \li Role
\row \row
\o \c{Example.pluginspec.in} \li \c{Example.pluginspec.in}
\o Template plugin specification. QMake creates a \c{Example.pluginspec} \li Template plugin specification. QMake creates a \c{Example.pluginspec}
from this file, which is read by \QC to find out about the plugin. from this file, which is read by \QC to find out about the plugin.
\row \row
\o \c{example.pro} \li \c{example.pro}
\o Project file, used by QMake to generate a Makefile that then is used to \li Project file, used by QMake to generate a Makefile that then is used to
build the plugin. build the plugin.
\row \row
\o \c{example_global.h} \li \c{example_global.h}
\o Contains macro definitions that are useful when this plugin should export \li Contains macro definitions that are useful when this plugin should export
symbols to other plugins. symbols to other plugins.
\row \row
\o \c{exampleconstants.h} \li \c{exampleconstants.h}
\o Header defining constants used by the plugin code. \li Header defining constants used by the plugin code.
\row \row
\o \c{exampleplugin.h/.cpp} \li \c{exampleplugin.h/.cpp}
\o C++ header and source files that define the plugin class that will be \li C++ header and source files that define the plugin class that will be
instanciated and run by \QC's plugin manager. instanciated and run by \QC's plugin manager.
\endtable \endtable

View File

@@ -27,11 +27,11 @@
When you start \QC, the plugin manager does the following: When you start \QC, the plugin manager does the following:
\list 1 \list 1
\o Looks in its search paths for \li Looks in its search paths for
all .pluginspec files, and reads them. This is the first point where all .pluginspec files, and reads them. This is the first point where
loading a plugin can fail in the worst case of a malformed plugin spec. loading a plugin can fail in the worst case of a malformed plugin spec.
\o Creates an instance of the \l{ExtensionSystem::PluginSpec} class for \li Creates an instance of the \l{ExtensionSystem::PluginSpec} class for
each plugin. This class is a container for each plugin. This class is a container for
all the information from the plugin specification, and additionally all the information from the plugin specification, and additionally
tracks the state of the plugin. tracks the state of the plugin.
@@ -40,28 +40,28 @@
method, or, after a plugin is loaded, through the plugin's method, or, after a plugin is loaded, through the plugin's
\l{ExtensionSystem::IPlugin::pluginSpec()}{pluginSpec()} method. \l{ExtensionSystem::IPlugin::pluginSpec()}{pluginSpec()} method.
\o Sets the plugins to \c Read state. \li Sets the plugins to \c Read state.
\o Verifies that the dependencies of each plugin \li Verifies that the dependencies of each plugin
exist and are compatible. For more information about plugin dependencies, exist and are compatible. For more information about plugin dependencies,
see \l{Plugin Specifications}. see \l{Plugin Specifications}.
\o Sets the plugins to \c Resolved state. \li Sets the plugins to \c Resolved state.
\o Sorts all plugins into a list that we call the \e{load queue}, where the \li Sorts all plugins into a list that we call the \e{load queue}, where the
dependencies of a plugin are positioned after the plugin dependencies of a plugin are positioned after the plugin
(but not necessarily \e directly after the plugin). (but not necessarily \e directly after the plugin).
It will make sure that we load It will make sure that we load
and initialize the plugins in proper order. and initialize the plugins in proper order.
\o Loads the plugins' libraries, and creates their IPlugin instances \li Loads the plugins' libraries, and creates their IPlugin instances
in the order of the load queue. At this point the in the order of the load queue. At this point the
plugin constructors are called. Plugins that other plugins depend on plugin constructors are called. Plugins that other plugins depend on
are created first. are created first.
\o Sets the plugins to \c Loaded state. \li Sets the plugins to \c Loaded state.
\o Calls the \l{ExtensionSystem::IPlugin::initialize()}{initialize()} methods of \li Calls the \l{ExtensionSystem::IPlugin::initialize()}{initialize()} methods of
all plugins in the order of the load queue. In the \c initialize method, all plugins in the order of the load queue. In the \c initialize method,
a plugin should make sure that all exported interfaces are set up and available a plugin should make sure that all exported interfaces are set up and available
to other plugins. A plugin can assume that plugins they depend on have set up to other plugins. A plugin can assume that plugins they depend on have set up
@@ -72,16 +72,16 @@
The \l{ExtensionSystem::IPlugin::initialize()}{initialize()} method of a plugin The \l{ExtensionSystem::IPlugin::initialize()}{initialize()} method of a plugin
is a good place for is a good place for
\list \list
\o registering objects in the plugin manager's object pool \li registering objects in the plugin manager's object pool
(see \l{The Plugin Manager, the Object Pool, and Registered Objects}) (see \l{The Plugin Manager, the Object Pool, and Registered Objects})
\o loading settings \li loading settings
\o adding new menus, and new actions to menus \li adding new menus, and new actions to menus
\o connecting to other plugin's signals. \li connecting to other plugin's signals.
\endlist \endlist
\o Sets the plugins to \c Initialized state. \li Sets the plugins to \c Initialized state.
\o Calls the \l{ExtensionSystem::IPlugin::extensionsInitialized()}{extensionsInitialized()} \li Calls the \l{ExtensionSystem::IPlugin::extensionsInitialized()}{extensionsInitialized()}
methods of all plugins in \e reverse order of the load queue. After methods of all plugins in \e reverse order of the load queue. After
the \c extensionsInitialized method, a plugin should be fully initialized, set up the \c extensionsInitialized method, a plugin should be fully initialized, set up
and running. A plugin can assume that plugins that depend on it are fully set up, and running. A plugin can assume that plugins that depend on it are fully set up,
@@ -89,7 +89,7 @@
For example, the \c Core plugin assumes that all plugins have registered For example, the \c Core plugin assumes that all plugins have registered
their actions, and finishes initialization of the action manager. their actions, and finishes initialization of the action manager.
\o Sets the plugins to \c Running state. \li Sets the plugins to \c Running state.
\endlist \endlist
At the end of startup, the \c Core plugin's \l{Core::ICore} sends two signals. At the end of startup, the \c Core plugin's \l{Core::ICore} sends two signals.
@@ -111,7 +111,7 @@
plugin manager starts its shutdown sequence: plugin manager starts its shutdown sequence:
\list 1 \list 1
\o Calls the \l{ExtensionSystem::IPlugin::aboutToShutdown()}{aboutToShutdown()} methods of \li Calls the \l{ExtensionSystem::IPlugin::aboutToShutdown()}{aboutToShutdown()} methods of
all plugins in the order of the load queue. Plugins should perform measures all plugins in the order of the load queue. Plugins should perform measures
for speeding up the actual shutdown here, like disconnecting signals that for speeding up the actual shutdown here, like disconnecting signals that
would otherwise needlessly be called. would otherwise needlessly be called.
@@ -122,7 +122,7 @@
event loop running, until all plugins requesting AsynchronousShutdown have sent event loop running, until all plugins requesting AsynchronousShutdown have sent
the asynchronousShutdownFinished() signal. the asynchronousShutdownFinished() signal.
\o Destroys all plugins by deleting their \l{ExtensionSystem::IPlugin} \li Destroys all plugins by deleting their \l{ExtensionSystem::IPlugin}
instances in \e reverse order of the load queue. At this point the plugin destructors instances in \e reverse order of the load queue. At this point the plugin destructors
are called. Plugins should clean up after themselves by freeing memory and other resources. are called. Plugins should clean up after themselves by freeing memory and other resources.
\endlist \endlist

View File

@@ -35,31 +35,31 @@
and \c disabledByDefault. and \c disabledByDefault.
\table \table
\header \header
\o Tag \li Tag
\o Meaning \li Meaning
\row \row
\o plugin \li plugin
\o Root element in a plugin's XML file. \li Root element in a plugin's XML file.
\endtable \endtable
\table \table
\header \header
\o Attribute \li Attribute
\o Meaning \li Meaning
\row \row
\o name \li name
\o This is used as an identifier for the plugin and can e.g. \li This is used as an identifier for the plugin and can e.g.
be referenced in other plugin's dependencies. It is be referenced in other plugin's dependencies. It is
also used to construct the name of the plugin library also used to construct the name of the plugin library
as \c{lib[name].[dll|.so|.dylib]}. (Depending on platform. as \c{lib[name].[dll|.so|.dylib]}. (Depending on platform.
If you use the same string as the \c TARGET in your plugin's If you use the same string as the \c TARGET in your plugin's
.pro-file, you are fine.) .pro-file, you are fine.)
\row \row
\o version \li version
\o Version string in the form \c{x.y.z_n}, used for identifying \li Version string in the form \c{x.y.z_n}, used for identifying
the plugin. Also see \l{A Note on Plugin Versions}. the plugin. Also see \l{A Note on Plugin Versions}.
\row \row
\o compatVersion \li compatVersion
\o Optional. If not given, it is implicitly \li Optional. If not given, it is implicitly
set to the same value as \c version. The compatibility version set to the same value as \c version. The compatibility version
states which version of this plugin the current version is states which version of this plugin the current version is
binary backward compatible with and is used to resolve dependencies binary backward compatible with and is used to resolve dependencies
@@ -68,14 +68,14 @@
is binary backward compatible with all versions of the plugin down to \c{2.0.0} is binary backward compatible with all versions of the plugin down to \c{2.0.0}
(inclusive). (inclusive).
\row \row
\o experimental \li experimental
\o Optional. Can be \c true or \c false, defaults to \c false. \li Optional. Can be \c true or \c false, defaults to \c false.
Experimental plugins are not loaded by default but must be explicitly Experimental plugins are not loaded by default but must be explicitly
enabled by the user. This attribute should be enabled for new plugins which have the enabled by the user. This attribute should be enabled for new plugins which have the
potential to negatively affect the user experience. potential to negatively affect the user experience.
\row \row
\o disabledByDefault \li disabledByDefault
\o Optional. Can be \c true or \c false, defaults to \c false. \li Optional. Can be \c true or \c false, defaults to \c false.
If set, the respective plugin is not loaded by default but must be explicitly If set, the respective plugin is not loaded by default but must be explicitly
enabled by the user. This should be done for plugins which are not expected enabled by the user. This should be done for plugins which are not expected
to be used by so many people as to justify the additional resource consumption. to be used by so many people as to justify the additional resource consumption.
@@ -88,37 +88,37 @@
are optional. are optional.
\table \table
\header \header
\o Tag \li Tag
\o Meaning \li Meaning
\row \row
\o category \li category
\o Defaults to \c Utilities. Is used to put related plugins \li Defaults to \c Utilities. Is used to put related plugins
under the same tree node in the plugin overview \gui{About Plugins...}. under the same tree node in the plugin overview \gui{About Plugins...}.
\row \row
\o vendor \li vendor
\o String that describes the plugin creator/vendor, \li String that describes the plugin creator/vendor,
like \c{MyCompany}. like \c{MyCompany}.
\row \row
\o copyright \li copyright
\o A short copyright notice, like \c{(C) 2007-2008 MyCompany}. \li A short copyright notice, like \c{(C) 2007-2008 MyCompany}.
\row \row
\o platform \li platform
\o A regular expression that matches the names of the platforms the plugin works on. \li A regular expression that matches the names of the platforms the plugin works on.
Omitting the tag implies that the plugin is loaded on all platforms. Omitting the tag implies that the plugin is loaded on all platforms.
\row \row
\o license \li license
\o Possibly multi-line license information about the plugin. \li Possibly multi-line license information about the plugin.
Should still be kept relatively short, since the UI is not Should still be kept relatively short, since the UI is not
designed for long texts. designed for long texts.
\row \row
\o description \li description
\o Possibly multi-line description of what the plugin is supposed \li Possibly multi-line description of what the plugin is supposed
to provide. to provide.
Should still be kept relatively short, since the UI is not Should still be kept relatively short, since the UI is not
designed for long texts. designed for long texts.
\row \row
\o url \li url
\o Link to further information about the plugin, like \li Link to further information about the plugin, like
\c{http://www.mycompany-online.com/products/greatplugin}. \c{http://www.mycompany-online.com/products/greatplugin}.
\endtable \endtable
@@ -141,8 +141,8 @@
(as defined in the attributes of the plugin's \c plugin tag) matches (as defined in the attributes of the plugin's \c plugin tag) matches
the dependency if the dependency if
\list \list
\o its \c name matches \c dependencyName, and \li its \c name matches \c dependencyName, and
\o \c {compatVersion <= dependencyVersion <= version}. \li \c {compatVersion <= dependencyVersion <= version}.
\endlist \endlist
For example a dependency For example a dependency
\code \code
@@ -157,27 +157,27 @@
\table \table
\header \header
\o Tag \li Tag
\o Meaning \li Meaning
\row \row
\o dependency \li dependency
\o Describes a dependency on another plugin. \li Describes a dependency on another plugin.
\endtable \endtable
\table \table
\header \header
\o Attribute \li Attribute
\o Meaning \li Meaning
\row \row
\o name \li name
\o The name of the plugin, on which this plugin relies. \li The name of the plugin, on which this plugin relies.
\row \row
\o version \li version
\o The version to which the plugin must be compatible to \li The version to which the plugin must be compatible to
fill the dependency, in the form \c{x.y.z_n}. fill the dependency, in the form \c{x.y.z_n}.
Can be empty if the version does not matter. Can be empty if the version does not matter.
\row \row
\o type \li type
\o Optional. Value \c required or \c optional. Defines if the dependency is \li Optional. Value \c required or \c optional. Defines if the dependency is
a hard requirement or optional. Defaults to \c{required}. a hard requirement or optional. Defaults to \c{required}.
\endtable \endtable
@@ -187,9 +187,9 @@
\c {type="optional"} attribute to the \c dependency tag: \c {type="optional"} attribute to the \c dependency tag:
\list \list
\o If the dependency can be resolved, the plugin and \li If the dependency can be resolved, the plugin and
its dependency are loaded and initialized as for \c required dependencies. its dependency are loaded and initialized as for \c required dependencies.
\o If the dependency cannot be resolved, the plugin is loaded and initialized \li If the dependency cannot be resolved, the plugin is loaded and initialized
as if the dependency was not declared at all. as if the dependency was not declared at all.
\endlist \endlist
@@ -221,23 +221,23 @@
\table \table
\header \header
\o Tag \li Tag
\o Meaning \li Meaning
\row \row
\o argument \li argument
\o Describes a command line argument that the plugin wants to handle. \li Describes a command line argument that the plugin wants to handle.
\endtable \endtable
\table \table
\header \header
\o Attribute \li Attribute
\o Meaning \li Meaning
\row \row
\o name \li name
\o The command line argument itself, including the \c - prefix, e.g. \li The command line argument itself, including the \c - prefix, e.g.
\c{-my-parameter}. \c{-my-parameter}.
\row \row
\o parameter \li parameter
\o Optional. If this is given, the command line argument expects an \li Optional. If this is given, the command line argument expects an
additional parameter, e.g. \c{-my-parameter somevalue}. The additional parameter, e.g. \c{-my-parameter somevalue}. The
value of this attribute is used as a very short description of the value of this attribute is used as a very short description of the
parameter for the user. parameter for the user.

View File

@@ -44,48 +44,48 @@
\table \table
\header \header
\o Method \li Method
\o Description \li Description
\row \row
\o instance() \li instance()
\o Returns the singleton plugin manager instance, for example for connecting to signals. \li Returns the singleton plugin manager instance, for example for connecting to signals.
\row \row
\o addObject() \li addObject()
\o Registers an object in the object pool. \li Registers an object in the object pool.
Also available through ExtensionSystem::IPlugin::addObject(). Also available through ExtensionSystem::IPlugin::addObject().
\row \row
\o removeObject() \li removeObject()
\o Unregisters an object from the object pool. \li Unregisters an object from the object pool.
Also available through ExtensionSystem::IPlugin::removeObject(). Also available through ExtensionSystem::IPlugin::removeObject().
\row \row
\o getObjects<T>() \li getObjects<T>()
\o Returns all objects of type T that are registered in the object pool. \li Returns all objects of type T that are registered in the object pool.
This respects \l{Aggregations}. This respects \l{Aggregations}.
\row \row
\o getObject<T>() \li getObject<T>()
\o Returns one object of type T that is registered in the object pool. \li Returns one object of type T that is registered in the object pool.
This respects \l{Aggregations}. This respects \l{Aggregations}.
\row \row
\o getObjectByName(const QString &name) \li getObjectByName(const QString &name)
\o Returns one object with the given object name that is registered in the object pool. \li Returns one object with the given object name that is registered in the object pool.
\row \row
\o getObjectByClassName(const QString &className) \li getObjectByClassName(const QString &className)
\o Returns one object with the given class name that is registered in the object pool. \li Returns one object with the given class name that is registered in the object pool.
\endtable \endtable
\table \table
\header \header
\o Signal \li Signal
\o Description \li Description
\row \row
\o objectAdded(QObject *object) \li objectAdded(QObject *object)
\o Sent after an object is registered in the object pool. \li Sent after an object is registered in the object pool.
\row \row
\o aboutToRemoveObject(QObject *object) \li aboutToRemoveObject(QObject *object)
\o Sent just before an object is unregistered from the object pool. \li Sent just before an object is unregistered from the object pool.
\row \row
\o initializationDone() \li initializationDone()
\o Sent when plugins are running and all delayed initialization is done. \li Sent when plugins are running and all delayed initialization is done.
\endtable \endtable
\target object pool \target object pool

View File

@@ -36,26 +36,26 @@
\table \table
\header \header
\o Library Name \li Library Name
\o Description \li Description
\row \row
\o \l{Aggregation} \li \l{Aggregation}
\o Adds functionality for "glueing" QObjects of different \li Adds functionality for "glueing" QObjects of different
types together, so you can "cast" between them. types together, so you can "cast" between them.
\row \row
\o \l{ExtensionSystem} \li \l{ExtensionSystem}
\o Implements the plugin loader framework. Provides a base class for plugins and \li Implements the plugin loader framework. Provides a base class for plugins and
basic mechanisms for plugin interaction like an object pool. basic mechanisms for plugin interaction like an object pool.
\row \row
\o \l{Utils} \li \l{Utils}
\o General utility library. \li General utility library.
\row \row
\o \l{QmlJS} \li \l{QmlJS}
\o QML and JavaScript language support library. \li QML and JavaScript language support library.
\endtable \endtable
@@ -63,12 +63,12 @@
\table \table
\header \header
\o Library Name \li Library Name
\o Description \li Description
\row \row
\o \l{qtcreatorcdbext} \li \l{qtcreatorcdbext}
\o Windows CDB debugger extension \li Windows CDB debugger extension
\endtable \endtable
@@ -82,38 +82,37 @@
\table \table
\header \header
\o Plugin Name \li Plugin Name
\o Description \li Description
\row \row
\o \l{Core} \li \l{Core}
\o The core plugin. Provides the main window and managers for editors, \li The core plugin. Provides the main window and managers for editors,
actions, mode windows and files, just to mention the most important ones. actions, mode windows and files, just to mention the most important ones.
\row \row
\o \l{ProjectExplorer} \li \l{ProjectExplorer}
\o The project explorer plugin. Provides base classes for \li The project explorer plugin. Provides base classes for project handling.
project handling.
\row \row
\o \l{Find} \li \l{Find}
\o Support for searching text in arbitrary widgets, and arbitrary other things. \li Support for searching text in arbitrary widgets, and arbitrary other things.
\row \row
\o \l{Locator} \li \l{Locator}
\o Hooks for providing content for Locator. \li Hooks for providing content for Locator.
\row \row
\o \l{Debugger} \li \l{Debugger}
\o Debugging functionality. \li Debugging functionality.
\row \row
\o \l{VcsBase} \li \l{VcsBase}
\o Base classes for version control support. \li Base classes for version control support.
\row \row
\o \l{TextEditor} \li \l{TextEditor}
\o This is where everything starts if you want to create a text editor. Besides \li This is where everything starts if you want to create a text editor. Besides
the base editor itself, this plugin contains APIs for supporting functionality the base editor itself, this plugin contains APIs for supporting functionality
like \l{Snippets}{snippets}, highlighting, \l{CodeAssist}{code assist}, indentation like \l{Snippets}{snippets}, highlighting, \l{CodeAssist}{code assist}, indentation
and style, and others. and style, and others.
@@ -159,90 +158,91 @@
\table \table
\header \header
\o Task \li Task
\o Details \li Details
\o API \li API
\row \row
\o Add a menu or menu item. \li Add a menu or menu item.
\o You can extend existing menus or create new ones. \li You can extend existing menus or create new ones.
\o \l{Core::ActionManager}, \l{Core::Command} \li \l{Core::ActionManager}, \l{Core::Command}
\row \row
\o Add a configurable keyboard shortcut. \li Add a configurable keyboard shortcut.
\o Registering shortcuts makes it possible for users to configure them in \li Registering shortcuts makes it possible for users to configure them in
the common shortcut settings dialog. the common shortcut settings dialog.
\o \l{Core::ActionManager}, \l{Core::Command} \li \l{Core::ActionManager}, \l{Core::Command}
\row \row
\o Add a mode. \li Add a mode.
\o Modes correspond to complete screens of controls, specialized for a task. \li Modes correspond to complete screens of controls, specialized for a task.
\o \l{Core::IMode} \li \l{Core::IMode}
\row \row
\o Add a new editor type. \li Add a new editor type.
\o Such as an editor for XML files. \li Such as an editor for XML files.
\o \l{Core::IEditorFactory}, \l{Core::IEditor}, \l{Core::IDocument} \li \l{Core::IEditorFactory}, \l{Core::IEditor}, \l{Core::IDocument}
\row \row
\o Add a new wizard. \li Add a new wizard.
\o You can extend the wizards in File > New File or Project with your own \li You can extend the wizards in File > New File or Project with your own
file and project templates. file and project templates.
\o \l{Core::IWizard}, \l{Core::StandardFileWizard}, \li \l{Core::IWizard}, \l{Core::StandardFileWizard},
\l{Core::BaseFileWizard}, \l{Core::BaseFileWizardParameters} \l{Core::BaseFileWizard}, \l{Core::BaseFileWizardParameters}
\row \row
\o Add support for a new version control system. \li Add support for a new version control system.
\o Version control systems integrated in QtCreator are Bazaar, CVS, Git, \li Version control systems integrated in QtCreator are Bazaar, CVS, Git,
Mecurial, Perforce, and Subversion. Mecurial, Perforce, and Subversion.
\o \l{Core::IVersionControl} \li \l{Core::IVersionControl}
\row \row
\o Add a view to the navigation sidebar. \li Add a view to the navigation sidebar.
\o The one which shows the project tree, filesystem, open documents or bookmarks. \li The one which shows the project tree, filesystem, open documents or bookmarks.
\o \l{Core::INavigationWidgetFactory} \li \l{Core::INavigationWidgetFactory}
\row \row
\o Add an options page to the \gui Options dialog. \li Add an options page to the \gui Options dialog.
\o Add a new page to existing or new category in Tools > Options. \li Add a new page to existing or new category in Tools > Options.
\o \l{Core::IOptionsPage} \li \l{Core::IOptionsPage}
\row \row
\o Add a find filter to the \gui Find dialog. \li Add a find filter to the \gui Find dialog.
\o Implement any kind of search term based search. \li Implement any kind of search term based search.
\o \l{Find::IFindFilter}, \l{Find::SearchResultWindow} \li \l{Find::IFindFilter}, \l{Find::SearchResultWindow}
\row \row
\o Add support for the find tool bar to a widget. \li Add support for the find tool bar to a widget.
\o The widget that has focus is asked whether it supports text search. You can \li The widget that has focus is asked whether it supports text search. You can
add support for widgets under your control. add support for widgets under your control.
\o \l{Find::IFindSupport}, \l{Find::BaseTextFind} \li \l{Find::IFindSupport}, \l{Find::BaseTextFind}
\row \row
\o Add a completely new project type. \li Add a completely new project type.
\o \li
\o \li
\row \row
\o Add a new type of build step. \li Add a new type of build step.
\o \li
\o \li
\row \row
\o Add a new filter to the locator. \li Add a new filter to the locator.
\o For a text typed in by the user you provide a list of things to show in the popup. When the user selects an entry you are requested to do whatever you want. \li For a text typed in by the user you provide a list of things to show in the popup.
\o \l{Locator::ILocatorFilter}, \l{Locator::FilterEntry}, \l{Locator::BaseFileFilter} When the user selects an entry you are requested to do whatever you want.
\li \l{Locator::ILocatorFilter}, \l{Locator::FilterEntry}, \l{Locator::BaseFileFilter}
\row \row
\o Show a progress indicator for a concurrently running task. \li Show a progress indicator for a concurrently running task.
\o You can show a progress indicator for your tasks in the left hand tool bar, \li You can show a progress indicator for your tasks in the left hand tool bar,
and also in the application icon (on platforms that support it). and also in the application icon (on platforms that support it).
\o \l{Core::ProgressManager}, \l{Core::FutureProgress} \li \l{Core::ProgressManager}, \l{Core::FutureProgress}
\row \row
\o \li
\o \li
\o \li
\endtable \endtable
*/ */

View File

@@ -31,17 +31,17 @@
Implementing wizards requires: Implementing wizards requires:
\list \list
\o Deciding on a base class: \li Deciding on a base class:
\list \list
\o Core::IWizard is a very generic interface that does \li Core::IWizard is a very generic interface that does
not make any assumption about what the wizard does and not make any assumption about what the wizard does and
what its UI looks like. what its UI looks like.
\o Core::BaseFileWizard should be used for wizards that \li Core::BaseFileWizard should be used for wizards that
generate files using a UI based on Utils::Wizard. generate files using a UI based on Utils::Wizard.
\endlist \endlist
\o Providing a set of parameters that determine how the wizard shows up \li Providing a set of parameters that determine how the wizard shows up
in the list of wizards in the \gui{New File or Project} dialog. in the list of wizards in the \gui{New File or Project} dialog.
When deriving from Core::IWizard, virtual functions returning the When deriving from Core::IWizard, virtual functions returning the
@@ -52,13 +52,13 @@
on which the parameters can be set. This allows for easy creation on which the parameters can be set. This allows for easy creation
of several wizard instances with slightly different parameters. of several wizard instances with slightly different parameters.
\o Implementing the wizard UI \li Implementing the wizard UI
Typically, this will be a class derived from Utils::Wizard. Typically, this will be a class derived from Utils::Wizard.
Utils::Wizard extends QWizard with the functionality to show a progress Utils::Wizard extends QWizard with the functionality to show a progress
bar on the left. bar on the left.
\o Implementing the wizard functionality \li Implementing the wizard functionality
When deriving from Core::BaseFileWizard, a list of Core::GeneratedFile When deriving from Core::BaseFileWizard, a list of Core::GeneratedFile
needs to be populated with the files and their contents. needs to be populated with the files and their contents.
@@ -72,44 +72,44 @@
\table \table
\header \header
\o Class \li Class
\o Description \li Description
\row \row
\o Core::IWizard \li Core::IWizard
\o Qt Creator wizard interface, implementations of which are registered with \li Qt Creator wizard interface, implementations of which are registered with
ExtensionSystem::PluginManager. ExtensionSystem::PluginManager.
\row \row
\o Core::BaseFileWizard \li Core::BaseFileWizard
\o Inherits Core::IWizard and provides a base class for generating files with a UI \li Inherits Core::IWizard and provides a base class for generating files with a UI
based on QWizard. based on QWizard.
\row \row
\o Core::BaseFileWizardParameters \li Core::BaseFileWizardParameters
\o Contains parameters for Core::BaseFileWizard. \li Contains parameters for Core::BaseFileWizard.
\row \row
\o Core::GeneratedFile \li Core::GeneratedFile
\o A file as produced by Core::BaseFileWizard, containing name, contents and some \li A file as produced by Core::BaseFileWizard, containing name, contents and some
attributes. attributes.
\row \row
\o Utils::FileWizardPage \li Utils::FileWizardPage
\o Introductory wizard page asking for file name and path. \li Introductory wizard page asking for file name and path.
\row \row
\o Utils::FileWizardDialog \li Utils::FileWizardDialog
\o A wizard dialog presenting a Utils::FileWizardPage, which can be extended \li A wizard dialog presenting a Utils::FileWizardPage, which can be extended
by custom pages. by custom pages.
\row \row
\o Utils::ProjectIntroPage \li Utils::ProjectIntroPage
\o Introductory wizard page asking for project name and path. \li Introductory wizard page asking for project name and path.
\row \row
\o ProjectExplorer::BaseProjectWizardDialog \li ProjectExplorer::BaseProjectWizardDialog
\o Base class for project wizard dialogs, presenting \li Base class for project wizard dialogs, presenting
a Utils::ProjectIntroPage. a Utils::ProjectIntroPage.
\endtable \endtable
@@ -123,45 +123,45 @@
\table \table
\header \header
\o Type \li Type
\o Parameter Name \li Parameter Name
\o Description \li Description
\row \row
\o Core::IWizard::WizardKind \li Core::IWizard::WizardKind
\o kind \li kind
\o Enumeration value that indicates the type of the wizard (project, class, file). \li Enumeration value that indicates the type of the wizard (project, class, file).
\row \row
\o QIcon \li QIcon
\o icon \li icon
\o Icon to show. \li Icon to show.
\row \row
\o QString \li QString
\o description \li description
\o Descriptive text. \li Descriptive text.
\row \row
\o QString \li QString
\o displayName \li displayName
\o Name to be shown in the list. \li Name to be shown in the list.
\row \row
\o QString \li QString
\o id \li id
\o Unique identifier for the wizard. It also determines the order within a category. \li Unique identifier for the wizard. It also determines the order within a category.
\row \row
\o QString \li QString
\o category \li category
\o Identifier of the category under which the wizard is to be listed. It also \li Identifier of the category under which the wizard is to be listed. It also
determines the order of the categories. determines the order of the categories.
\ \
\row \row
\o QString \li QString
\o displayCategory \li displayCategory
\o Description of the category. \li Description of the category.
\endtable \endtable
\section1 Example \section1 Example

View File

@@ -53,9 +53,9 @@
to which you can add your own snippets. to which you can add your own snippets.
\list \list
\o \l{http://doc.qt.digia.com/qtcreator/creator-completing-code.html#editing-code-snippets} \li \l{http://doc.qt.digia.com/qtcreator/creator-completing-code.html#editing-code-snippets}
{Snippets User Interface} {Snippets User Interface}
\o \l{Snippets} {Adding Snippets Groups} \li \l{Snippets} {Adding Snippets Groups}
\endlist \endlist
\section2 File, Class and Project Templates \section2 File, Class and Project Templates
@@ -64,9 +64,9 @@
own own
file and project templates by writing XML definition files for them. file and project templates by writing XML definition files for them.
\list \list
\o \l{http://doc.qt.digia.com/qtcreator/creator-project-wizards.html} \li \l{http://doc.qt.digia.com/qtcreator/creator-project-wizards.html}
{Adding New Custom Wizards} {Adding New Custom Wizards}
\o \l{User Interface Text Guidelines} \li \l{User Interface Text Guidelines}
\endlist \endlist
\section2 Custom Wizards \section2 Custom Wizards
@@ -76,10 +76,10 @@
While this gives you complete control over the wizard, it While this gives you complete control over the wizard, it
also requires you to write most of the UI and the logic yourself. also requires you to write most of the UI and the logic yourself.
\list \list
\o \l{Creating Plugins} \li \l{Creating Plugins}
\o \l{Qt Creator Coding Rules} \li \l{Qt Creator Coding Rules}
\o \l{Creating Wizards in Code} \li \l{Creating Wizards in Code}
\o \l{User Interface Text Guidelines} \li \l{User Interface Text Guidelines}
\endlist \endlist
\section1 Supporting Additional File Types \section1 Supporting Additional File Types
@@ -96,9 +96,9 @@
the MIME type definitions in Qt Creator to your specific setup, the MIME type definitions in Qt Creator to your specific setup,
by adding or removing file extensions and specifying magic headers. by adding or removing file extensions and specifying magic headers.
\list \list
\o \l{http://doc.qt.digia.com/qtcreator/creator-mime-types.html} \li \l{http://doc.qt.digia.com/qtcreator/creator-mime-types.html}
{Editing MIME Types} {Editing MIME Types}
\o \l{http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html} \li \l{http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html}
{MIME Type Specification Files} {MIME Type Specification Files}
\endlist \endlist
@@ -110,9 +110,9 @@
provided by the Kate Editor. You can download highlight definition files provided by the Kate Editor. You can download highlight definition files
for use with Qt Creator and create your own definition files. for use with Qt Creator and create your own definition files.
\list \list
\o \l{http://doc.qt.digia.com/qtcreator/creator-editor-options.html#generic-highlighting} \li \l{http://doc.qt.digia.com/qtcreator/creator-editor-options.html#generic-highlighting}
{Generic Highlighting} {Generic Highlighting}
\o \l{http://kate-editor.org/2005/03/24/writing-a-syntax-highlighting-file/} \li \l{http://kate-editor.org/2005/03/24/writing-a-syntax-highlighting-file/}
{Writing a Syntax Highlighting File} {Writing a Syntax Highlighting File}
\endlist \endlist
@@ -125,10 +125,10 @@
a basis to build on, taking away some of the pain of implementing a basis to build on, taking away some of the pain of implementing
a text editor from the ground up. a text editor from the ground up.
\list \list
\o \l{Creating Plugins} \li \l{Creating Plugins}
\o \l{Qt Creator Coding Rules} \li \l{Qt Creator Coding Rules}
\o \l{Text Editors} \li \l{Text Editors}
\o \l{CodeAssist} {Providing Code Assist} \li \l{CodeAssist} {Providing Code Assist}
\endlist \endlist
\section2 Other Custom Editors \section2 Other Custom Editors
@@ -136,9 +136,9 @@
You can also add a completely custom editor to gain complete You can also add a completely custom editor to gain complete
control over its appearance and behavior. control over its appearance and behavior.
\list \list
\o \l{Creating Plugins} \li \l{Creating Plugins}
\o \l{Qt Creator Coding Rules} \li \l{Qt Creator Coding Rules}
\o \l{Editors} \li \l{Editors}
\endlist \endlist
\section1 Running External Tools \section1 Running External Tools
@@ -162,9 +162,9 @@
to fill a feature suggestion. to fill a feature suggestion.
The tool descriptions are saved as XML files that you can share. The tool descriptions are saved as XML files that you can share.
\list \list
\o \l{http://doc.qt.digia.com/qtcreator/creator-editor-external.html} \li \l{http://doc.qt.digia.com/qtcreator/creator-editor-external.html}
{Using External Tools} {Using External Tools}
\o \l{External Tool Specification Files} \li \l{External Tool Specification Files}
\endlist \endlist
\section2 Complex External Tools \section2 Complex External Tools
@@ -189,13 +189,13 @@
If you need a way to configure the tool in Qt Creator, you can add an If you need a way to configure the tool in Qt Creator, you can add an
\gui Options page for it. \gui Options page for it.
\list \list
\o \l{http://doc.qt.digia.com/qtcreator/creator-editor-external.html} \li \l{http://doc.qt.digia.com/qtcreator/creator-editor-external.html}
{Using External Tools} {Using External Tools}
\o \l{External Tool Specification Files} \li \l{External Tool Specification Files}
\o \l{Creating Plugins} \li \l{Creating Plugins}
\o \l{Qt Creator Coding Rules} \li \l{Qt Creator Coding Rules}
\o \l{Menus and Menu Items} \li \l{Menus and Menu Items}
\o \l{Options Pages} \li \l{Options Pages}
\endlist \endlist
\section3 Interacting with Tool Output \section3 Interacting with Tool Output
@@ -214,39 +214,39 @@
the \gui {Issues} output the \gui {Issues} output
pane. pane.
\list \list
\o \l{http://doc.qt.digia.com/qtcreator/creator-task-lists.html} \li \l{http://doc.qt.digia.com/qtcreator/creator-task-lists.html}
{Showing Task List Files in the Issues Pane} {Showing Task List Files in the Issues Pane}
\o \l{Creating Plugins} \li \l{Creating Plugins}
\o \l{Qt Creator Coding Rules} \li \l{Qt Creator Coding Rules}
\o \l{Menus and Menu Items} \li \l{Menus and Menu Items}
\o \l{Options Pages} \li \l{Options Pages}
\o \l{Editors} \li \l{Editors}
\endlist \endlist
\section1 All Topics \section1 All Topics
\list \list
\o \l{Developing Qt Creator Plugins} \li \l{Developing Qt Creator Plugins}
\list \list
\o \l{Creating Plugins} \li \l{Creating Plugins}
\o \l{Menus and Menu Items} \li \l{Menus and Menu Items}
\o \l{Creating Wizards in Code} \li \l{Creating Wizards in Code}
\o \l{Editors} \li \l{Editors}
\o \l{Text Editors} \li \l{Text Editors}
\o \l{Options Pages} \li \l{Options Pages}
\endlist \endlist
\o Reference \li Reference
\list \list
\o \l{http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html} \li \l{http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html}
{MIME Type Specification Files} {MIME Type Specification Files}
\o \l{External Tool Specification Files} \li \l{External Tool Specification Files}
\o \l{http://kate-editor.org/2005/03/24/writing-a-syntax-highlighting-file/} \li \l{http://kate-editor.org/2005/03/24/writing-a-syntax-highlighting-file/}
{Highlight Definition Files} {Highlight Definition Files}
\o \l{Qt Creator Variables} \li \l{Qt Creator Variables}
\o \l{User Interface Text Guidelines} \li \l{User Interface Text Guidelines}
\o \l{Writing Documentation} \li \l{Writing Documentation}
\o \l{Qt Creator Coding Rules} \li \l{Qt Creator Coding Rules}
\o \l{Qt Creator API Reference} \li \l{Qt Creator API Reference}
\endlist \endlist
\endlist \endlist

View File

@@ -36,13 +36,12 @@
\list \list
\o Overview topic, which describes the purpose of your plugin from the \li Overview topic, which describes the purpose of your plugin from the
viewpoint of \QC users viewpoint of \QC users
\o Procedure topics, which describe how to use your plugin as part of \li Procedure topics, which describe how to use your plugin as part of \QC
\QC
\o Reference topics, which contain information that developers \li Reference topics, which contain information that developers
occasionally need to look up (optional) occasionally need to look up (optional)
\endlist \endlist
@@ -52,10 +51,10 @@
\list \list
\o Overview topic, which describes the architecture and use cases for \li Overview topic, which describes the architecture and use cases for
your plugin from the viewpoint of \QC developers your plugin from the viewpoint of \QC developers
\o API documentation, which is generated from code comments \li API documentation, which is generated from code comments
\endlist \endlist
@@ -123,9 +122,9 @@
\list \list
\o nmake fixnavi (on Windows) \li nmake fixnavi (on Windows)
\o make fixnavi (on Linux) \li make fixnavi (on Linux)
\endlist \endlist
@@ -229,15 +228,15 @@
\list \list
\o Color reduction: Optimal 256 colors palette \li Color reduction: Optimal 256 colors palette
\o Reduce colors to: 256 \li Reduce colors to: 256
\o Best compression (slow) \li Best compression (slow)
\o Color quantization algorithm: NeuQuant neural-net (slow) \li Color quantization algorithm: NeuQuant neural-net (slow)
\o External optimizers: OptiPNG o3 \li External optimizers: OptiPNG o3
\endlist \endlist
@@ -276,8 +275,8 @@
\list \list
\o nmake docs (on Windows) \li nmake docs (on Windows)
\o make docs (on Linux and Mac OS) \li make docs (on Linux and Mac OS)
\endlist \endlist
@@ -296,24 +295,24 @@
\list \list
\o html_docs - build \QC Manual in help format, but do not generate a \li html_docs - build \QC Manual in help format, but do not generate a
help file help file
\o dev_html_docs - build Extending \QC Manual in help format, but do \li dev_html_docs - build Extending \QC Manual in help format, but do
not generate a help file not generate a help file
\o qch_docs - build \QC Manual in help format and generate a help file \li qch_docs - build \QC Manual in help format and generate a help file
(.qch) (.qch)
\o dev_qch_docs - build Extending \QC Manual in help format and \li dev_qch_docs - build Extending \QC Manual in help format and
generate a help file (.qch) generate a help file (.qch)
\o docs_online - build \QC Manual and Extending \QC Manual in online \li docs_online - build \QC Manual and Extending \QC Manual in online
format format
\o html_docs_online - build \QC Manual in online format \li html_docs_online - build \QC Manual in online format
\o dev_html_docs_online - build Extending \QC Manual in online format \li dev_html_docs_online - build Extending \QC Manual in online format
\endlist \endlist

View File

@@ -31,15 +31,15 @@
\list \list
\o Consistent with existing Qt Creator UI terms \li Consistent with existing Qt Creator UI terms
\o Short and concise \li Short and concise
\o Neutral, descriptive, and factually correct \li Neutral, descriptive, and factually correct
\o Unambigious \li Unambigious
\o Translatable into different languages \li Translatable into different languages
\endlist \endlist
@@ -75,20 +75,20 @@
\list \list
\o Use full stops in messages. \li Use full stops in messages.
\o Never user full stops (.) at the end of menu item names. \li Never user full stops (.) at the end of menu item names.
\o Place three full stops (...) at the end of menu item names that \li Place three full stops (...) at the end of menu item names that
open a dialog requiring user action. open a dialog requiring user action.
\o Use exclamation marks (!) only in text that demands extra attention \li Use exclamation marks (!) only in text that demands extra attention
from the user or carries special weight. from the user or carries special weight.
\o Use quotation marks ("") around variable values. For example, \li Use quotation marks ("") around variable values. For example,
\gui {Close Project "qtcreator"}. \gui {Close Project "qtcreator"}.
\o Do not use leading, trailing, or multiple spaces to align text in \li Do not use leading, trailing, or multiple spaces to align text in
messages, as translation tools might not handle them correctly. messages, as translation tools might not handle them correctly.
\endlist \endlist
@@ -139,15 +139,15 @@
\list \list
\o Cannot send log as selected message type. Text is too long. \li Cannot send log as selected message type. Text is too long.
\o Cannot receive image. \li Cannot receive image.
\o Cannot insert picture. Maximum text length is 120 characters. \li Cannot insert picture. Maximum text length is 120 characters.
\o Image name already in use. \li Image name already in use.
\o Folder name already in use. \li Folder name already in use.
\endlist \endlist
@@ -157,9 +157,9 @@
\list \list
\o Example of Book Title Capitalization \li Example of Book Title Capitalization
\o Example of sentence style capitalization \li Example of sentence style capitalization
\endlist \endlist
@@ -175,13 +175,11 @@
\list \list
\o Titles (window, dialog, group box, tab, list view columns, and so \li Titles (window, dialog, group box, tab, list view columns, and so on)
on)
\o Functions (menu items, buttons) \li Functions (menu items, buttons)
\o Selectable items (combobox items, listbox items, tree list items, \li Selectable items (combobox items, listbox items, tree list items, and so on)
and so on)
\endlist \endlist
@@ -193,11 +191,11 @@
\list 1 \list 1
\o Open to-title-case.html in a browser. \li Open to-title-case.html in a browser.
\o Enter the UI text in the field. \li Enter the UI text in the field.
\o Click \gui Convert. \li Click \gui Convert.
\endlist \endlist
@@ -219,13 +217,13 @@
\list \list
\o Labels \li Labels
\o Tool tips \li Tool tips
\o Descriptive text \li Descriptive text
\o Other non-heading or title text \li Other non-heading or title text
\endlist \endlist
@@ -262,11 +260,11 @@
\table \table
\header \header
\o Features of Languages or Writing Systems \li Features of Languages or Writing Systems
\o Impact on Implementation \li Impact on Implementation
\row \row
\o Word order \li Word order
\o Different languages have different word order rules. \li Different languages have different word order rules.
Do not use run-time concatenation. Use complete phrases Do not use run-time concatenation. Use complete phrases
and "%1" formatting instead. For example, use: and "%1" formatting instead. For example, use:
@@ -277,8 +275,8 @@
\c {tr("Foo failed: ") + message} \c {tr("Foo failed: ") + message}
\row \row
\o Singular vs. plural vs. dual forms \li Singular vs. plural vs. dual forms
\o Some languages do not have plural form (for example, Chinese \li Some languages do not have plural form (for example, Chinese
and Japanese), whereas some have a different form for dual. and Japanese), whereas some have a different form for dual.
Allow room for text expansion in the layout design. Some Allow room for text expansion in the layout design. Some
@@ -293,8 +291,8 @@
\c {tr("%1 files found").arg(number)} \c {tr("%1 files found").arg(number)}
\row \row
\o Gender \li Gender
\o Some languages have gender (feminine, masculine, neutral), \li Some languages have gender (feminine, masculine, neutral),
whereas some do not (for example, Finnish) or do not use it whereas some do not (for example, Finnish) or do not use it
extensively (for example, English). extensively (for example, English).
@@ -323,88 +321,87 @@
\table \table
\header \header
\o UI Text \li UI Text
\o Usage \li Usage
\o Conventions \li Conventions
\row \row
\o Context menu \li Context menu
\o Opens when users right-click on the screen. Contents depend on \li Opens when users right-click on the screen. Contents depend on
the context. the context.
\image qtcreator-context-menu.png "Context menu" \image qtcreator-context-menu.png "Context menu"
\o You can add menu items that are relevant in a particular \li You can add menu items that are relevant in a particular
context. Follow the conventions for naming menu items. context. Follow the conventions for naming menu items.
\row \row
\o Dialog \li Dialog
\o User interface element that usually contains a number of \li User interface element that usually contains a number of
choices or allows the user to give input to the application. choices or allows the user to give input to the application.
Opens when users select a menu item or button. Opens when users select a menu item or button.
\image qtcreator-dialog.png "Dialog" \image qtcreator-dialog.png "Dialog"
\o Use the menu item or button name as the dialog name. You can \li Use the menu item or button name as the dialog name. You can
also combine the menu item or button name and the name of the also combine the menu item or button name and the name of the
object that is managed in the dialog. For example, the \gui Add object that is managed in the dialog. For example, the \gui Add
button in the \gui Documentation options opens the button in the \gui Documentation options opens the
\gui {Add Documentation} dialog. \gui {Add Documentation} dialog.
\row \row
\o Locator \li Locator
\o Allows you to browse not only files, but any items defined by \li Allows you to browse not only files, but any items defined by
locator filters. locator filters.
\image qtcreator-locator.png "Locator" \image qtcreator-locator.png "Locator"
\o You can add locator filters. Check that the filter is not \li You can add locator filters. Check that the filter is not
already in use and give the filter a descriptive name. already in use and give the filter a descriptive name.
\row \row
\o Menu \li Menu
\o Contains menu items that represent commands or options and that \li Contains menu items that represent commands or options and that
are logically grouped and displayed. A menu can also contain are logically grouped and displayed. A menu can also contain
submenus. submenus.
\image qtcreator-menu.png "Menu" \image qtcreator-menu.png "Menu"
\o You can create new menus. Use short, but descriptive names that \li You can create new menus. Use short, but descriptive names that
are consistent with existing menu names. Use unambigious names. are consistent with existing menu names. Use unambigious names.
\row \row
\o Menu item \li Menu item
\o Represents a command or an option for users to choose. \li Represents a command or an option for users to choose.
\image qtcreator-menu-item.png "Menu item" \image qtcreator-menu-item.png "Menu item"
\o You can add new items to menus. Use short, but descriptive \li You can add new items to menus. Use short, but descriptive
names that are consistent with existing menu names. Use names that are consistent with existing menu names. Use
unambigious names. unambigious names.
\row \row
\o Message box \li Message box
\o Dialog that provides feedback to users, in the form of status \li Dialog that provides feedback to users, in the form of status
information, a warning, or an error message. information, a warning, or an error message.
\image qtcreator-error-message.png "Message box" \image qtcreator-error-message.png "Message box"
Output from Qt Creator should be displayed in output panes, Output from Qt Creator should be displayed in output panes,
instead. instead.
\o Use the event as the title and provide a solution in the \li Use the event as the title and provide a solution in the
message box. message box.
\row \row
\o Mode \li Mode
\o Modes correspond to complete screens of controls, specialized \li Modes correspond to complete screens of controls, specialized
for a task. for a task.
\image qtcreator-mode-selector.png "Mode selector" \image qtcreator-mode-selector.png "Mode selector"
\o You can add a mode for a new type of editor, for example. \li You can add a mode for a new type of editor, for example.
Use descriptive, but short mode names. They have to fit in the Use descriptive, but short mode names. They have to fit in the
\gui {Mode selector}. \gui {Mode selector}.
\row \row
\o Output pane \li Output pane
\o A pane displayed in the task pane that displays output from Qt \li A pane displayed in the task pane that displays output from Qt Creator.
Creator.
\image qtcreator-output-pane.png "Output pane" \image qtcreator-output-pane.png "Output pane"
\o Use descriptive names for output panes. \li Use descriptive names for output panes.
\row \row
\o Sidebar \li Sidebar
\o A view available in the \gui Edit and \gui Debug modes that \li A view available in the \gui Edit and \gui Debug modes that
you can use to browse projects, files, and bookmarks, and to you can use to browse projects, files, and bookmarks, and to
view the class hierarchy. view the class hierarchy.
\image qtcreator-sidebar-menu.png "Sidebar" \image qtcreator-sidebar-menu.png "Sidebar"
\o You can add views to the sidebar menu. Use descriptive names \li You can add views to the sidebar menu. Use descriptive names
for them. for them.
\row \row
\o View \li View
\o An area of the screen that displays information for users and \li An area of the screen that displays information for users and
provides them with functions for managing the information. provides them with functions for managing the information.
Available in \gui Debug mode, for interaction with the program Available in \gui Debug mode, for interaction with the program
that is running under the control of the debugger. that is running under the control of the debugger.
\image qtcreator-debugger-views.png "Views" \image qtcreator-debugger-views.png "Views"
\o Use descriptive names for views. \li Use descriptive names for views.
\endtable \endtable
*/ */

View File

@@ -160,7 +160,7 @@ bool FileUtils::copyRecursively(const FileName &srcFilePath, const FileName &tgt
/*! /*!
If \a filePath is a directory, the function will recursively check all files and return If \a filePath is a directory, the function will recursively check all files and return
true if one of them is newer than \a timeStamp. If \a filePath is a single file, true will true if one of them is newer than \a timeStamp. If \a filePath is a single file, true will
be returned if the file is newer than \timeStamp. be returned if the file is newer than \a timeStamp.
\return Whether at least one file in \a filePath has a newer date than \a timeStamp. \return Whether at least one file in \a filePath has a newer date than \a timeStamp.
*/ */

View File

@@ -57,7 +57,7 @@
writes them. writes them.
The stdOutBuffered(), stdErrBuffered() signals are emitted with complete The stdOutBuffered(), stdErrBuffered() signals are emitted with complete
lines based on the '\n' marker if they are enabled using lines based on the '\\n' marker if they are enabled using
stdOutBufferedSignalsEnabled()/setStdErrBufferedSignalsEnabled(). stdOutBufferedSignalsEnabled()/setStdErrBufferedSignalsEnabled().
They would typically be used for log windows. They would typically be used for log windows.

View File

@@ -91,7 +91,7 @@ public:
the variable its value when requested. A typical setup is to the variable its value when requested. A typical setup is to
\list 1 \list 1
\o Register the variables in ExtensionSystem::IPlugin::initialize(): \li Register the variables in ExtensionSystem::IPlugin::initialize():
\code \code
static const char kMyVariable[] = "MyVariable"; static const char kMyVariable[] = "MyVariable";
@@ -105,7 +105,7 @@ public:
} }
\endcode \endcode
\o Set the variable value when requested: \li Set the variable value when requested:
\code \code
void MyPlugin::updateVariable(const QByteArray &variable) void MyPlugin::updateVariable(const QByteArray &variable)
{ {
@@ -159,18 +159,18 @@ public:
There are several different ways to expand a string, covering the different use cases, There are several different ways to expand a string, covering the different use cases,
listed here sorted by relevance: listed here sorted by relevance:
\list \list
\o Using VariableManager::expandedString(). This is the most comfortable way to get a string \li Using VariableManager::expandedString(). This is the most comfortable way to get a string
with variable values expanded, but also the least flexible one. If this is sufficient for with variable values expanded, but also the least flexible one. If this is sufficient for
you, use it. you, use it.
\o Using the Utils::expandMacros() methods. These take a string and a macro expander (for which \li Using the Utils::expandMacros() methods. These take a string and a macro expander (for which
you would use the one provided by the variable manager). Mostly the same as you would use the one provided by the variable manager). Mostly the same as
VariableManager::expandedString(), but also has a variant that does the replacement inline VariableManager::expandedString(), but also has a variant that does the replacement inline
instead of returning a new string. instead of returning a new string.
\o Using Utils::QtcProcess::expandMacros(). This expands the string while conforming to the \li Using Utils::QtcProcess::expandMacros(). This expands the string while conforming to the
quoting rules of the platform it is run on. Use this method with the variable manager's quoting rules of the platform it is run on. Use this method with the variable manager's
macro expander if your string will be passed as a command line parameter string to an macro expander if your string will be passed as a command line parameter string to an
external command. external command.
\o Writing your own macro expander that nests the variable manager's macro expander. And then \li Writing your own macro expander that nests the variable manager's macro expander. And then
doing one of the above. This allows you to expand additional "local" variables/macros, doing one of the above. This allows you to expand additional "local" variables/macros,
that do not come from the variable manager. that do not come from the variable manager.
\endlist \endlist

View File

@@ -35,7 +35,7 @@ using namespace ProjectExplorer;
/*! /*!
\class NodesVisitor \class NodesVisitor
\short Base class for visitors that can be used to traverse a node hierarchy. \brief Base class for visitors that can be used to traverse a node hierarchy.
The class follows the visitor pattern as described in Gamma et al. Pass The class follows the visitor pattern as described in Gamma et al. Pass
an instance of NodesVisitor to FolderNode::accept(): The visit methods an instance of NodesVisitor to FolderNode::accept(): The visit methods
@@ -45,7 +45,7 @@ using namespace ProjectExplorer;
*/ */
/*! /*!
\method NodesVisitor::visitSessionNode(SessionNode *) \fn NodesVisitor::visitSessionNode(SessionNode *)
Called for the root session node. Called for the root session node.
@@ -53,7 +53,7 @@ using namespace ProjectExplorer;
*/ */
/*! /*!
\method NodesVisitor::visitProjectNode(SessionNode *) \fn NodesVisitor::visitProjectNode(SessionNode *)
Called for a project node. Called for a project node.
@@ -61,7 +61,7 @@ using namespace ProjectExplorer;
*/ */
/*! /*!
\method NodesVisitor::visitFolderNode(SessionNode *) \fn NodesVisitor::visitFolderNode(SessionNode *)
Called for a folder node that is _not_ a SessionNode or a ProjectNode. Called for a folder node that is _not_ a SessionNode or a ProjectNode.

View File

@@ -180,7 +180,7 @@ class AbstractTextCursorHandler : public QObject
public: public:
AbstractTextCursorHandler(VcsBaseEditorWidget *editorWidget = 0); AbstractTextCursorHandler(VcsBaseEditorWidget *editorWidget = 0);
/*! \brief Try to find some matching contents under \p cursor /*! \brief Try to find some matching contents under \a cursor
* *
* It's the first function to be called because it changes the internal state of the handler. * It's the first function to be called because it changes the internal state of the handler.
* Other functions (highlightCurrentContents(), handleCurrentContents(), ...) use the result * Other functions (highlightCurrentContents(), handleCurrentContents(), ...) use the result
@@ -199,7 +199,7 @@ public:
//! Contents matched with the last call to findContentsUnderCursor() //! Contents matched with the last call to findContentsUnderCursor()
virtual QString currentContents() const = 0; virtual QString currentContents() const = 0;
/*! \brief Fill \p menu with contextual actions applying to the contents matched /*! \brief Fill \a menu with contextual actions applying to the contents matched
* with findContentsUnderCursor() * with findContentsUnderCursor()
*/ */
virtual void fillContextMenu(QMenu *menu, EditorContentType type) const = 0; virtual void fillContextMenu(QMenu *menu, EditorContentType type) const = 0;