Commit 63ff7452 authored by Eike Ziller's avatar Eike Ziller
Browse files

Merge remote-tracking branch 'origin/2.8'

Conflicts:
	src/libs/extensionsystem/pluginmanager.cpp
	src/libs/extensionsystem/pluginspec.cpp
	src/plugins/coreplugin/basefilewizard.cpp
	src/plugins/coreplugin/coreplugin.pro
	src/plugins/coreplugin/coreplugin.qbs
	src/plugins/coreplugin/editormanager/ieditor.cpp
	src/plugins/coreplugin/externaltool.cpp
	src/plugins/coreplugin/icore.cpp
	src/plugins/cpptools/cppmodelmanager.cpp
	src/plugins/fakevim/fakevimhandler.cpp
	src/plugins/find/ifindfilter.cpp
	src/plugins/projectexplorer/buildstep.cpp
	src/plugins/projectexplorer/devicesupport/idevice.cpp
	src/plugins/projectexplorer/runconfiguration.cpp
	src/plugins/vcsbase/vcsbaseeditor.cpp
	tests/system/suite_debugger/tst_simple_analyze/test.py

Change-Id: I11dc9e60bfc14bad4f8af747d041fc7678a07c17
parents 19c735a4 a12a9f49
...@@ -88,19 +88,20 @@ enum { debugLeaks = 0 }; ...@@ -88,19 +88,20 @@ enum { debugLeaks = 0 };
\endlist \endlist
\section1 Plugins \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. (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 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. 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 \code
// 'plugins' and subdirs will be searched for plugins // 'plugins' and subdirs will be searched for plugins
ExtensionSystem::PluginManager::setPluginPaths(QStringList() << "plugins"); ExtensionSystem::PluginManager::setPluginPaths(QStringList() << "plugins");
ExtensionSystem::PluginManager::loadPlugins(); // try to load all the plugins ExtensionSystem::PluginManager::loadPlugins(); // try to load all the plugins
\endcode \endcode
Additionally it is possible to directly access to the plugin specifications Additionally, it is possible to directly access the plugin specifications
(the information in the descriptor file), and the plugin instances (via PluginSpec), (the information in the descriptor file), the plugin instances (via PluginSpec),
and their state. and their state.
\section1 Object Pool \section1 Object Pool
...@@ -199,17 +200,17 @@ enum { debugLeaks = 0 }; ...@@ -199,17 +200,17 @@ enum { debugLeaks = 0 };
/*! /*!
\fn void PluginManager::objectAdded(QObject *obj) \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) \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() \fn void PluginManager::pluginsChanged()
Signal that the list of available plugins has changed. Signals that the list of available plugins has changed.
\sa plugins() \sa plugins()
*/ */
...@@ -217,9 +218,10 @@ enum { debugLeaks = 0 }; ...@@ -217,9 +218,10 @@ enum { debugLeaks = 0 };
/*! /*!
\fn T *PluginManager::getObject() \fn T *PluginManager::getObject()
Retrieve the object of a given type from the object pool. Retrieves 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 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. determine the type of an object.
If there are more than one object of the given type in If there are more than one object of the given type in
the object pool, this method will choose an arbitrary one of them. the object pool, this method will choose an arbitrary one of them.
...@@ -229,9 +231,11 @@ enum { debugLeaks = 0 }; ...@@ -229,9 +231,11 @@ enum { debugLeaks = 0 };
/*! /*!
\fn QList<T *> PluginManager::getObjects() \fn QList<T *> PluginManager::getObjects()
Retrieve all objects of a given type from the object pool.
This method is aware of Aggregation::Aggregate, i.e. it uses Retrieves all objects of a given type from the object pool.
the Aggregation::query methods instead of qobject_cast to
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. determine the type of an object.
\sa addObject() \sa addObject()
...@@ -249,7 +253,7 @@ static bool lessThanByPluginName(const PluginSpec *one, const PluginSpec *two) ...@@ -249,7 +253,7 @@ static bool lessThanByPluginName(const PluginSpec *one, const PluginSpec *two)
} }
/*! /*!
Get the unique plugin manager instance. Gets the unique plugin manager instance.
*/ */
PluginManager *PluginManager::instance() PluginManager *PluginManager::instance()
{ {
...@@ -257,7 +261,7 @@ PluginManager *PluginManager::instance() ...@@ -257,7 +261,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() PluginManager::PluginManager()
{ {
...@@ -275,7 +279,9 @@ PluginManager::~PluginManager() ...@@ -275,7 +279,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 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. must be removed from the pool and deleted manually by whoever is responsible for the object.
...@@ -300,8 +306,10 @@ void PluginManager::removeObject(QObject *obj) ...@@ -300,8 +306,10 @@ void PluginManager::removeObject(QObject *obj)
} }
/*! /*!
Retrieve the list of all objects in the pool, unfiltered. Retrieves the list of all objects in the pool, unfiltered.
Usually clients do not need to call this.
Usually, clients do not need to call this function.
\sa PluginManager::getObject() \sa PluginManager::getObject()
\sa PluginManager::getObjects() \sa PluginManager::getObjects()
*/ */
...@@ -396,7 +404,8 @@ void PluginManager::setFileExtension(const QString &extension) ...@@ -396,7 +404,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(). Needs to be set before the plugin search path is set with setPluginPaths().
*/ */
void PluginManager::setSettings(QSettings *settings) void PluginManager::setSettings(QSettings *settings)
...@@ -405,7 +414,8 @@ void PluginManager::setSettings(QSettings *settings) ...@@ -405,7 +414,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(). Needs to be set before the plugin search path is set with setPluginPaths().
*/ */
void PluginManager::setGlobalSettings(QSettings *settings) void PluginManager::setGlobalSettings(QSettings *settings)
...@@ -414,7 +424,8 @@ void PluginManager::setGlobalSettings(QSettings *settings) ...@@ -414,7 +424,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() QSettings *PluginManager::settings()
{ {
...@@ -435,7 +446,7 @@ void PluginManager::writeSettings() ...@@ -435,7 +446,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. arguments). Typically, this will be the list of files to open.
*/ */
QStringList PluginManager::arguments() QStringList PluginManager::arguments()
...@@ -465,7 +476,7 @@ QHash<QString, PluginCollection *> PluginManager::pluginCollections() ...@@ -465,7 +476,7 @@ QHash<QString, PluginCollection *> PluginManager::pluginCollections()
static const char argumentKeywordC[] = ":arguments"; 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: via QtSingleApplication:
":myplugin|-option1|-option2|:arguments|argument1|argument2", ":myplugin|-option1|-option2|:arguments|argument1|argument2",
as a list of lists started by a keyword with a colon. Arguments are last. as a list of lists started by a keyword with a colon. Arguments are last.
...@@ -599,7 +610,7 @@ static inline void formatOption(QTextStream &str, ...@@ -599,7 +610,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) void PluginManager::formatOptions(QTextStream &str, int optionIndentation, int descriptionIndentation)
...@@ -625,7 +636,7 @@ void PluginManager::formatOptions(QTextStream &str, int optionIndentation, int d ...@@ -625,7 +636,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) void PluginManager::formatPluginOptions(QTextStream &str, int optionIndentation, int descriptionIndentation)
...@@ -645,7 +656,7 @@ void PluginManager::formatPluginOptions(QTextStream &str, int optionIndentation, ...@@ -645,7 +656,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) void PluginManager::formatPluginVersions(QTextStream &str)
{ {
...@@ -762,7 +773,8 @@ QString PluginManager::testDataDirectory() ...@@ -762,7 +773,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) void PluginManager::profilingReport(const char *what, const PluginSpec *spec)
...@@ -1403,7 +1415,7 @@ QString PluginManager::platformName() ...@@ -1403,7 +1415,7 @@ QString PluginManager::platformName()
} }
/*! /*!
\brief Retrieves one object with a given name from the object pool. Retrieves one object with \a name from the object pool.
\sa addObject() \sa addObject()
*/ */
...@@ -1419,7 +1431,8 @@ QObject *PluginManager::getObjectByName(const QString &name) ...@@ -1419,7 +1431,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() \sa addObject()
*/ */
......
...@@ -66,8 +66,9 @@ ...@@ -66,8 +66,9 @@
\brief The PluginDependency class contains the name and required compatible \brief The PluginDependency class contains the name and required compatible
version number of a plugin's dependency. version number of a plugin's dependency.
This reflects the data of a dependency tag in the plugin's xml description file. This reflects the data of a dependency tag in the plugin's XML description
The name and version are used to resolve the dependency, i.e. a plugin with the given name and 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. plugin \c {compatibility version <= dependency version <= plugin version} is searched for.
See also ExtensionSystem::IPlugin for more information about plugin dependencies and See also ExtensionSystem::IPlugin for more information about plugin dependencies and
...@@ -115,14 +116,15 @@ ...@@ -115,14 +116,15 @@
/*! /*!
\enum ExtensionSystem::PluginSpec::State \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. The state gives a hint on what went wrong in case of an error.
\value Invalid \value Invalid
Starting point: Even the xml description file was not read. Starting point: Even the XML description file was not read.
\value 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. information is available via the PluginSpec.
\value Resolved \value Resolved
The dependencies given in the description file have been The dependencies given in the description file have been
...@@ -236,7 +238,8 @@ QString PluginSpec::description() const ...@@ -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 QString PluginSpec::url() const
{ {
...@@ -263,7 +266,7 @@ QRegExp PluginSpec::platformSpecification() const ...@@ -263,7 +266,7 @@ QRegExp PluginSpec::platformSpecification() const
} }
/*! /*!
Returns if the plugin has its experimental flag set. Returns whether the plugin has its experimental flag set.
*/ */
bool PluginSpec::isExperimental() const bool PluginSpec::isExperimental() const
{ {
...@@ -271,7 +274,7 @@ bool PluginSpec::isExperimental() const ...@@ -271,7 +274,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 This might be because the plugin is experimental, or because
the plugin manager's settings define it as disabled by default. the plugin manager's settings define it as disabled by default.
*/ */
...@@ -281,10 +284,12 @@ bool PluginSpec::isDisabledByDefault() const ...@@ -281,10 +284,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. 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 bool PluginSpec::isEnabledInSettings() const
{ {
...@@ -292,7 +297,7 @@ bool PluginSpec::isEnabledInSettings() const ...@@ -292,7 +297,7 @@ bool PluginSpec::isEnabledInSettings() const
} }
/*! /*!
Returns if the plugin is loaded at startup. Returns whether the plugin is loaded at startup.
\see PluginSpec::isEnabled \see PluginSpec::isEnabled
*/ */
bool PluginSpec::isEffectivelyEnabled() const bool PluginSpec::isEffectivelyEnabled() const
...@@ -314,7 +319,7 @@ bool PluginSpec::isDisabledIndirectly() const ...@@ -314,7 +319,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 bool PluginSpec::isForceEnabled() const
{ {
...@@ -322,7 +327,7 @@ bool PluginSpec::isForceEnabled() const ...@@ -322,7 +327,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 bool PluginSpec::isForceDisabled() const
{ {
...@@ -347,7 +352,7 @@ PluginSpec::PluginArgumentDescriptions PluginSpec::argumentDescriptions() const ...@@ -347,7 +352,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. this PluginSpec corresponds to.
*/ */
QString PluginSpec::location() const QString PluginSpec::location() const
...@@ -356,7 +361,7 @@ QString PluginSpec::location() const ...@@ -356,7 +361,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. this PluginSpec corresponds to.
*/ */
QString PluginSpec::filePath() const QString PluginSpec::filePath() const
...@@ -365,7 +370,7 @@ QString PluginSpec::filePath() const ...@@ -365,7 +370,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 QStringList PluginSpec::arguments() const
...@@ -374,7 +379,7 @@ QStringList PluginSpec::arguments() const ...@@ -374,7 +379,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) void PluginSpec::setArguments(const QStringList &arguments)
...@@ -383,7 +388,7 @@ void PluginSpec::setArguments(const QStringList &arguments) ...@@ -383,7 +388,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) void PluginSpec::addArgument(const QString &argument)
...@@ -418,7 +423,7 @@ QString PluginSpec::errorString() const ...@@ -418,7 +423,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. \a pluginName and \a version.
\sa PluginSpec::dependencies() \sa PluginSpec::dependencies()
......
...@@ -45,9 +45,9 @@ ...@@ -45,9 +45,9 @@
\brief The PluginView class implements a widget that shows a list of all \brief The PluginView class implements a widget that shows a list of all
plugins and their state. 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. 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::PluginDetailsView
\sa ExtensionSystem::PluginErrorView \sa ExtensionSystem::PluginErrorView
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
/*! /*!
\fn void PluginView::pluginActivated(ExtensionSystem::PluginSpec *spec) \fn void PluginView::pluginActivated(ExtensionSystem::PluginSpec *spec)
The plugin list entry corresponding to \a spec has been activated, 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; using namespace ExtensionSystem;
......
...@@ -207,7 +207,7 @@ public: ...@@ -207,7 +207,7 @@ public:
}; };
/*! /*!
Construct a QPacketProtocol instance that works on \a dev with the Constructs a QPacketProtocol instance that works on \a dev with the
specified \a parent. specified \a parent.
*/ */
QPacketProtocol::QPacketProtocol(QIODevice *dev, QObject *parent) QPacketProtocol::QPacketProtocol(QIODevice *dev, QObject *parent)
...@@ -265,7 +265,7 @@ QPacketAutoSend QPacketProtocol::send() ...@@ -265,7 +265,7 @@ QPacketAutoSend QPacketProtocol::send()
} }
/*! /*!
Transmit the \a packet. Transmits the packet \a p.
*/ */
void QPacketProtocol::send(const QPacket & p) void QPacketProtocol::send(const QPacket & p)
{ {
...@@ -292,7 +292,7 @@ qint64 QPacketProtocol::packetsAvailable() const ...@@ -292,7 +292,7 @@ qint64 QPacketProtocol::packetsAvailable() const
} }
/*! /*!
Discard any unread packets. Discards any unread packets.
*/ */
void QPacketProtocol::clear() void QPacketProtocol::clear()
{ {
...@@ -300,7 +300,7 @@ void QPacketProtocol::clear() ...@@ -300,7 +300,7 @@ void QPacketProtocol::clear()
} }
/*! /*!
Return the next unread packet, or an invalid QPacket instance if no packets Returns the next unread packet, or an invalid QPacket instance if no packets
are available. This method does NOT block. are available. This method does NOT block.
*/ */
QPacket QPacketProtocol::read() QPacket QPacketProtocol::read()
...@@ -314,8 +314,8 @@ QPacket QPacketProtocol::read() ...@@ -314,8 +314,8 @@ QPacket QPacketProtocol::read()
} }
/* /*!