diff options
author | con <qtc-commiter@nokia.com> | 2008-12-02 12:01:29 +0100 |
---|---|---|
committer | con <qtc-commiter@nokia.com> | 2008-12-02 12:01:29 +0100 |
commit | 05c35356abc31549c5db6eba31fb608c0365c2a0 (patch) | |
tree | be044530104267afaff13f8943889cb97f8c8bad /doc | |
download | qt-creator-05c35356abc31549c5db6eba31fb608c0365c2a0.tar.gz |
Initial import
Diffstat (limited to 'doc')
47 files changed, 3316 insertions, 0 deletions
diff --git a/doc/classic.css b/doc/classic.css new file mode 100644 index 0000000000..400ee71168 --- /dev/null +++ b/doc/classic.css @@ -0,0 +1,102 @@ +h3.fn,span.fn +{ + margin-left: 1cm; + text-indent: -1cm; +} + +a:link +{ + color: #004faf; + text-decoration: none +} + +a:visited +{ + color: #672967; + text-decoration: none +} + +td.postheader +{ + font-family: sans-serif +} + +tr.address +{ + font-family: sans-serif +} + +body +{ + background: #ffffff; + color: black +} + +table tr.odd { + background: #f0f0f0; + color: black; +} + +table tr.even { + background: #e4e4e4; + color: black; +} + +table.annotated th { + padding: 3px; + text-align: left +} + +table.annotated td { + padding: 3px; +} + +table tr pre +{ + padding-top: none; + padding-bottom: none; + padding-left: none; + padding-right: none; + border: none; + background: none +} + +tr.qt-style +{ + background: #a2c511; + color: black +} + +body pre +{ + padding: 0.2em; + border: #e7e7e7 1px solid; + background: #f1f1f1; + color: black +} + +span.preprocessor, span.preprocessor a +{ + color: darkblue; +} + +span.comment +{ + color: darkred; + font-style: italic +} + +span.string,span.char +{ + color: darkgreen; +} + +.subtitle +{ + font-size: 0.8em +} + +.small-subtitle +{ + font-size: 0.65em +} diff --git a/doc/doc.pri b/doc/doc.pri new file mode 100644 index 0000000000..5d58a28c3e --- /dev/null +++ b/doc/doc.pri @@ -0,0 +1,25 @@ +# Generate docs. Does not work for shadow builds and never will. +# (adding a "docs" make target). + +unix { + QDOC = SRCDIR=$$PWD OUTDIR=$$OUT_PWD/html $$(QTDIR)/tools/qdoc3/qdoc3 + HELPGENERATOR = qhelpgenerator +} else { + QDOC = $$(QTDIR)\tools\qdoc3\release\qdoc3.exe + HELPGENERATOR = qhelpgenerator +} + +QHP_FILE = $$OUT_PWD/html/qtcreator.qhp +QCH_FILE = $$OUT_PWD/qtcreator.qch + +html_docs.commands =$$QDOC $$PWD/qtcreator.qdocconf +html_docs.depends += $$PWD/qtcreator.qdoc $$PWD/qtcreator.qdocconf +html_docs.files = $$QHP_FILE + +qch_docs.commands = $$HELPGENERATOR -o $$QCH_FILE $$QHP_FILE +qch_docs.depends += html_docs +qch_docs.files = $$QCH_FILE + +docs.depends = qch_docs + +QMAKE_EXTRA_TARGETS += html_docs qch_docs docs diff --git a/doc/doc.pro b/doc/doc.pro new file mode 100644 index 0000000000..8337190b22 --- /dev/null +++ b/doc/doc.pro @@ -0,0 +1 @@ +include(doc.pri) diff --git a/doc/doxygen/Doxyfile b/doc/doxygen/Doxyfile new file mode 100644 index 0000000000..c984e71e42 --- /dev/null +++ b/doc/doxygen/Doxyfile @@ -0,0 +1,1306 @@ +# Doxyfile 1.5.3 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file that +# follow. The default is UTF-8 which is also the encoding used for all text before +# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into +# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of +# possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = QWorkbench + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 1 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = . + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = YES + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, +# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, +# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, +# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = "The $name class " \ + "The $name widget " \ + "The $name file " \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = YES + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be extracted +# and appear in the documentation as a namespace called 'anonymous_namespace{file}', +# where file will be replaced with the base name of the file that contains the anonymous +# namespace. By default anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text " + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = ../../src + +# This tag can be used to specify the character encoding of the source files that +# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default +# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. +# See http://www.gnu.org/software/libiconv for the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py + +FILE_PATTERNS = *.cpp *.h + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = moc_* \ + ui_* \ + Ui_* + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the output. +# The symbol name can be a fully qualified name, a word, or if the wildcard * is used, +# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH +# then you must also enable this option. If you don't then doxygen will produce +# a warning and turn it on anyway + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentstion. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to +# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to +# specify the directory where the mscgen tool resides. If left empty the tool is assumed to +# be found in the default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = NO + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = YES + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = NO + +# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will +# generate a caller dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the number +# of direct children of the root node in a graph is already larger than +# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 1000 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = YES + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = YES diff --git a/doc/example/textfinder/input.txt b/doc/example/textfinder/input.txt new file mode 100644 index 0000000000..044545418a --- /dev/null +++ b/doc/example/textfinder/input.txt @@ -0,0 +1,2 @@ +These forms are processed at run-time to produce dynamically-generated user interfaces. In order to generate a form at run-time, a resource file containing a .ui file is needed. Applications that use the form handling classes need to be configured to be built against the QtUiTools module. This is done by including the following declaration in a qmake project file to ensure that the application is compiled and linked appropriately. A form loader object, provided by the QUiLoader class, is used to construct the user interface. This user interface +can be retrieved from any QIODevice; for example, a QFile object can be used to obtain a form stored in a project's resources. The QUiLoader::load() function takes the user interface description contained in the file and constructs the form widget.
\ No newline at end of file diff --git a/doc/example/textfinder/main.cpp b/doc/example/textfinder/main.cpp new file mode 100644 index 0000000000..7f8c63d951 --- /dev/null +++ b/doc/example/textfinder/main.cpp @@ -0,0 +1,43 @@ +/*************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** +** Non-Open Source Usage +** +** Licensees may use this file in accordance with the Qt Beta Version +** License Agreement, Agreement version 2.2 provided with the Software or, +** alternatively, in accordance with the terms contained in a written +** agreement between you and Nokia. +** +** GNU General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the packaging +** of this file. Please review the following information to ensure GNU +** General Public Licensing requirements will be met: +** +** http://www.fsf.org/licensing/licenses/info/GPLv2.html and +** http://www.gnu.org/copyleft/gpl.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt GPL Exception version +** 1.2, included in the file GPL_EXCEPTION.txt in this package. +** +***************************************************************************/ +#include <QtGui/QApplication> +#include "textfinder.h" + +int main(int argc, char *argv[]) +{ + Q_INIT_RESOURCE(textfinder); + QApplication a(argc, argv); + TextFinder w; + w.show(); + return a.exec(); +} diff --git a/doc/example/textfinder/textfinder.cpp b/doc/example/textfinder/textfinder.cpp new file mode 100644 index 0000000000..a524f1c869 --- /dev/null +++ b/doc/example/textfinder/textfinder.cpp @@ -0,0 +1,75 @@ +/*************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** +** Non-Open Source Usage +** +** Licensees may use this file in accordance with the Qt Beta Version +** License Agreement, Agreement version 2.2 provided with the Software or, +** alternatively, in accordance with the terms contained in a written +** agreement between you and Nokia. +** +** GNU General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the packaging +** of this file. Please review the following information to ensure GNU +** General Public Licensing requirements will be met: +** +** http://www.fsf.org/licensing/licenses/info/GPLv2.html and +** http://www.gnu.org/copyleft/gpl.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt GPL Exception version +** 1.2, included in the file GPL_EXCEPTION.txt in this package. +** +***************************************************************************/ +#include <QtGui/QMessageBox> +#include <QtCore/QFile> +#include <QtCore/QTextStream> +#include "textfinder.h" + +TextFinder::TextFinder(QWidget *parent, Qt::WFlags flags) + : QWidget(parent, flags) +{ + ui.setupUi(this); + loadTextFile(); + isFirstTime = true; +} + +TextFinder::~TextFinder() +{ +} + +void TextFinder::loadTextFile() +{ + QFile inputFile(":/input.txt"); + inputFile.open(QIODevice::ReadOnly); + + QTextStream in(&inputFile); + QString line = in.readAll(); + inputFile.close(); + + ui.textEdit->setPlainText(line); + QTextCursor cursor = ui.textEdit->textCursor(); + cursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1); +} + +void TextFinder::on_findButton_clicked() +{ + QString searchString = ui.lineEdit->text(); + QTextDocument *document = ui.textEdit->document(); + + bool found = false; + + ui.textEdit->find(searchString, QTextDocument::FindWholeWords); + QTextCursor cursor = ui.textEdit->textCursor(); + if (!cursor.isNull()) + found = true; +} diff --git a/doc/example/textfinder/textfinder.h b/doc/example/textfinder/textfinder.h new file mode 100644 index 0000000000..2563a2016a --- /dev/null +++ b/doc/example/textfinder/textfinder.h @@ -0,0 +1,64 @@ +/*************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** +** Non-Open Source Usage +** +** Licensees may use this file in accordance with the Qt Beta Version +** License Agreement, Agreement version 2.2 provided with the Software or, +** alternatively, in accordance with the terms contained in a written +** agreement between you and Nokia. +** +** GNU General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the packaging +** of this file. Please review the following information to ensure GNU +** General Public Licensing requirements will be met: +** +** http://www.fsf.org/licensing/licenses/info/GPLv2.html and +** http://www.gnu.org/copyleft/gpl.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt GPL Exception version +** 1.2, included in the file GPL_EXCEPTION.txt in this package. +** +***************************************************************************/ +#ifndef TEXTFINDER_H +#define TEXTFINDER_H + +#include <QtGui/QWidget> +#include "ui_textfinder.h" + +class QPushButton; +class QTextEdit; +class QLineEdit; + +class TextFinder : public QWidget +{ + Q_OBJECT + +public: + TextFinder(QWidget *parent = 0, Qt::WFlags flags = 0); + ~TextFinder(); + +private slots: + void on_findButton_clicked(); + +private: + Ui::Form ui; + void loadTextFile(); + + QPushButton *ui_findButton; + QTextEdit *ui_textEdit; + QLineEdit *ui_lineEdit; + bool isFirstTime; +}; + +#endif // TEXTFINDER_H diff --git a/doc/example/textfinder/textfinder.pro b/doc/example/textfinder/textfinder.pro new file mode 100644 index 0000000000..4dd25ca402 --- /dev/null +++ b/doc/example/textfinder/textfinder.pro @@ -0,0 +1,12 @@ +TARGET = TextFinder +TEMPLATE = app + + +SOURCES += main.cpp\ + textfinder.cpp + +HEADERS += textfinder.h + +FORMS += textfinder.ui + +RESOURCES += textfinder.qrc diff --git a/doc/example/textfinder/textfinder.qrc b/doc/example/textfinder/textfinder.qrc new file mode 100644 index 0000000000..03cc512f4d --- /dev/null +++ b/doc/example/textfinder/textfinder.qrc @@ -0,0 +1,5 @@ + <!DOCTYPE RCC><RCC version="1.0"> + <qresource> + <file>input.txt</file> + </qresource> + </RCC>
\ No newline at end of file diff --git a/doc/example/textfinder/textfinder.ui b/doc/example/textfinder/textfinder.ui new file mode 100644 index 0000000000..1cb72c5747 --- /dev/null +++ b/doc/example/textfinder/textfinder.ui @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>378</width> + <height>158</height> + </rect> + </property> + <property name="windowTitle"> + <string>Find Text</string> + </property> + <layout class="QVBoxLayout"> + <item> + <layout class="QGridLayout"> + <item row="0" column="1"> + <widget class="QLineEdit" name="lineEdit"/> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="searchLabel"> + <property name="text"> + <string>&Keyword:</string> + </property> + <property name="buddy"> + <cstring>lineEdit</cstring> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QPushButton" name="findButton"> + <property name="text"> + <string>&Find</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QTextEdit" name="textEdit"/> + </item> + <item> + <spacer> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>16</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>lineEdit</sender> + <signal>returnPressed()</signal> + <receiver>findButton</receiver> + <slot>animateClick()</slot> + <hints> + <hint type="sourcelabel"> + <x>261</x> + <y>17</y> + </hint> + <hint type="destinationlabel"> + <x>320</x> + <y>17</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/doc/qt-logo.png b/doc/qt-logo.png Binary files differnew file mode 100644 index 0000000000..3e2e480b32 --- /dev/null +++ b/doc/qt-logo.png diff --git a/doc/qtcreator-add-resource-wizard.png b/doc/qtcreator-add-resource-wizard.png Binary files differnew file mode 100644 index 0000000000..92c21e5b54 --- /dev/null +++ b/doc/qtcreator-add-resource-wizard.png diff --git a/doc/qtcreator-add-resource.png b/doc/qtcreator-add-resource.png Binary files differnew file mode 100644 index 0000000000..8a068987f1 --- /dev/null +++ b/doc/qtcreator-add-resource.png diff --git a/doc/qtcreator-application-output.png b/doc/qtcreator-application-output.png Binary files differnew file mode 100644 index 0000000000..c574835114 --- /dev/null +++ b/doc/qtcreator-application-output.png diff --git a/doc/qtcreator-breakdown.png b/doc/qtcreator-breakdown.png Binary files differnew file mode 100644 index 0000000000..9b9f070695 --- /dev/null +++ b/doc/qtcreator-breakdown.png diff --git a/doc/qtcreator-buildenvironment.png b/doc/qtcreator-buildenvironment.png Binary files differnew file mode 100644 index 0000000000..fb9af43b0e --- /dev/null +++ b/doc/qtcreator-buildenvironment.png diff --git a/doc/qtcreator-buildsettings.png b/doc/qtcreator-buildsettings.png Binary files differnew file mode 100644 index 0000000000..37e5214ef9 --- /dev/null +++ b/doc/qtcreator-buildsettings.png diff --git a/doc/qtcreator-buildsettingstab.png b/doc/qtcreator-buildsettingstab.png Binary files differnew file mode 100644 index 0000000000..c6768cda63 --- /dev/null +++ b/doc/qtcreator-buildsettingstab.png diff --git a/doc/qtcreator-buildsteps.png b/doc/qtcreator-buildsteps.png Binary files differnew file mode 100644 index 0000000000..7e23662faf --- /dev/null +++ b/doc/qtcreator-buildsteps.png diff --git a/doc/qtcreator-class-info.png b/doc/qtcreator-class-info.png Binary files differnew file mode 100644 index 0000000000..757eb12856 --- /dev/null +++ b/doc/qtcreator-class-info.png diff --git a/doc/qtcreator-compile-pane.png b/doc/qtcreator-compile-pane.png Binary files differnew file mode 100644 index 0000000000..52ef37916a --- /dev/null +++ b/doc/qtcreator-compile-pane.png diff --git a/doc/qtcreator-context-sensitive-help.png b/doc/qtcreator-context-sensitive-help.png Binary files differnew file mode 100644 index 0000000000..77fd2ffa5e --- /dev/null +++ b/doc/qtcreator-context-sensitive-help.png diff --git a/doc/qtcreator-debug-mode.png b/doc/qtcreator-debug-mode.png Binary files differnew file mode 100644 index 0000000000..0499f88191 --- /dev/null +++ b/doc/qtcreator-debug-mode.png diff --git a/doc/qtcreator-debugging-buttons.png b/doc/qtcreator-debugging-buttons.png Binary files differnew file mode 100644 index 0000000000..f2f41f002d --- /dev/null +++ b/doc/qtcreator-debugging-buttons.png diff --git a/doc/qtcreator-formedit.png b/doc/qtcreator-formedit.png Binary files differnew file mode 100644 index 0000000000..9627317e60 --- /dev/null +++ b/doc/qtcreator-formedit.png diff --git a/doc/qtcreator-intro-and-location.png b/doc/qtcreator-intro-and-location.png Binary files differnew file mode 100644 index 0000000000..e0d8c9f150 --- /dev/null +++ b/doc/qtcreator-intro-and-location.png diff --git a/doc/qtcreator-navigate-customfilter.png b/doc/qtcreator-navigate-customfilter.png Binary files differnew file mode 100644 index 0000000000..15f2ec87a3 --- /dev/null +++ b/doc/qtcreator-navigate-customfilter.png diff --git a/doc/qtcreator-navigate-popup.png b/doc/qtcreator-navigate-popup.png Binary files differnew file mode 100644 index 0000000000..175b0a41b4 --- /dev/null +++ b/doc/qtcreator-navigate-popup.png diff --git a/doc/qtcreator-new-project.png b/doc/qtcreator-new-project.png Binary files differnew file mode 100644 index 0000000000..6f7832e5cb --- /dev/null +++ b/doc/qtcreator-new-project.png diff --git a/doc/qtcreator-run.png b/doc/qtcreator-run.png Binary files differnew file mode 100644 index 0000000000..845bd48e2e --- /dev/null +++ b/doc/qtcreator-run.png diff --git a/doc/qtcreator-search-pane.png b/doc/qtcreator-search-pane.png Binary files differnew file mode 100644 index 0000000000..d630da337b --- /dev/null +++ b/doc/qtcreator-search-pane.png diff --git a/doc/qtcreator-select-modules.png b/doc/qtcreator-select-modules.png Binary files differnew file mode 100644 index 0000000000..b5b2ead006 --- /dev/null +++ b/doc/qtcreator-select-modules.png diff --git a/doc/qtcreator-setting-breakpoint1.png b/doc/qtcreator-setting-breakpoint1.png Binary files differnew file mode 100644 index 0000000000..5a4a5d99ae --- /dev/null +++ b/doc/qtcreator-setting-breakpoint1.png diff --git a/doc/qtcreator-setting-breakpoint2.png b/doc/qtcreator-setting-breakpoint2.png Binary files differnew file mode 100644 index 0000000000..668c46b8a6 --- /dev/null +++ b/doc/qtcreator-setting-breakpoint2.png diff --git a/doc/qtcreator-task-list.png b/doc/qtcreator-task-list.png Binary files differnew file mode 100644 index 0000000000..221d599939 --- /dev/null +++ b/doc/qtcreator-task-list.png diff --git a/doc/qtcreator-textfinder-screenshot.png b/doc/qtcreator-textfinder-screenshot.png Binary files differnew file mode 100644 index 0000000000..07f2c566ee --- /dev/null +++ b/doc/qtcreator-textfinder-screenshot.png diff --git a/doc/qtcreator-textfinder-ui.png b/doc/qtcreator-textfinder-ui.png Binary files differnew file mode 100644 index 0000000000..2d6be91296 --- /dev/null +++ b/doc/qtcreator-textfinder-ui.png diff --git a/doc/qtcreator-watcher.png b/doc/qtcreator-watcher.png Binary files differnew file mode 100644 index 0000000000..8495e1c678 --- /dev/null +++ b/doc/qtcreator-watcher.png diff --git a/doc/qtcreator.png b/doc/qtcreator.png Binary files differnew file mode 100644 index 0000000000..93cc70137d --- /dev/null +++ b/doc/qtcreator.png diff --git a/doc/qtcreator.qch b/doc/qtcreator.qch Binary files differnew file mode 100644 index 0000000000..00473f3458 --- /dev/null +++ b/doc/qtcreator.qch diff --git a/doc/qtcreator.qdoc b/doc/qtcreator.qdoc new file mode 100644 index 0000000000..d589d533ba --- /dev/null +++ b/doc/qtcreator.qdoc @@ -0,0 +1,1153 @@ +/*! + \contentspage{index.html}{Qt Creator} + \page index.html + \nextpage qtcreator-quick-tour.html + + \title Qt Creator Manual + + \section1 Version 0.9 - Technical Preview + + The goal of Qt Creator is to provide a cross-platform, complete Integrated + Development Environment (IDE) to develop Qt projects. It is available for + the Linux, Mac OS X and Windows platforms. + + \note Qt Creator is currently released as a Technical Preview. It is + possible to edit source code, compile, run and debug applications; other + features are still under development. Please send bug reports and + suggestions to qt-creator@trolltech.com. To subscribe, send a + message with the word \e subscribe to qt-creator-request@trolltech.com. + For more information on Qt mailing lists, visit http://lists.trolltech.com + + \table + \row + \o \inlineimage qtcreator.png + \o Qt Creator includes a wide range of useful features. Among them are: + \list 1 + \o \bold{Qt4 Project Generating Wizard}: This wizard allows the user + to generate a project for a console application, a GUI application, + or a C++ library. + \o \bold{Qt Help Integration}: Qt's entire documentation can be + accessed easily by clicking on the \gui{Help} button. + \o \bold{Qt Designer Integration}: User interface forms can be designed + within Qt Creator. Simply double-click on a \c{.ui} file within the + \gui{Project Explorer} to launch the integration. + \o \bold{Navigation tools}: Powerful navigation tools let the user + navigate around files and classes with minimal keystrokes. + \o \bold{Support for qmake's .pro file format}: The project's \c{.pro} + file is used as a project description file. + \o \bold{Debugging Interface to GDB}: Applications can be debugged + within Qt Creator using a graphical frontend to the GNU symbolic + debugger. + \endlist + \endtable + + To learn more about the Qt Creator, click on one of the links below: + + \list + \o \l{A Quick Tour Around Qt Creator} + \o \l{Creating a Project in Qt Creator} + \o \l{Build Settings} + \o \l{Writing a Simple Program with Qt Creator} + \o \l{Quick Navigation} + \o \l{Debugging with Qt Creator} + \o \l{Tips and Tricks} + \o \l{Glossary} + \o \l{Known Issues for Version 0.9 (Technical Preview)} + \endlist + +*/ + +/*! + \contentspage index.html + \page creator-quick-tour.html + \nextpage creator-build-settings.html + + \title A Quick Tour Around Qt Creator + + The labeled screenshot below shows some of the components of Qt Creator, + in \gui Edit mode. + + \image qtcreator-breakdown.png + + \seection1 The Mode Selectors + + When working in Qt Creator, you can be in one of five modes: \bold Project, + \bold Edit, \bold Debug, \bold Help, and \bold Output. + + Mode selectors allow you to quickly switch between tasks: Editing, + browsing the Qt manual, setting up the build environment, etc. You can + activate a mode by either clicking on its mode selector, or using the + \l{keyboard-shortcuts}{corresponding shortcut}. Certain actions also + trigger a mode change, e.g., \gui{Debug}/\gui{Start Debugging} will switch + to the \gui Debug mode. + + + \list + + \o \gui{Welcome Mode} - Displays a welcome screen allowing you to quickly + load recent sessions or individual projects. This is the first mode + displayed if Qt Creator is run without command line switches. + + \o \gui{Edit Mode} - You can edit both project and source files here. An + optional sidebar on the left provides different views to navigate between + files. + + \o \gui{Debug Mode} - Provides various ways to inspect the state of the + program while debugging. See \l{qtcreator-debugging}{Debugging With Qt + Creator} for a hands-on description of the mode. + + \o \gui{Build & Run Mode} - Lets you configure how projects can be built + and executed. Under the list of projects, there are tabs to configure the + build and run settings. + + \o \gui{Help Mode} - Shows any documentation registered by Qt Assistant, + such as the Qt library and Qt Creator documentation. + + \o \gui{Output Mode} - Lets you examine various logs in detail, for example + the task list, the compiler and application output. Some of these logs can + also be viewed in the output panes. + + \endlist + + + \section1 The Output Panes + + The task pane in Qt Creator can display one out of four different panes: + Task List, Search Results, Application Output, and Compile Output. These + panes are available in all modes. + + \section2 Task List + + The Task List provides a list of important tasks such as error messages + that need to be fixed. It filters out irrelevant output from the compiler + and collects them in the form of tasks. + + \image qtcreator-task-list.png + + \section2 Search Results + + The Search Results pane displays the results for global searches such as + searching within a current document, files on disk, or all projects. + In the screenshot below, we searched for all occurrences of \c{textfinder} + within the "/TextFinder" folder. + + \image qtcreator-search-pane.png + + \section2 Application Output + + This pane displays the status of the program when it is executed, as + well as debug output, for example, output from qDebug(). + + \image qtcreator-application-output.png + + \section2 Compile Output + + The Compile Output provides all the output from the compiler. In other + words, it is a more verbose version of the Task List. + + \image qtcreator-compile-pane.png + + \section1 Qt Help Integration + + Qt Creator comes fully integrated with all of Qt's documentation and + examples via the Qt Help plugin. To view the documentation, you can switch + to the \gui{Help} mode. To obtain context sensitive help, move your text + cursor to a Qt class or function and press \key{F1}. The documentation + will be displayed within a panel on the right, as shown in the screenshot + below. + + External Documentation provided by the user can be used to augment or + replace the documentation shipped with Qt Creator and Qt. + + \image qtcreator-context-sensitive-help.png + + + \section1 Qt Designer Integration + + Qt Creator is fully integrated with Qt Designer to help you design user + interface forms just like you would with the standalone version. The Qt + Designer integration also includes project management and code completion. + + \image qtcreator-formedit.png + + + \section1 Keyboard Navigation + + Even though Qt Creator can be used with a mouse, it also caters to the + needs of developers who are more comfortable with the keyboard. A wide + range of \l{keyboard-shortcuts}{keyboard} and \l{Quick Navigation} + {navigation} shortcuts are available to help speed up the process of + developing your application. +*/ + +/*! + \contentspage index.html + \previouspage creator-quick-tour.html + \page creator-build-settings.html + \nextpage creator-creating-project.html + + \title Build Settings + + \table + \row + \i \bold{Warning:} Qt Creator currently supports qmake only. + Makefile and CMake support is not yet available. + \endtable + + To modify the build settings of your project, switch to the + \gui{Build & Run} mode using the mouse or by pressing \key{Ctrl+4}. + + \image qtcreator-buildsettings.png + + Action items to create, clone, or delete build configurations can be found + on the right of the dialog. You can have as many build configurations + as you need. By default Qt Creator creates a \bold{debug} and + \bold{release} build configuration. Both these configurations use the + \l{glossary-default-qt}{Default Qt Version}. + + In the tree on the left, a list of build configurations and their settings + are displayed. The screenshot below shows the \bold{debug} and + \bold{release} configurations and their corresponding settings: + \bold{Build Environment} and \bold{Build Steps}. + + \image qtcreator-buildsettingstab.png + + When you select a build configuration in the tree, a configuration page for + general build settings will be displayed. Here you can specify which + \l{glossary-project-qt}{Qt version} to use to build your project, whether + to \l{glossary-shadow-build}{shadow build} the project, and if a special + debugging helper is linked into the project or not. + + The debugging helper enables the gdb integration to show the contents of + Qt data types. Enabling this option means that an additional file will be + compiled and linked to your project. + + \image qtcreator-buildenvironment.png + + In the \bold{Build Environment} page you can specify the environment used + for building. By default the environment in which Qt Creator was started + is used and modified to include the Qt version. Depending on the selected + Qt version, Qt Creator will automatically add the necessary environment + variables. + + \image qtcreator-buildsteps.png + + The build system of Qt Creator is built on top of \c qmake and \c make. The + settings for \c qmake and \c make can be changed in the + \bold{Build Settings} page. Qt Creator will run the make command using the + correct Qt version. + + \note The default qmake arguments \c{-after SOURCES*=gdbmacros.cpp + -after QT*=network} are due to the debugging helper described above. If the + debugging helper seems to break your build or your application, you can + turn it off. You will still be able to debug applications, but the contents + of Qt data types will not be displayed properly. + + + \section1 Qt Version Management + + Qt Creator allows you to use multiple versions of Qt installed on your hard + disk and switch between them easily. + + Qt Creator automatically detects if \c qmake is in the environment variable + \c PATH. This \l{glossary-system-qt}{version of Qt} is referred to as + \bold{System Qt}. If you intend to use only one version of Qt - it is + already in your path and correctly set up for command line usage - you do + not need to manually configure your Qt version. + + Otherwise, you can add your Qt version in + \gui{Tools -> Options... -> Qt Versions}. If you are on the Windows + platform and use MinGW to compile Qt, you need to tell Qt Creator where + MinGW is installed. This is done by setting the \gui{MinGW Directory} + under \gui{Tools -> Options... -> Qt4 -> Qt Versions -> MinGw Directory}. + If your Qt version is compiled with Microsoft Visual C++'s compiler, Qt + Creator will automatically set the correct environment variables for + compilation. + + \note By default projects are compiled with the + \l{glossary-default-qt}{default Qt version}. You can override this in the + \gui{Build Configuration}. +*/ + +/*! + \contentspage index.html + \previouspage creator-quick-tour.html + \page creator-creating-project.html + \nextpage creator-writing-program.html + + \title Creating a Project in Qt Creator + + \table + \row + \i \inlineimage qtcreator-new-project.png + \i \bold{Creating a New Project} + + To create a new project, select \gui{New Project} from the \gui{File} menu. + You can create one of the following three projects: + + \list + \o Qt4 Console Application + \o Qt4 Gui Application + \o C++ Library + \endlist + + In this example, we select a \e{Qt4 Gui Application} and click \gui{OK}. + + \row + \i \inlineimage qtcreator-intro-and-location.png + \i \bold{Setting The Project Name and Location} + + Next, we set the project's name and its path. Click on the \gui{...} + button to browse and select your path. + + Ideally, the path should not contain spaces or special characters. + + \row + \i \inlineimage qtcreator-select-modules.png + \i \bold{Selecting The Necessary Qt Modules} + + Click on the check boxes of each Qt Module you would like to include in + your project. + + Since we started a Qt4 Gui Application, the Core and Gui modules are + set, but you are free to add more. + + \row + \i \inlineimage qtcreator-class-info.png + \i \bold{Specifying Class Information} + + Lastly, specify the name of the class you would like to create. The + \e{Header file}, \e{Source file} and \e{Form file} fields will update + themselves according to your choice of class name. + + You also have to select the base class for your class, either a + QWidget, QDialog or QMainWindow, from the drop down box. Click + \gui{Done} and your project will be generated. + + \endtable +*/ + +/*! + \contentspage index.html + \previouspage creator-creating-project.html + \page creator-writing-program.html + \nextpage creator-navigation.html + + \title Writing a Simple Program with Qt Creator + + \table + \row + \o \note This tutorial assumes that the user has experience writing + basic Qt applications, designing user interfaces with Qt Designer + and and using the Qt Resource System. + \endtable + + + In this example, we will describe the steps involve in using Qt Creator + to create a small Qt program, Text Finder. Inspired by the QtUiTools' + \l{http://doc.trolltech.com/uitools-textfinder.html}{Text Finder} + example, we will write a similar but simplified version of it, as shown + below. + + \image qtcreator-textfinder-screenshot.png + + \section1 Setting Up Your Environment + + Once you have installed Qt Creator, it will automatically detect if Qt's + location is in your \c PATH variable. If Qt's location is not in your + \c PATH, you can set it in one of the following ways, depending on your + platform: + + \list + \o On Windows and Linux: in the \gui{Tools} menu, under \gui{Options}. + \o On Mac OS X: in \gui{Preferences}, under \gui{Qt4}. + \endlist + + \note If Qt was compiled with Visual Studio, all environment variables set + in Visual Studio will be added to Qt Creator as well. + + \section1 Setting Up The Project + + We begin with a Qt4 Gui Application project generated by Qt Creator. The + \l{Creating a Project in Qt Creator} document describes this process in + detail. Remember to select QWidget as the Text Finder's base class. + + Once your project is generated, you will have the following files: + + \list + \o \c{textfinder.h} + \o \c{textfinder.cpp} + \o \c{main.cpp} + \o \c{textfinder.ui} + \o \c{textfinder.pro} + \endlist + + The \c{.h} and \c{.cpp} files come with the necessary boiler plate code; + the \c{.pro} file is also complete. + + \section1 Filling In The Missing Pieces + + We will begin by designing the user interface and then move on to filling + in the missing code. Finally, we will add the find functionality. + + \section2 Designing the User Interface + + To begin designing the user interface, double-click on the + \c{textfinder.ui} file in your \gui{Project Explorer}. This will launch the + integrated Qt Designer. + + \image qtcreator-textfinder-ui.png + + Design the form above using a QLabel, QLineEdit, QPushButton and a + QTextEdit. We recommend that you use a QGridLayout to lay out the QLabel, + QLineEdit and QPushButton. The QTextEdit can then be added to a + QVBoxLayout, along with the QGridLayout. If you are new to designing forms + with \QD, you can take a look at the + \l{http://doc.trolltech.com/designer-manual.html}{Designer Manual}. + + \section2 The Header File + + The \c{textfinder.h} file already has the necessary includes, a + constructor, a destructor, and the \c{Ui} object. We need to add a private + slot, \c{on_findButton_clicked()}, to carry out our find operation. We + also need a private function, \c{loadTextFile()}, to read and display the + contents of our input text file in the QTextEdit. This is done with the + following code: + + \code + private slots: + void on_findButton_clicked(); + + private: + Ui::Form ui; + void loadTextFile(); + \endcode + + \note The \c{Ui::Form} object is already provided. + + \section2 The Source File + + Now that our header file is complete we move on to our source file, + \c{textfinder.cpp}. We begin by filling in the functionality to load a + text file. The code snippet below describes this: + + \code + void TextFinder::loadTextFile() + { + QFile inputFile(":/input.txt"); + inputFile.open(QIODevice::ReadOnly); + + QTextStream in(&inputFile); + QString line = in.readAll(); + inputFile.close(); + + ui.textEdit->setPlainText(line); + QTextCursor cursor = ui.textEdit->textCursor(); + } + \endcode + + Basically, we load a text file using QFile, read it with QTextStream, and + then display it on \c{textEdit} with \l{QTextEdit::}{setPlainText()}. + + For the \c{on_findButton_clicked()} slot, we extract the search string and + use the \l{QTextEdit::}{find()} function to look for the search string + within the text file. The code snippet below further describes it: + + \code + void TextFinder::on_findButton_clicked() + { + QString searchString = ui.lineEdit->text(); + ui.textEdit->find(searchString, QTextDocument::FindWholeWords); + } + \endcode + + Once we have both these functions complete, we call \c{loadTextFile()} in + our constructor. + + \code + TextFinder::TextFinder(QWidget *parent, Qt::WFlags flags) + : QWidget(parent, flags) + { + ui.setupUi(this); + loadTextFile(); + } + \endcode + + The \c{on_findButton_clicked()} slot will be called automatically due to + this line of code: + + \code + QMetaObject::connectSlotsByName(Form); + \endcode + + in the uic generated \c{ui_textfinder.h} file. + + \section2 The Resource File + + We require a resource file (\c{.qrc}) within which we will embed the input + text file. This can be any \c{.txt} file with a paragraph of text. To add + a resource file, right click on \gui{Resource Files} in the + \gui{Project Explorer} and select \gui{Add New File...}. You will see the + wizard dialog displayed below. + + \image qtcreator-add-resource-wizard.png + + Enter "textfinder" in the \gui{Name} field and use the given \gui{Path}. + Then, click \gui{Done}. + + Your resource file will now be displayed with the Resource Editor. Click + on the \gui{Add} drop down box and select \gui{Add Prefix}. The prefix we + require is just a slash (\c{/}). Click \gui{Add} again but this time, + select \gui{Add File}. Locate the text file you are going to use, we use + \c{input.txt}. + + \image qtcreator-add-resource.png + + The screenshot above shows what you can expect to see once you have added + the resource file successfully. + + \section1 Compiling and Running Your Program + + Now that you have all the necessary files, you can compile your program by + clicking on the + \inlineimage qtcreator-run.png + button. + +*/ + +/*! + \contentspage index.html + \previouspage creator-writing-program.html + \page creator-navigation.html + \nextpage creator-debugging.html + + \title Quick Navigation + + With Qt Creator, navigating to different locations in your project or on + your disk, such as files, classes and methods, is trivial using the input + field at the bottom left of the application window. + + ### SCREENSHOT + + To open for example the file \c{main.cpp} of your project, click into the + input field (or use \key{Ctrl+K} to get there), type the file name, and + finally press the \key{Return} key. The file will open in the editor. + You can also type only a part of a file name, and use the wildcard + characters \c{*} and \c{?} which match \c{any number of any characters} and + \c{any single character}, respectively - you will get a list of all matching + files to choose from. + + As mentioned above, files are not the only type of locations you can + jump to. The different types of locations are organized in what we + call \c{filters}. There are filters for jumping to + \list + \o files mentioned in your \c{.pro} files, such as source and header, + resource and \c{.ui} files, + \o a specific line in your current text document, + \o class and method definitions in your project or anywhere referenced + from your project, + \o help topics, including the Qt API reference documentation, + \o files anywhere on your hard disk (by browsing through the file system), + \o any open document, + \o files from a subdirectory structure you define. + \endlist + Some of these filters are not used by default if you just start typing in the + input field, but require you to type a "prefix" in front, that is + assigned to that filter. The prefix is usually a single character, + followed by a space. As an example, to jump to the definition of the class + \c{QDataStream} type \key{Ctrl+K}, \key{:}, \key{Space}, and the class name. + You find a full list of filters and their prefixes below. + + \image qtcreator-navigate-popup.png + + You can add filters that provide quick navigation to files in a + subdirectory structure that you define. This way you have quick access to + files that are not directly mentioned in your project, but still relate to it. + Click on the little magnifier glass in the input field and choose + \gui{Configure...} from the menu that appears. This opens the preferences + dialog for navigation filters. Click the \gui{Add} button to create a new + filter. Give it a name, choose directories, set (a comma separated list of) + file patterns, and give it a prefix string. After closing the preferences + dialog the directories you specified are searched for files that match the + file patterns, and the information is cached. From now on you can jump to + these files by just typing part of the file name into the navigation input + field. You can force an update of the cached information about the files via + the \gui{Refresh} menu item in the magnifier menu. + + \image qtcreator-navigate-customfilter.png + + The following table gives an overview on the currently available filters: + + \table + \header + \o Function + \o Key Combination + \row + \o Go to a Line in the Current Document + \o Ctrl + K, l, Space, and the line number + \row + \o Go to a Function Definitions + \o Ctrl + K, :, Space, and the function name + \row + \o Go to a Help Topic + \o Ctrl + K, ?, Space, and the topic + \row + \o Go to an Already Opened Document + \o Ctrl + K, o, Space, and the document name. + \row + \o Go to a File in the File System (browsing the file system) + \o Ctrl + K, f, Space, and the file name. + \row + \o Go to a File in any Loaded Project + \o Ctrl + K, a, Space, and the function name. + \row + \o Go to a File in the Current Project + \o Ctrl + K, p, Space, and the function name. + \endtable +*/ + + +/*! + \contentspage index.html + \previouspage creator-navigation.html + \page creator-debugging.html + \nextpage creator-tips.html + + \title Debugging With Qt Creator + + \table + \row + \i \note Qt Creator's debugger integration currently does not + support debugging applications created with the Microsoft Visual + Studio Compiler. + \endtable + + Qt Creator does not have its own debugger. Instead, it provides a graphical + frontend to the GNU Symbolic Debugger (gdb). This frontend allows you to + step through a program line-by-line or instruction-by-instruction, + interrupt running programs, set breakpoints, examine the contents of the + call stack, local and global variables, etc. + + + Within Qt Creator, the raw information provided by gdb is displayed in a + clear and concise manner, simplifying the process of debugging. + + In addition to generic IDE functionality: stack view, views for locals and + watchers, registers, etc, Qt Creator comes with additional features to make + debugging Qt-based applications easy. The debugger frontend knows about the + internal layout of several Qt classes such as QString, the QTL containers, + and most importantly QObject (and classes derived from it). Therefore, it + is able to present Qt's data clearly. + + + \section1 Interacting with the Debugger + + In \gui Debug mode, several dock widgets are used to interact with the + program you are debugging. The frequently used dock widgets are visible by + default; the rarely used ones are hidden. To change the default settings, + select \gui Debug and then select \gui View. + + ####SCREENSHOT + + Here, you can lock or unlock the location of your views as well as display + or hide them. Among the views you can display are \gui Breakpoints, + \gui Disassembler, \gui Modules, \gui Registers, \gui Gdb, \gui Stack, and + \gui Thread. The position of your dock widgets will be saved for future + sessions. + + + \section2 Breakpoints + + Breakpoints are shown in the \gui{Breakpoints} view which is enabled by + by default. This view is also accessible when the debugger and the program + being debugged is not running. + + A breakpoint represents a position or sets of positions in the code that, + when executed, stops the program being debugged and passing the control to + the user. The user is then free to examine the state of the interrupted + program, or continue execution line-by-line or continuously. + + Typically, breakpoints are associated with a source code file and line, or + the start of a function -- both allowed in Qt Creator. + + Also, the interruption of a program by a breakpoint can be restricted with + certain conditions. + + You can set a breakpoint: + + \list + \o At a particular line you want the program to stop -- click on the + left margin or press \key F9 (\key F8 for Mac Os X). + \o At the name of a function that you want the program to stop -- enter + the function's name in \gui{Set Breakpoint at Function...} under the + \gui Debug menu. + \endlist + + You can remove a breakpoint: + + \list + \o By clicking on the breakpoint marker in the text editor. + \o By selecting the breakpoint in the breakpoint view and pressing + \key{Delete}. + \o By selecting \gui{Delete Breakpoint} from the breakpoint's context + menu in the \gui Breakpoints view. + \endlist + + Breakpoints can be set and deleted before the program has actually started + running or while it is running under the debugger's control. Also, + breakpoints are saved together with a session. + + + \section2 Running + + To start a program under the debugger's control, select the \gui{Debug} + menu and \gui{Start Debugging}, or simply press \key{F5}. Qt Creator then + checks whether the compiled program is up-to-date, rebuilding it if + necessary. The debugger then takes over and starts the program. + + \note Starting a program in the debugger will take considerable amount of + time, typically in the range of several seconds to minutes if complex + features (like QtWebKit) are used. + + Once the program starts running, it behaves as usual; performance-wise as + well. The user can interrupt a running program by selecting + \gui {Interrupt} from the \gui{Debug} menu. The program is automatically + interrupted as soon as a breakpoint is hit. + + \omit (and, if set, its associated conditions are met). \endomit + + Once the program stops, Qt Creator: + + \list + \o Retrieves data representing the call stack at the program's current + position. + \o Retrieves the contents of local variables. + \o Examines \gui Watchers. + \o Updates the \gui Registers, \gui Modules, and \gui Disassembler + views. + \endlist + + + You can use the debugger views to examine the data in more detail. + + To finish debugging, Press \key{Shift+F5}. A line of code can be executed + as a whole with \key F10; to execute a function or a sub-function, use + \key F11. Alternatively, you can continue running the program with \key F5. + + ###REWORD + There is also the possibility to continue execution until the current + function finishes, or, for advanced use, to jump to an arbitrary + possition in the current function. + + + \section2 Stack + + When the program being debugged is stopped, Qt Creator displays the nested + function calls leading to the current position as a \e call stack trace. + This stack trace is built up from \e call stack frames, each representing a + particular function. For each function, Qt Creator will try to retrieve the + file name and line number of the corresponding source files. This data is + shown in the \gui Stack view. + + Since the call stack leading to the current position may originate or go + through code for which no debug information is available, not all stack + frames will have corresponding source locations. These frames will be + greyed out in the \gui Stack view. + + ###SCREENSHOT + + + If you click on a frame with a known source location, the text editor will + jump to the corresponding location and update the \gui{Locals and Watchers} + view, making it seem like the program stopped before entering the function. + + + \section2 Threads + + + The \gui Thread view displays the state of the program being debugged one + thread at a time. If a multi-threaded program is stopped, the \gui Thread + view or the combobox named \gui Thread in the debugger's status bar can + be used to switch from one thread to another. The \gui Stack view will + adjust itself accordingly. + + + \section2 Locals and Watchers + + Whenever a program stops under the control of the debugger, it retrieves + information about the topmost stack frame and displays it in the + \gui{Locals and Watchers} view. This typically includes information about + parameters of the function in that frame as well as the local variables. + + Compound variables of struct or class type will be displayed as + "expandable" in the view. C lick on the "+" to expand the entry and show + all members. Together with the display of value and type, the user can + examine and traverse the low-level layout of an object's data. + + + \table + \row + \i \bold{Note:} + \i Gdb, and therefore Qt Creator's debugger works for optimized builds + on Linux and Mac OS X. However, optimization may lead to re-ordering of + instructions or sometimes even complete removal of some local variables. + In this case, the \gui{Locals and Watchers} view may show unexpected data. + \endtable + + \note + + \bold{Note:} The debug information provided by gcc does not include + enough information about the time at which a variable is initialized. + Qt Creator therefore can not tell whether the contents of a local + variable contains "real data", or "initial noise". If an QObject + appears uninitialized, its value will be reported as "out of scope". + Not all uninitialized objects can be recognized as such, though. + + The \gui{Locals and Watchers View} also gives accesst to the most powerful + feature of the Qt Creator Debugger: The comprehensive display of data + of objects of some of Qt's basic classes. + + To start using that feature, select \gui{Debug} and \gui{Use Custom + Display for Qt Objects}. The \gui{Locals and Watchers View} will + be re-organized to give a more high-level view of the objects + in question. So instead of displaying a pointer to some private + data structure in case of QObject, a list of children, signals + and slots will be shown. + + Similarily, instead of showing a bunch of pointers and ints, + a QHash or QMap will display its contents in an orderly fashion, + a QFileInfo will expose e.g. access data, and the otherwise + "opaque" QVariant gives access to the "real" contents. + + The \gui{Locals and Watchers View} can be used to change the + contents of variables of simple data types like int or float + while the program is stopped. To do so, click into the 'Value' + column, modify the value there, and hit \key{Return}. + + + + \section2 Modules + + The \gui{Modules View} is hidden by default and only useful in + connection with the experimental feature of delayed debug + information loading. This feature is accessible by selecting + \gui{Debug} and \gui{Fast Debugger Start}. When using the + feature, debug information coming from the Qt library itself + are not loaded on application startup, thereby reducing the + startup times for some applications. The \gui{Modules View} + can then be used to load this information manually if needed. + Note that the debugger may fail to set some breakpoints in + this scenarios. + + \section2 Disassembler View and Registers View + + Both the \gui{Disassembler View} and \gui{Registers View} are hidden + by default. The former shows the disassembled code of the current + function, the latter the current state of the CPU registers. + Both views are mainly useful in connection with the low-level + \gui{Step single instruction} and \gui{Step over single instruction} + commands + + + + \section1 A short walk through the debugger frontend + + In our \l{Writing a Simple Program with Qt Creator}{TextFinder} + example, we read a text file into a QString and then display it with a + QTextEdit. Suppose, you would like to look at this QString, \c{line}, + and see what data it actually stores. Follow the steps described below + to place a break point and view the QString object's data. + + \table + \row + \i \inlineimage qtcreator-setting-breakpoint1.png + \i \bold{Setting a Breakpoint} + + First, we set a breakpoint on the line where we invoke + \l{QTextEdit::}{setPlainText()} by clicking between the line number and + the window border. Then, select \gui{Start Debugging} from the + \gui{Debug} menu or press \key{F5}. + \endtable + + Breakpoints are visible in the \gui{Breakpoints} view, shown below, in + \gui{Debug} mode. If you wish to remove a breakpoint, simply right + click on it and select \gui{Delete breakpoint} from the context menu. + + \image qtcreator-setting-breakpoint2.png + + To view the contents of \c{line}, take a look at the \gui{Locals and + Watchers} view. + + \image qtcreator-watcher.png + + Suppose we modify our \c{on_findButton_clicked()} function to move back + to the start of the document and continue searching once the cursor + hits the end of the document. Adding this functionality can be done + with the code snippet below: + + \code + void TextFinder::on_findButton_clicked() + { + QString searchString = ui.lineEdit->text(); + + QTextDocument *document = ui.textEdit->document(); + QTextCursor cursor = ui.textEdit->textCursor(); + cursor = document->find(searchString, cursor, + QTextDocument::FindWholeWords); + ui.textEdit->setTextCursor(cursor); + + bool found = cursor.isNull(); + + if (!found && previouslyFound == true) { + int ret = QMessageBox::question(this, tr("End of Document"), + tr("I have reached the end of the document. Would you like " + "me to start searching from the beginning of the document?"), + QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); + + if (ret == QMessageBox::Yes) { + cursor = document->find(searchString, + QTextDocument::FindWholeWords); + ui.textEdit->setTextCursor(cursor); + } else + return; + } + previouslyFound = found; + } + \endcode + + However, if you compile and run this code, the application will not + work correctly due to a logic error. To locate this logic error, you + can step through the code using the following buttons: + + \image qtcreator-debugging-buttons.png +*/ + + +/*! + \contentspage index.html + \previouspage creator-debugging.html + \page creator-tips.html + \nextpage creator-glossary.html + + \title Tips and Tricks + + \bold{Quick mode switch} + + You can quickly switch between modes by pressing \key{Ctrl+1}, + \key{Ctrl+2}, etc. + + \bold{Other keyboard shortcuts} + + There are a lot of other \l{keyboard-shortcuts}{keyboard shortcuts}. + + \bold{Command line} + + You can start Qt Creator from a command prompt with an already + existing session or \c{.pro} file by giving the name as argument on the + command line. + + \bold{Sidebar} + + You can hide/unhide the sidebar in the edit and debug mode + by clicking on the corresponding icon on the left bottom. + Keyboard shortcut is \key{Alt+0}. + + \bold{Display signals and slots} + + If you have an instance of a class derived from QObject and + want to find all other objects connected to one of its + slots by Qt's signals-and-slots mechanism, enable + \gui{Debug} and \gui{Use Custom Display for Qt Objects}. + In the \gui{Locals and Watchers View}, expand the object's + entry and open the wanted slot in the "slots" subitem. The + objects connect to this slot are exposed as children of + this slot. The same works with signals. + + \bold{Low level display} + + If the special debugging of Qt objects fails due to data + corruption within the debugged objects, you can switch the + special debugging off in the \gui{Debug} menu. This will make + the low-level structures visible again. +*/ + +/*! + \contentspage index.html + \previouspage creator-tips.html + \page creator-glossary.html + \nextpage creator-known-issues.html + + \title Glossary + + \bold{System Qt} + + \target glossary-system-qt + The version of Qt installed on your system. + This is the one whose \c qmake command is found in the \c PATH. + + \bold{Default Qt} + + \target glossary-default-qt + The version of Qt configured in \gui{Tools + -> Options -> Qt 4 -> Default Qt Version}. This is the version + used by new projects. It defaults to the System Qt. + + \bold{Project Qt} + + \target glossary-project-qt + The version of Qt configured in \gui{Build&Run + -> Build Settings -> Build Configurations}. This is the version + actually used by the project. It defaults to the Default Qt. + + \bold{Shadow Build} + + \target glossary-shadow-build + Shadow building means building the project not in the source directory, + but in a seperate \bold{build directory}. This has the benefit of keeping + the source directory clean. It is also considered "best practice" if + you need many build configurations for a single set of sources. + +*/ + +/*! + \contentspage index.html + \previouspage creator-glossary.html + \page creator-keyboard-shortcuts.html + + \title Keyboard Shortcuts + + Qt Creator provides various keyboard shortcuts to aid in the development + process. These shortcuts are listed in the table below: + + \table + \header + \o Function + \o Key Combination + \row + \o Activate Build & Run Mode + \o Ctrl + 4 + \row + \o Activate Debug Mode + \o Ctrl + 3 + \row + \o Activate Edit Mode + \o Ctrl + 2 + \row + \o Activate Help Mode + \o Ctrl + 5 + \row + \o Activate Output Mode + \o Ctrl + 6 + \row + \o Activate Welcome Mode + \o Ctrl + 1 + \row + \o Find + \o Ctrl + F + \row + \o Find Next + \o F3 + \row + \o Go back to Code Editor (May require more than one press) + \o Esc + \row + \o Go to a Line + \o Ctrl + L + \row + \o Start Debugging + \o F5 + \row + \o Stop Debugging + \o Shift + F5 + \row + \o Toggle Application Output + \o Alt + 3 + \row + \o Toggle Code Declaration and Definition + \o F2 + \row + \o Toggle Header File and Source File + \o F4 + \row + \o Toggle Side Bar + \o Alt + 0 + \row + \o Toggle Task List + \o Alt + 1 + \row + \o Toggle Search Results + \o Alt + 2 + \row + \o Toggle Compile Output + \o Alt + 4 + \row + \o Select Welcome Mode + \o Ctrl + 1 + \row + \o Select Edit Mode + \o Ctrl + 2 + \row + \o Select Debug Mode + \o Ctrl + 3 + \row + \o Select Build & Run Mode + \o Ctrl + 4 + \row + \o Select Help Mode + \o Ctrl + 5 + \row + \o Select Output Mode + \o Ctrl + 6 + \endtable +*/ + +/*! + \contentspage index.html + \previouspage creator-keyboard-shortcuts.html + \page creator-known-issues.html + + \title Known Issues of Version 0.9 (Technical Preview) + + There are some known issues with the Technical Preview. + The development team is aware of those, there is no need to report them as bug. + + \list + \o The central editor sometimes loses it "changed" status marker. + + \o There is a kernel bug essentially making debugging unreliable + on 2.6.24 kernels for i386 (which is, unfortunately, the default + on Ubuntu 8.04). + See \l{https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/230315/} + for details. + The only solution for this problem is to boot another kernel. + + \o gdb sometimes takes very long to load debugging symbol, + especially from big libraries like libQtWebKit. Starting debugging + can take up to several minutes without visible progress. + + \o Paths or file names containing spaces or special characters like colons, + dollar signs, hash marks etc. may create difficulties. + Some of the tools Qt Creator uses in the background to do the "real + work" have restrictions on the characters that are allowed in file + and directory names. To be on the safe side, it is strongly + recommended to create projects and project items only with names + consisting of plain characters, numbers, underscores, and hyphens. + + \o \c .pro files are reformatted if files are added/removed. + Whitespace is not preserved. + + \o No IDE support for adding files to include (\c .pri) files. + + \o No IDE support for adding/removing sub-projects. + Project hierarchies (SUBDIRS template) have to be created by hand. + + \o The file system sidebar does not update automatically. + As a workaround you can switch to another directory and then back. + + \o The resource system of the embedded version of Qt Designer + does not interact with the project management. + + \o Loading KDE4 designer plugins breaks the style, due to a bug in KDE. + \endlist +*/ + diff --git a/doc/qtcreator.qdocconf b/doc/qtcreator.qdocconf new file mode 100644 index 0000000000..4cc07d2dc7 --- /dev/null +++ b/doc/qtcreator.qdocconf @@ -0,0 +1,205 @@ +# Run qdoc from the directory that contains this file. + +project = qtcreator +description = "Qt Creator Manual" + +headerdirs = +sourcedirs = +sourcedirs = $SRCDIR +imagedirs = $SRCDIR +outputdir = $OUTDIR + +extraimages.HTML = qt-logo \ + trolltech-logo + +sources.fileextensions = "qtcreator.qdoc" + + +qhp.projects = QtCreator +qhp.QtCreator.file = qtcreator.qhp +qhp.QtCreator.namespace = com.nokia.qtcreator.09 +qhp.QtCreator.virtualFolder = doc +qhp.QtCreator.indexTitle = Qt Creator +qhp.QtCreator.indexRoot = +qhp.QtCreator.extraFiles = classic.css \ + images/qt-logo.png +qhp.QtCreator.filterAttributes = qtcreator 0.9 +qhp.QtCreator.customFilters.QtCreator.name = Qt Creator 0.9 +qhp.QtCreator.customFilters.QtCreator.filterAttributes = qtcreator 0.9 + +# macros.qdocconf + +macro.aring.HTML = "å" +macro.Auml.HTML = "Ä" +macro.author = "\\bold{Author:}" +macro.br.HTML = "<br />" +macro.BR.HTML = "<br />" +macro.aacute.HTML = "á" +macro.eacute.HTML = "é" +macro.iacute.HTML = "í" +macro.gui = "\\bold" +macro.hr.HTML = "<hr />" +macro.key = "\\bold" +macro.menu = "\\bold" +macro.note = "\\bold{Note:}" +macro.oslash.HTML = "ø" +macro.ouml.HTML = "ö" +macro.QA = "\\e{Qt Assistant}" +macro.QD = "\\e{Qt Designer}" +macro.QL = "\\e{Qt Linguist}" +macro.param = "\\e" +macro.raisedaster.HTML = "<sup>*</sup>" +macro.reg.HTML = "<sup>®</sup>" +macro.return = "Returns" +macro.starslash = "\\c{*/}" +macro.uuml.HTML = "ü" +macro.mdash.HTML = "—" + +# compat.qdocconf + +alias.i = e +alias.include = input + +macro.0 = "\\\\0" +macro.b = "\\\\b" +macro.n = "\\\\n" +macro.r = "\\\\r" +macro.i = "\\o" +macro.i11 = "\\o{1,1}" +macro.i12 = "\\o{1,2}" +macro.i13 = "\\o{1,3}" +macro.i14 = "\\o{1,4}" +macro.i15 = "\\o{1,5}" +macro.i16 = "\\o{1,6}" +macro.i17 = "\\o{1,7}" +macro.i18 = "\\o{1,8}" +macro.i19 = "\\o{1,9}" +macro.i21 = "\\o{2,1}" +macro.i31 = "\\o{3,1}" +macro.i41 = "\\o{4,1}" +macro.i51 = "\\o{5,1}" +macro.i61 = "\\o{6,1}" +macro.i71 = "\\o{7,1}" +macro.i81 = "\\o{8,1}" +macro.i91 = "\\o{9,1}" +macro.img = "\\image" +macro.endquote = "\\endquotation" + +spurious = "Missing comma in .*" \ + "Missing pattern .*" + +# Doxygen compatibility commands + +macro.see = "\\sa" +macro.function = "\\fn" + +# qt-cpp-ignore.qdocconf + +Cpp.ignoretokens = QAXFACTORY_EXPORT \ + QDESIGNER_COMPONENTS_LIBRARY \ + QDESIGNER_EXTENSION_LIBRARY \ + QDESIGNER_SDK_LIBRARY \ + QDESIGNER_SHARED_LIBRARY \ + QDESIGNER_UILIB_LIBRARY \ + QM_EXPORT_CANVAS \ + QM_EXPORT_DNS \ + QM_EXPORT_DOM \ + QM_EXPORT_FTP \ + QM_EXPORT_HTTP \ + QM_EXPORT_ICONVIEW \ + QM_EXPORT_NETWORK \ + QM_EXPORT_OPENGL \ + QM_EXPORT_SQL \ + QM_EXPORT_TABLE \ + QM_EXPORT_WORKSPACE \ + QM_EXPORT_XML \ + QT_ASCII_CAST_WARN \ + QT_ASCII_CAST_WARN_CONSTRUCTOR \ + QT_BEGIN_HEADER \ + QT_DESIGNER_STATIC \ + QT_END_HEADER \ + QT_FASTCALL \ + QT_WIDGET_PLUGIN_EXPORT \ + Q_COMPAT_EXPORT \ + Q_CORE_EXPORT \ + Q_EXPLICIT \ + Q_EXPORT \ + Q_EXPORT_CODECS_CN \ + Q_EXPORT_CODECS_JP \ + Q_EXPORT_CODECS_KR \ + Q_EXPORT_PLUGIN \ + Q_GFX_INLINE \ + Q_GUI_EXPORT \ + Q_GUI_EXPORT_INLINE \ + Q_GUI_EXPORT_STYLE_CDE \ + Q_GUI_EXPORT_STYLE_COMPACT \ + Q_GUI_EXPORT_STYLE_MAC \ + Q_GUI_EXPORT_STYLE_MOTIF \ + Q_GUI_EXPORT_STYLE_MOTIFPLUS \ + Q_GUI_EXPORT_STYLE_PLATINUM \ + Q_GUI_EXPORT_STYLE_POCKETPC \ + Q_GUI_EXPORT_STYLE_SGI \ + Q_GUI_EXPORT_STYLE_WINDOWS \ + Q_GUI_EXPORT_STYLE_WINDOWSXP \ + QHELP_EXPORT \ + Q_INLINE_TEMPLATE \ + Q_INTERNAL_WIN_NO_THROW \ + Q_NETWORK_EXPORT \ + Q_OPENGL_EXPORT \ + Q_OUTOFLINE_TEMPLATE \ + Q_SQL_EXPORT \ + Q_SVG_EXPORT \ + Q_SCRIPT_EXPORT \ + Q_TESTLIB_EXPORT \ + Q_TYPENAME \ + Q_XML_EXPORT \ + Q_XMLSTREAM_EXPORT \ + Q_XMLPATTERNS_EXPORT \ + QDBUS_EXPORT \ + QT_BEGIN_NAMESPACE \ + QT_BEGIN_INCLUDE_NAMESPACE \ + QT_END_NAMESPACE \ + QT_END_INCLUDE_NAMESPACE \ + PHONON_EXPORT \ + EXTENSIONSYSTEM_EXPORT +Cpp.ignoredirectives = Q_DECLARE_HANDLE \ + Q_DECLARE_INTERFACE \ + Q_DECLARE_METATYPE \ + Q_DECLARE_OPERATORS_FOR_FLAGS \ + Q_DECLARE_PRIVATE \ + Q_DECLARE_PUBLIC \ + Q_DECLARE_SHARED \ + Q_DECLARE_TR_FUNCTIONS \ + Q_DECLARE_TYPEINFO \ + Q_DISABLE_COPY \ + QT_FORWARD_DECLARE_CLASS \ + Q_DUMMY_COMPARISON_OPERATOR \ + Q_ENUMS \ + Q_FLAGS \ + Q_INTERFACES \ + __attribute__ \ + K_DECLARE_PRIVATE \ + PHONON_OBJECT \ + PHONON_HEIR + + + +HTML.stylesheets = classic.css +HTML.postheader = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\n" \ + "<tr>\n" \ + "<td align=\"left\" valign=\"top\" width=\"32\">" \ + "<img src=\"images/qt-logo.png\" align=\"left\" width=\"32\" height=\"32\" border=\"0\" />" \ + "</td>\n" \ + "<td width=\"1\"> </td>" \ + "<td class=\"postheader\" valign=\"center\">" \ + "<a href=\"qtcreator-manual.html\">" \ + "<font color=\"#004faf\">Home</font></a>" \ + "</td>\n" \ + "<td align=\"right\" valign=\"top\" width=\"230\"></td></tr></table><br>" + +HTML.footer = "<p /><address><hr /><div align=\"center\">\n" \ + "<table width=\"100%\" cellspacing=\"0\" border=\"0\"><tr class=\"address\">\n" \ + "<td width=\"30%\" align=\"left\">Copyright © 2008 Nokia</td>\n" \ + "<td width=\"40%\" align=\"center\"> </td>\n" \ + "<td width=\"30%\" align=\"right\"><div align=\"right\">Qt Creator 0.9</div></td>\n" \ + "</tr></table></div></address>" diff --git a/doc/runframework.dia b/doc/runframework.dia Binary files differnew file mode 100644 index 0000000000..5ecb76d917 --- /dev/null +++ b/doc/runframework.dia diff --git a/doc/trolltech-logo.png b/doc/trolltech-logo.png Binary files differnew file mode 100644 index 0000000000..19e3789d50 --- /dev/null +++ b/doc/trolltech-logo.png diff --git a/doc/workbench.qdoc b/doc/workbench.qdoc new file mode 100644 index 0000000000..033b1ae7d4 --- /dev/null +++ b/doc/workbench.qdoc @@ -0,0 +1,98 @@ +/*! + \page index.html + \title Workbench + + Workbench is Trolltech's crossplatform IDE. The core of Workbench is + basically only a \l{Plugin Loader Framework}{plugin loader} comparable to + Eclipse. All major functionality is then added via plugins. The plugins + necessary for a full IDE will be provided by Trolltech, possible addons or + replacements of existing plugins can be provided by anyone. This means that + there will be a place where plugins can be shared. + + The main features of Workbench are: + + \list + \o Fast since it's written in C++ + \o Easy and fast to use (the entire IDE can be controlled via short cuts) + \o Highly extensible + \o Integrated C++ language support, i.e. code completion, class browser, ... + \o Integrated debugger framework and outstanding support for gdb + \o Integrated Qt Designer + \o Qtopia Integration + \endlist + + \section1 Plugins + + As already mentioned, Workbench is basically only a plugin loader framework + which gets its IDE functionality through plugins. The most important plugin + is the QWorkbench plugin which provides all the basic functionality needed + later to integrate e.g. editors or tool windows. + + \table + \header + \o Plugin Name + \o Description + + \row + \o \l{QWorkbench Plugin} {QWorkbench} + \o The core plugin. Provides the main window and managers for editors, + actions, tool windows and files, just to mention the most important ones. + + \endtable + +*/ + +/*! + \page classes.html + \title Workbench Classes and Namespaces + + \section1 Classes + + \generatelist classes + + \section1 Namespaces + + \generatelist{namespaces} +*/ + +/*! + \page interfaces.html + \title Interfaces + \generatelist mainclasses + +*/ + +/*! + \page functions.html + \title Member Function Index + \generatelist functionindex +*/ + +/*! + \group pluginloader + + \title Plugin Loader Framework +*/ + +/*! + \group qwb + + \title QWorkbench Plugin +*/ + +/*! + \namespace Trolltech +*/ + +/*! + \namespace Trolltech::QWorkbench +*/ + +/*! + \namespace Trolltech::QWorkbench::Internal + \brief Classes that manage and control internal features of the workbench environment. +*/ + +/*! + \namespace ExtensionSystem +*/ diff --git a/doc/workbench.qtdocconf b/doc/workbench.qtdocconf new file mode 100644 index 0000000000..7a82c2aac6 --- /dev/null +++ b/doc/workbench.qtdocconf @@ -0,0 +1,147 @@ +project = Workbench +description = Workbench SDK Documentation + +language = Cpp + +headerdirs = . \ + ../src/libs/extensionsystem \ + ../src/plugins/core \ + ../src/plugins/core/actionmanager + +sourcedirs = . \ + ../src/libs/extensionsystem \ + ../src/plugins/core \ + ../src/plugins/core/actionmanager + +headers.fileextesnions = "*.h" +sources.fileextensions = "*.cpp *.qdoc" + +imagedirs = . + +indexes = $QTDIR/doc/html/qt.index + +outputdir = ./html +base = file:./html +versionsym = 1.0.0 +defines = Q_QDOC \ + QT_.*_SUPPORT \ + QT_.*_LIB \ + QT_COMPAT \ + QT_KEYPAD_NAVIGATION \ + QT3_SUPPORT \ + Q_WS_.* \ + Q_OS_.* \ + Q_BYTE_ORDER \ + __cplusplus + +codeindent = 1 +extraimages.HTML = qt-logo \ + trolltech-logo + +macro.br.HTML = "<br />" +macro.QD = "\\e{Qt Designer}" +macro.QA = "\\e{Qt Assistant}" +macro.eacute.HTML = "é" +macro.aring.HTML = "å" +macro.oslash.HTML = "ø" +macro.ouml.HTML = "ö" +macro.Auml.HTML = "Ä" +macro.uuml.HTML = "ü" +macro.starslash = "\\c{*/}" + +Cpp.ignoretokens = QAXFACTORY_EXPORT \ + QDESIGNER_COMPONENTS_LIBRARY \ + QDESIGNER_EXTENSION_LIBRARY \ + QDESIGNER_SDK_LIBRARY \ + QDESIGNER_SHARED_LIBRARY \ + QDESIGNER_UILIB_LIBRARY \ + QM_EXPORT_CANVAS \ + QM_EXPORT_DNS \ + QM_EXPORT_DOM \ + QM_EXPORT_FTP \ + QM_EXPORT_HTTP \ + QM_EXPORT_ICONVIEW \ + QM_EXPORT_NETWORK \ + QM_EXPORT_OPENGL \ + QM_EXPORT_SQL \ + QM_EXPORT_TABLE \ + QM_EXPORT_WORKSPACE \ + QM_EXPORT_XML \ + QT_ASCII_CAST_WARN \ + QT_BEGIN_HEADER \ + QT_DESIGNER_STATIC \ + QT_END_HEADER \ + QT_WIDGET_PLUGIN_EXPORT \ + Q_COMPAT_EXPORT \ + Q_CORE_EXPORT \ + Q_EXPLICIT \ + Q_EXPORT \ + Q_EXPORT_CODECS_CN \ + Q_EXPORT_CODECS_JP \ + Q_EXPORT_CODECS_KR \ + Q_EXPORT_PLUGIN \ + Q_GFX_INLINE \ + Q_GUI_EXPORT \ + Q_GUI_EXPORT_INLINE \ + Q_GUI_EXPORT_STYLE_CDE \ + Q_GUI_EXPORT_STYLE_COMPACT \ + Q_GUI_EXPORT_STYLE_MAC \ + Q_GUI_EXPORT_STYLE_MOTIF \ + Q_GUI_EXPORT_STYLE_MOTIFPLUS \ + Q_GUI_EXPORT_STYLE_PLATINUM \ + Q_GUI_EXPORT_STYLE_POCKETPC \ + Q_GUI_EXPORT_STYLE_SGI \ + Q_GUI_EXPORT_STYLE_WINDOWS \ + Q_GUI_EXPORT_STYLE_WINDOWSXP \ + Q_INLINE_TEMPLATE \ + Q_NETWORK_EXPORT \ + Q_OPENGL_EXPORT \ + Q_OUTOFLINE_TEMPLATE \ + Q_SQL_EXPORT \ + Q_SVG_EXPORT \ + Q_SCRIPT_EXPORT \ + Q_TESTLIB_EXPORT \ + Q_TYPENAME \ + Q_XML_EXPORT \ + QDBUS_EXPORT +Cpp.ignoredirectives = Q_DECLARE_HANDLE \ + Q_DECLARE_INTERFACE \ + Q_DECLARE_METATYPE \ + Q_DECLARE_OPERATORS_FOR_FLAGS \ + Q_DECLARE_PRIVATE \ + Q_DECLARE_PUBLIC \ + Q_DECLARE_SHARED \ + Q_DECLARE_TR_FUNCTIONS \ + Q_DECLARE_TYPEINFO \ + Q_DISABLE_COPY \ + Q_DUMMY_COMPARISON_OPERATOR \ + Q_ENUMS \ + Q_FLAGS \ + Q_INTERFACES \ + __attribute__ + +HTML.stylesheets = classic.css +HTML.postheader = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">\n" \ + "<tr>\n" \ + "<td align=\"left\" valign=\"top\" width=\"32\">" \ + "<a href=\"http://www.trolltech.com/products/qt\"><img src=\"images/qt-logo.png\" align=\"left\" width=\"32\" height=\"32\" border=\"0\" /></a>" \ + "</td>\n" \ + "<td width=\"1\"> </td>" \ + "<td class=\"postheader\" valign=\"center\">" \ + "<a href=\"index.html\">" \ + "<font color=\"#004faf\">Home</font></a> ·" \ + " <a href=\"classes.html\">" \ + "<font color=\"#004faf\">All Classes</font></a> ·" \ + " <a href=\"interfaces.html\">" \ + "<font color=\"#004faf\">All Interfaces</font></a> ·" \ + " <a href=\"functions.html\">" \ + "<font color=\"#004faf\">Functions</font></a>" \ + "</td>\n" \ + "<td align=\"right\" valign=\"top\" width=\"230\"><a href=\"http://www.trolltech.com\"><img src=\"images/trolltech-logo.png\" align=\"right\" width=\"203\" height=\"32\" border=\"0\" /></a></td></tr></table>" + +HTML.footer = "<p /><address><hr /><div align=\"center\">\n" \ + "<table width=\"100%\" cellspacing=\"0\" border=\"0\"><tr class=\"address\">\n" \ + "<td width=\"30%\">Copyright © \$THISYEAR\$ <a href=\"trolltech.html\">Trolltech</a></td>\n" \ + "<td width=\"40%\" align=\"center\"><a href=\"trademarks.html\">Trademarks</a></td>\n" \ + "<td width=\"30%\" align=\"right\"><div align=\"right\">Qt \\version</div></td>\n" \ + "</tr></table></div></address>" |