forked from qt-creator/qt-creator
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:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user