Commit 0f492fb4 authored by Leena Miettinen's avatar Leena Miettinen
Browse files

Doc: edit extensionsystem documentation



Use standard wording and fix some and style issues.

Change-Id: I6c226f8b8600833666f1da34f1f1e71cb333f30a
Reviewed-by: default avatarTobias Hunger <tobias.hunger@digia.com>
parent 2cf14efa
......@@ -86,19 +86,20 @@ enum { debugLeaks = 0 };
\endlist
\section1 Plugins
Plugins consist of an xml descriptor file, and of a library that contains a Qt plugin
Plugins consist of an XML descriptor file, and of a library that contains a Qt plugin
(declared via Q_EXPORT_PLUGIN) that must derive from the IPlugin class.
The plugin manager is used to set a list of file system directories to search for
plugins, retrieve information about the state of these plugins, and to load them.
Usually the application creates a PluginManager instance and initiates the loading.
Usually, the application creates a PluginManager instance and initiates the
loading.
\code
ExtensionSystem::PluginManager *manager = new ExtensionSystem::PluginManager();
manager->setPluginPaths(QStringList() << "plugins"); // 'plugins' and subdirs will be searched for plugins
manager->loadPlugins(); // try to load all the plugins
\endcode
Additionally it is possible to directly access to the plugin specifications
(the information in the descriptor file), and the plugin instances (via PluginSpec),
Additionally, it is possible to directly access the plugin specifications
(the information in the descriptor file), the plugin instances (via PluginSpec),
and their state.
\section1 Object Pool
......@@ -198,26 +199,28 @@ enum { debugLeaks = 0 };
/*!
\fn void PluginManager::objectAdded(QObject *obj)
Signal that \a obj has been added to the object pool.
Signals that \a obj has been added to the object pool.
*/
/*!
\fn void PluginManager::aboutToRemoveObject(QObject *obj)
Signal that \a obj will be removed from the object pool.
Signals that \a obj will be removed from the object pool.
*/
/*!
\fn void PluginManager::pluginsChanged()
Signal that the list of available plugins has changed.
Signals that the list of available plugins has changed.
\sa plugins()
*/
/*!
\fn T *PluginManager::getObject() const
Retrieve the object of a given type from the object pool.
This method is aware of Aggregation::Aggregate, i.e. it uses
the Aggregation::query methods instead of qobject_cast to
\fn T *PluginManager::getObject()
Retrieves the object of a given type from the object pool.
This method is aware of Aggregation::Aggregate. That is, it uses
the \c Aggregation::query methods instead of \c qobject_cast to
determine the type of an object.
If there are more than one object of the given type in
the object pool, this method will choose an arbitrary one of them.
......@@ -226,10 +229,12 @@ enum { debugLeaks = 0 };
*/
/*!
\fn QList<T *> PluginManager::getObjects() const
Retrieve all objects of a given type from the object pool.
This method is aware of Aggregation::Aggregate, i.e. it uses
the Aggregation::query methods instead of qobject_cast to
\fn QList<T *> PluginManager::getObjects()
Retrieves all objects of a given type from the object pool.
This method is aware of Aggregation::Aggregate. That is, it uses
the \c Aggregation::query methods instead of \c qobject_cast to
determine the type of an object.
\sa addObject()
......@@ -246,7 +251,7 @@ static bool lessThanByPluginName(const PluginSpec *one, const PluginSpec *two)
PluginManager *PluginManager::m_instance = 0;
/*!
Get the unique plugin manager instance.
Gets the unique plugin manager instance.
*/
PluginManager *PluginManager::instance()
{
......@@ -254,7 +259,7 @@ PluginManager *PluginManager::instance()
}
/*!
Create a plugin manager. Should be done only once per application.
Creates a plugin manager. Should be done only once per application.
*/
PluginManager::PluginManager()
: d(new PluginManagerPrivate(this))
......@@ -272,7 +277,9 @@ PluginManager::~PluginManager()
}
/*!
Add the given object \a obj to the object pool, so it can be retrieved again from the pool by type.
Adds the object \a obj to the object pool, so it can be retrieved
again from the pool by type.
The plugin manager does not do any memory management - added objects
must be removed from the pool and deleted manually by whoever is responsible for the object.
......@@ -297,8 +304,10 @@ void PluginManager::removeObject(QObject *obj)
}
/*!
Retrieve the list of all objects in the pool, unfiltered.
Usually clients do not need to call this.
Retrieves the list of all objects in the pool, unfiltered.
Usually, clients do not need to call this function.
\sa PluginManager::getObject()
\sa PluginManager::getObjects()
*/
......@@ -388,7 +397,8 @@ void PluginManager::setFileExtension(const QString &extension)
}
/*!
Define the user specific settings to use for information about enabled/disabled plugins.
Defines the user specific settings to use for information about enabled and
disabled plugins.
Needs to be set before the plugin search path is set with setPluginPaths().
*/
void PluginManager::setSettings(QSettings *settings)
......@@ -397,7 +407,8 @@ void PluginManager::setSettings(QSettings *settings)
}
/*!
Define the global (user-independent) settings to use for information about default disabled plugins.
Defines the global (user-independent) settings to use for information about
default disabled plugins.
Needs to be set before the plugin search path is set with setPluginPaths().
*/
void PluginManager::setGlobalSettings(QSettings *settings)
......@@ -406,7 +417,8 @@ void PluginManager::setGlobalSettings(QSettings *settings)
}
/*!
Returns the user specific settings used for information about enabled/disabled plugins.
Returns the user specific settings used for information about enabled and
disabled plugins.
*/
QSettings *PluginManager::settings()
{
......@@ -427,7 +439,7 @@ void PluginManager::writeSettings()
}
/*!
The arguments left over after parsing (Neither startup nor plugin
The arguments left over after parsing (that were neither startup nor plugin
arguments). Typically, this will be the list of files to open.
*/
QStringList PluginManager::arguments()
......@@ -457,7 +469,7 @@ QHash<QString, PluginCollection *> PluginManager::pluginCollections()
static const char argumentKeywordC[] = ":arguments";
/*!
Serialize plugin options and arguments for sending in a single string
Serializes plugin options and arguments for sending in a single string
via QtSingleApplication:
":myplugin|-option1|-option2|:arguments|argument1|argument2",
as a list of lists started by a keyword with a colon. Arguments are last.
......@@ -591,7 +603,7 @@ static inline void formatOption(QTextStream &str,
}
/*!
Format the startup options of the plugin manager for command line help.
Formats the startup options of the plugin manager for command line help.
*/
void PluginManager::formatOptions(QTextStream &str, int optionIndentation, int descriptionIndentation)
......@@ -616,7 +628,7 @@ void PluginManager::formatOptions(QTextStream &str, int optionIndentation, int d
}
/*!
Format the plugin options of the plugin specs for command line help.
Formats the plugin options of the plugin specs for command line help.
*/
void PluginManager::formatPluginOptions(QTextStream &str, int optionIndentation, int descriptionIndentation)
......@@ -636,7 +648,7 @@ void PluginManager::formatPluginOptions(QTextStream &str, int optionIndentation,
}
/*!
Format the version of the plugin specs for command line help.
Formats the version of the plugin specs for command line help.
*/
void PluginManager::formatPluginVersions(QTextStream &str)
{
......@@ -743,7 +755,8 @@ QString PluginManager::testDataDirectory()
}
/*!
Create a profiling entry showing the elapsed time if profiling is activated.
Creates a profiling entry showing the elapsed time if profiling is
activated.
*/
void PluginManager::profilingReport(const char *what, const PluginSpec *spec)
......@@ -1313,7 +1326,7 @@ void PluginManagerPrivate::profilingSummary() const
}
/*!
\brief Retrieves one object with a given name from the object pool.
Retrieves one object with \a name from the object pool.
\sa addObject()
*/
......@@ -1329,7 +1342,8 @@ QObject *PluginManager::getObjectByName(const QString &name)
}
/*!
Retrieves one object inheriting a class with a given name from the object pool.
Retrieves one object inheriting a class with \a className from the object
pool.
\sa addObject()
*/
......
......@@ -66,8 +66,9 @@
\brief The PluginDependency class contains the name and required compatible
version number of a plugin's dependency.
This reflects the data of a dependency tag in the plugin's xml description file.
The name and version are used to resolve the dependency, i.e. a plugin with the given name and
This reflects the data of a dependency tag in the plugin's XML description
file. The name and version are used to resolve the dependency. That is,
a plugin with the given name and
plugin \c {compatibility version <= dependency version <= plugin version} is searched for.
See also ExtensionSystem::IPlugin for more information about plugin dependencies and
......@@ -115,14 +116,15 @@
/*!
\enum ExtensionSystem::PluginSpec::State
The State enum indicates the states the plugin goes through while
it is being loaded.
The plugin goes through several steps while being loaded.
The state gives a hint on what went wrong in case of an error.
\value Invalid
Starting point: Even the xml description file was not read.
Starting point: Even the XML description file was not read.
\value Read
The xml description file has been successfully read, and its
The XML description file has been successfully read, and its
information is available via the PluginSpec.
\value Resolved
The dependencies given in the description file have been
......@@ -236,7 +238,8 @@ QString PluginSpec::description() const
}
/*!
The plugin url where you can find more information about the plugin. This is valid after the PluginSpec::Read state is reached.
The plugin URL where you can find more information about the plugin.
This is valid after the PluginSpec::Read state is reached.
*/
QString PluginSpec::url() const
{
......@@ -253,7 +256,7 @@ QString PluginSpec::category() const
}
/*!
Returns if the plugin has its experimental flag set.
Returns whether the plugin has its experimental flag set.
*/
bool PluginSpec::isExperimental() const
{
......@@ -261,7 +264,7 @@ bool PluginSpec::isExperimental() const
}
/*!
Returns if the plugin is disabled by default.
Returns whether the plugin is disabled by default.
This might be because the plugin is experimental, or because
the plugin manager's settings define it as disabled by default.
*/
......@@ -271,10 +274,12 @@ bool PluginSpec::isDisabledByDefault() const
}
/*!
Returns if the plugin should be loaded at startup. True by default
Returns whether the plugin should be loaded at startup. True by default.
The user can change it from the Plugin settings.
Note: That this function returns true even if a plugin is disabled because
of a not loaded dependencies, or a error in loading.
\note This function returns true even if a plugin is disabled because its
dependencies were not loaded, or an error occurred during loading it.
*/
bool PluginSpec::isEnabledInSettings() const
{
......@@ -282,7 +287,7 @@ bool PluginSpec::isEnabledInSettings() const
}
/*!
Returns if the plugin is loaded at startup.
Returns whether the plugin is loaded at startup.
\see PluginSpec::isEnabled
*/
bool PluginSpec::isEffectivelyEnabled() const
......@@ -301,7 +306,7 @@ bool PluginSpec::isDisabledIndirectly() const
}
/*!
Returns if the plugin is enabled via the -load option on the command line.
Returns whether the plugin is enabled via the -load option on the command line.
*/
bool PluginSpec::isForceEnabled() const
{
......@@ -309,7 +314,7 @@ bool PluginSpec::isForceEnabled() const
}
/*!
Returns if the plugin is disabled via the -noload option on the command line.
Returns whether the plugin is disabled via the -noload option on the command line.
*/
bool PluginSpec::isForceDisabled() const
{
......@@ -334,7 +339,7 @@ PluginSpec::PluginArgumentDescriptions PluginSpec::argumentDescriptions() const
}
/*!
The absolute path to the directory containing the plugin xml description file
The absolute path to the directory containing the plugin XML description file
this PluginSpec corresponds to.
*/
QString PluginSpec::location() const
......@@ -343,7 +348,7 @@ QString PluginSpec::location() const
}
/*!
The absolute path to the plugin xml description file (including the file name)
The absolute path to the plugin XML description file (including the file name)
this PluginSpec corresponds to.
*/
QString PluginSpec::filePath() const
......@@ -352,7 +357,7 @@ QString PluginSpec::filePath() const
}
/*!
Command line arguments specific to that plugin. Set at startup
Command line arguments specific to the plugin. Set at startup.
*/
QStringList PluginSpec::arguments() const
......@@ -361,7 +366,7 @@ QStringList PluginSpec::arguments() const
}
/*!
Set the command line arguments specific to that plugin to \a arguments.
Sets the command line arguments specific to the plugin to \a arguments.
*/
void PluginSpec::setArguments(const QStringList &arguments)
......@@ -370,7 +375,7 @@ void PluginSpec::setArguments(const QStringList &arguments)
}
/*!
Adds \a argument to the command line arguments specific to that plugin.
Adds \a argument to the command line arguments specific to the plugin.
*/
void PluginSpec::addArgument(const QString &argument)
......@@ -405,7 +410,7 @@ QString PluginSpec::errorString() const
}
/*!
Returns if this plugin can be used to fill in a dependency of the given
Returns whether this plugin can be used to fill in a dependency of the given
\a pluginName and \a version.
\sa PluginSpec::dependencies()
......
......@@ -45,9 +45,9 @@
\brief The PluginView class implements a widget that shows a list of all
plugins and their state.
This can be embedded e.g. in a dialog in the application that
This class can be embedded for example in a dialog in the application that
uses the plugin manager.
The class also provides notifications for interactions with the list.
The class also provides notifications for interaction with the list.
\sa ExtensionSystem::PluginDetailsView
\sa ExtensionSystem::PluginErrorView
......@@ -62,7 +62,7 @@
/*!
\fn void PluginView::pluginActivated(ExtensionSystem::PluginSpec *spec)
The plugin list entry corresponding to \a spec has been activated,
e.g. by a double-click.
for example by a double-click.
*/
using namespace ExtensionSystem;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment