Doc: Fix broken links in Extending Qt Creator Manual

- Move some images from qtcreator\images to qtcreatordev\images
- Hide directories from the doc build (these will be added
  gradually when we fix the docs for the classes in them)
- Fix broken links
- Add README.md that describes the doc projects in the repo

Fixes: QTCREATORBUG-23544
Change-Id: I4fc29d8fbc8b7a0a0f81fa3261f6412c47b9d84e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Leena Miettinen
2020-02-10 13:28:29 +01:00
parent 4ebf6981db
commit e12ba2d683
18 changed files with 251 additions and 192 deletions

36
doc/README.md Normal file
View File

@@ -0,0 +1,36 @@
# Documentation Projects in This Repository
The qtcreator repository contains the sources for building the following
documents:
- Qt Creator Manual
- Extending Qt Creator Manual
- Qt Design Studio Manual
The sources for each project are stored in the following subfolders of
the doc folder:
- qtcreator
- qtcreatordev
- qtdesignstudio
The Qt Design Studio Manual is based on the Qt Creator Manual, with
additional topics. For more information, see the `README` file in the
qtdesignstudio subfolder.
The Extending Qt Creator Manual has its own sources. In addition, it
pulls in API reference documentation from the Qt Creator source files.
# QDoc Warnings
All the documents are built when you enter `make docs` on Linux or
macOS or `nmake docs` on Windows. At the time of this writing, this
leads to QDoc warnings being generated, because the Qt Creator Manual
requires QDoc from Qt 5.14 or later (it links to new modules), whereas
the Extending Qt Creator Manual requires QDoc from Qt 5.10 or earlier,
because the doc configuration is not supported when using the Clang
parser.
To hide the doc errors and make doc builds faster, enter an option
to write the doc errors to the log. For example, on Windows enter
`nmake docs 2> log.txt`.

View File

@@ -6,30 +6,12 @@ language = Cpp
headerdirs = . \
../src \
../../../src/libs/aggregation \
../../../src/libs/cplusplus \
../../../src/libs/extensionsystem \
../../../src/libs/utils \
../../../src/libs/qmljs \
../../../src/libs/qtcreatorcdbext \
../../../src/plugins/coreplugin \
../../../src/plugins/debugger \
../../../src/plugins/vcsbase \
../../../src/plugins/projectexplorer \
../../../src/plugins/texteditor
../../../src/libs/extensionsystem
sourcedirs = . \
../src \
../../../src/libs/aggregation \
../../../src/libs/cplusplus \
../../../src/libs/extensionsystem \
../../../src/libs/utils \
../../../src/libs/qmljs \
../../../src/libs/qtcreatorcdbext \
../../../src/plugins/coreplugin \
../../../src/plugins/debugger \
../../../src/plugins/vcsbase \
../../../src/plugins/projectexplorer\
../../../src/plugins/texteditor
../../../src/libs/extensionsystem
# -- Uncomment following option to generate complete documentation
# instead of public API documentation only.
@@ -39,7 +21,8 @@ headers.fileextensions = "*.h"
sources.fileextensions = "*.cpp *.qdoc"
imagedirs = ../images \
../../config/images
../../config/images \
../../qtcreator/images
exampledirs = ../examples
depends += qtwidgets \
@@ -55,7 +38,6 @@ depends += qtwidgets \
qtlinguist \
qtsensors \
qtuitools \
qtwebkit \
qtxml \
qttestlib

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

View File

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -1,6 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -123,7 +123,7 @@
For more information on binary compatibility, see
\l{http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++}{Binary Compatibility Issues With C++}.
From the viewpoint of \l{Plugin Specifications} this means that
From the viewpoint of \l{Plugin Meta Data}{plugin metadata} this means that:
\list
\li \QC plugins in patch releases will have the minor release as \c {compatVersion}. For
example the plugins from version 3.1.2 will have \c {compatVersion="3.1.0"}.
@@ -695,7 +695,7 @@
You can add objects to the global object pool via
\l{ExtensionSystem::PluginManager::addObject()}, and retrieve objects
of a specific type again via
\l{ExtensionSystem::PluginManager::getObjects()}. This should mostly
\l{ExtensionSystem::PluginManager::getObject()}. This should mostly
be used for implementations of \l{Plugin Extension Points}.
\note Do not put a singleton into the pool, and do not retrieve

View File

@@ -1,6 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -23,135 +23,6 @@
**
****************************************************************************/
/*!
\page qtcreator-api.html
\title Qt Creator API Reference
The core of \QC is basically only a \l{ExtensionSystem}{plugin loader}. All
functionality is implemented in plugins. The basis of \QC is implemented in
the \l{Core}{Core} Plugin. The plugin manager provides simple means for
plugin cooperation that allow plugins to provide hooks for other plugin's
extensions.
\section1 Libraries
\section2 Core Libraries
There are a few core libraries used by many parts of Qt Creator.
\table
\header
\li Library Name
\li Description
\row
\li \l{Aggregation}
\li Adds functionality for "glueing" QObjects of different types
together, so you can "cast" between them.
\row
\li \l{ExtensionSystem}
\li Implements the plugin loader framework. Provides a base class
for plugins and basic mechanisms for plugin interaction like an
object pool.
\row
\li \l{Utils}
\li General utility library.
\row
\li \l{QmlJS}
\li QML and JavaScript language support library.
\endtable
\section2 Additional libraries
\table
\header
\li Library Name
\li Description
\row
\li \l{qtcreatorcdbext}
\li Windows CDB debugger extension
\endtable
\section1 Plugins
As already mentioned, \QC is basically only a plugin loader framework
which gets its IDE functionality through plugins. The most important plugin
is the \c Core plugin which provides all the basic functionality needed
later to integrate e.g. editors or mode windows.
\table
\header
\li Plugin Name
\li Description
\row
\li \l{Core}
\li The core plugin. Provides the main window and managers for
editors, actions, mode windows and files, just to mention the
most important ones.
This plugin also contains classes necessary to hook into the
\l{Locator} as well as support for searching text in arbitrary
widgets.
\row
\li \l{ProjectExplorer}
\li The project explorer plugin. Provides base classes for project
handling.
\row
\li \l{Debugger}
\li Debugging functionality.
\row
\li \l{VcsBase}
\li Base classes for version control support.
\row
\li \l{TextEditor}
\li This is where everything starts if you want to create a text
editor. Besides the base editor itself, this plugin contains
APIs for supporting functionality like \l{Snippets}{snippets},
highlighting, \l{CodeAssist}{code assist}, indentation and
style, and others.
\endtable
*/
/*!
\page classes.html
\title Qt Creator Classes
\generatelist classes
*/
/*!
\page namespaces.html
\title Qt Creator Namespaces
\generatelist namespaces
*/
/*!
\page mainclasses.html
\title Qt Creator Main Classes
\generatelist mainclasses
*/
/*!
\page functions.html
\title Qt Creator Functions
\generatelist functionindex
*/
/*!
\page common_extension_tasks.html
\title Common Extension Tasks
@@ -223,6 +94,7 @@
search. You can add support for widgets under your control.
\li \l{Core::IFindSupport}, \l{Find::BaseTextFind}
\omit
\row
\li Add a completely new project type.
\li
@@ -232,6 +104,7 @@
\li Add a new type of build step.
\li
\li
\endomit
\row
\li Add a new filter to the locator.
@@ -248,10 +121,5 @@
that support it).
\li \l{Core::ProgressManager}, \l{Core::FutureProgress}
\row
\li
\li
\li
\endtable
*/

View File

@@ -1,6 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -143,7 +143,9 @@
\endtable
The \c executable tag allows the following subtags. You must specify at least
one \c path. All subtags can contain special \l{Qt Creator Variables}.
one \c path. All subtags can contain special
\l{https://doc.qt.io/qtcreator/creator-build-settings.html#using-qt-creator-variables}
{Qt Creator variables}.
\table
\header

View File

@@ -1,6 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -67,7 +67,7 @@
\image firstplugin-kitselection.png "Choose the kit to build and run your project with"
\li Select the \l{glossary-buildandrun-kit}{kit} to build and run your
\li Select the kit to build and run your
project with. For a \QC plugin this needs to be a kit with
\uicontrol Desktop device type, and a Qt version that is compatible
with the Qt version that your \QC was built with (in the best case
@@ -316,7 +316,7 @@
The base class defines basic functions that are called during the life cycle
of a plugin, which are here implemented for your new plugin. These functions
and their roles are described in detail in \l{The Plugin Life Cycle}.
and their roles are described in detail in \l{Plugin Life Cycle}.
\snippet exampleplugin/exampleplugin.h slot
@@ -347,14 +347,12 @@
action manager provides a central place where the user can assign and change
keyboard shortcuts, and manages cases where for example a menu item should
be directed to different plugins under different circumstances, as well as a
few other things. This is described in more detail in
\l{Menus and Menu Items}.
few other things.
\snippet exampleplugin/exampleplugin.cpp add menu
Here a new menu item is created, the created command added to it, and the
menu added to the \uicontrol Tools menu in the menu bar. Again, this is
covered in more detail in \l{Menus and Menu Items}.
menu added to the \uicontrol Tools menu in the menu bar.
\snippet exampleplugin/exampleplugin.cpp slot implementation

View File

@@ -1,6 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -57,7 +57,7 @@
\li Verifies that the dependencies of each plugin
exist and are compatible. For more information about plugin dependencies,
see \l{Plugin Specifications}.
see \l{Plugin Meta Data}.
\li Sets the plugins to \c Resolved state.
@@ -117,7 +117,7 @@
that could unnecessarily delay showing the \QC UI if done during startup.
After all delayed initializations are done the \l{ExtensionSystem::PluginManager}{PluginManager}
sends the \l{ExtensionSystem::PluginManager::initializationDone()}{initializationDone()} signal.
sends the \c initializationDone() signal.
Before shutdown, the \c Core plugin \l{Core::ICore} sends the
\l{Core::ICore::coreAboutToClose()}{coreAboutToClose()} signal. After that, the

View File

@@ -1,6 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -32,8 +32,7 @@
There are occasions though, where using the plugin manager API is necessary.
Plugins need to access the plugin manager's object pool to extend
some aspects of \QC, for example to add pages to the options dialog. They
can also utilize the object pool to provide extension points for other plugins
(see \l{Extending and Providing Interfaces}).
can also utilize the object pool to provide extension points for other plugins.
\section1 Plugin Manager
@@ -65,13 +64,13 @@
\li Unregisters an object from the object pool.
Also available through ExtensionSystem::IPlugin::removeObject().
\row
\li getObjects<T>()
\li Returns all objects of type T that are registered in the object pool.
This respects \l{Aggregations}.
\li allObjects()
\li Returns an unfiltered list of all objects that are registered
in the object pool.
\row
\li getObject<T>()
\li Returns one object of type T that is registered in the object pool.
This respects \l{Aggregations}.
This respects \l{Aggregation}.
\row
\li getObjectByName(const QString &name)
\li Returns one object with the given object name that is registered in the object pool.
@@ -100,24 +99,25 @@
prerequisites.
All objects of a specified type can be retrieved from the object pool
via the \l{ExtensionSystem::PluginManager::getObjects()}{getObjects()} and
\l{ExtensionSystem::PluginManager::getObject()}{getObject()} functions.
They are aware of Aggregation::Aggregate, so these functions use the Aggregation::query()
functions instead of qobject_cast to determine the matching objects.
via the \l{ExtensionSystem::PluginManager::getObject()}{getObject()} function.
It is aware of Aggregation::Aggregate, and uses the Aggregation::query()
function instead of \c qobject_cast to determine the matching objects.
An unfiltered list of all objects that are registered in the object pool
can be retrieved via the \l{ExtensionSystem::PluginManager::allObjects()}
{allObjects()} function.
It is also possible to retrieve an object with a specific object name with
\l{ExtensionSystem::PluginManager::getObjectByName()}{getObjectByName()}
(see QObject::objectName()).
Whenever the state of the object pool changes, a corresponding
\l{ExtensionSystem::PluginManager::objectAdded()}{objectAdded()} or
\l{ExtensionSystem::PluginManager::aboutToRemoveObject()}{aboutToRemoveObject()} signal is
emitted by the plugin manager.
\c objectAdded() or \c aboutToRemoveObject() signal is emitted
by the plugin manager.
A common use case for the object pool is that a plugin (or the application) provides
an \e{extension point} for other plugins, which is a class that can
be implemented and added to the object pool to be retrieved by the providing plugin.
It is also possible to use the object pool to provide access to an object without actually
linking against the providing plugin library. See \l{Extending and Providing Interfaces}
for details.
linking against the providing plugin library.
*/

View File

@@ -52,8 +52,7 @@
be plain text) that you regularly want to insert into a bigger body of code,
but do not want to type each time. For example, \c while and \c for loops,
\c if-else and \c try-catch constructs, and class skeletons. Snippets are
triggered in the same way as normal code completion (see
\l{Code Assist}{Providing Code Assist}).
triggered in the same way as normal code completion.
\QC contains a set of preconfigured snippets groups to which you can add
your own snippets.
@@ -140,8 +139,8 @@
\li \l{Qt Creator Coding Rules}
\omit
\li Text Editors
\endomit
\li \l{CodeAssist}{Providing Code Assist}
\endomit
\endlist
\section2 Other Custom Editors
@@ -242,7 +241,7 @@
\section1 All Topics
\list
\li \l{Developing Qt Creator Plugins}
\li Developing Qt Creator Plugins
\list
\li \l{Creating Plugins}
\omit

View File

@@ -0,0 +1,174 @@
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
\page qtcreator-api.html
\title Qt Creator API Reference
The core of \QC is basically only a \l{ExtensionSystem}{plugin loader}. All
functionality is implemented in plugins. The basis of \QC is implemented in
the Core plugin. The plugin manager provides simple means for
plugin cooperation that allow plugins to provide hooks for other plugin's
extensions.
\section1 Libraries
\section2 Core Libraries
There are a few core libraries used by many parts of Qt Creator.
\table
\header
\li Library Name
\li Description
\row
\li \l{Aggregation}
\li Adds functionality for \e glueing QObjects of different types
together, so you can \e cast between them.
\row
\li \l{ExtensionSystem}
\li Implements the plugin loader framework. Provides a base class
for plugins and basic mechanisms for plugin interaction like an
object pool.
\omit
\row
\li \l{Utils}
\li General utility library.
\row
\li \l{QmlJS}
\li QML and JavaScript language support library.
\endtable
\section2 Additional libraries
\table
\header
\li Library Name
\li Description
\row
\li \l{qtcreatorcdbext}
\li Windows CDB debugger extension
\endtable
\section1 Plugins
As already mentioned, \QC is basically only a plugin loader framework
which gets its IDE functionality through plugins. The most important plugin
is the Core plugin which provides all the basic functionality needed
later to integrate e.g. editors or mode windows.
\table
\header
\li Plugin Name
\li Description
\row
\li \l{Core}
\li The core plugin. Provides the main window and managers for
editors, actions, mode windows and files, just to mention the
most important ones.
This plugin also contains classes necessary to hook into the
\l{Locator} as well as support for searching text in arbitrary
widgets.
\row
\li \l{ProjectExplorer}
\li The project explorer plugin. Provides base classes for project
handling.
\row
\li \l{Debugger}
\li Debugging functionality.
\row
\li \l{VcsBase}
\li Base classes for version control support.
\row
\li \l{TextEditor}
\li This is where everything starts if you want to create a text
editor. Besides the base editor itself, this plugin contains
APIs for supporting functionality like \l{Snippets}{snippets},
highlighting, \l{CodeAssist}{code assist}, indentation and
style, and others.
\endomit
\endtable
\section1 Reference
\list
\li \l {Qt Creator C++ Classes}
\li \l {Qt Creator Namespaces}
\li \l {Qt Creator Functions}
\endlist
*/
/*!
\module QtCreator
\title Qt Creator C++ Classes
This topic lists the documented Qt Creator C++ classes. For information
about the classes that have not been documented, please inspect the source
code.
*/
/*!
\page namespaces.html
\title Qt Creator Namespaces
This topic lists the documented Qt Creator namespaces. For information
about the namespaces that have not been documented, please inspect the
source code.
\generatelist namespaces
*/
/*!
\page mainclasses.html
\title Qt Creator Main Classes
This topic lists the most important Qt Creator C++ classes.
\generatelist mainclasses
*/
/*!
\page functions.html
\title Qt Creator Functions
This topic lists the documented Qt Creator functions. For information
about the functions that have not been documented, please inspect the
source code.
\generatelist functionindex
*/