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 };
\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
// 'plugins' and subdirs will be searched for plugins
ExtensionSystem::PluginManager::setPluginPaths(QStringList() << "plugins");
ExtensionSystem::PluginManager::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
......@@ -199,17 +200,17 @@ 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()
*/
......@@ -217,9 +218,10 @@ enum { debugLeaks = 0 };
/*!
\fn T *PluginManager::getObject()
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
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.
......@@ -229,9 +231,11 @@ enum { debugLeaks = 0 };
/*!
\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
the Aggregation::query methods instead of qobject_cast to
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()
......@@ -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()
{
......@@ -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()
{
......@@ -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
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)
}
/*!
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()
*/
......@@ -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().
*/
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().
*/
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()
{
......@@ -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.
*/
QStringList PluginManager::arguments()
......@@ -465,7 +476,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.
......@@ -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)
......@@ -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)
......@@ -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)
{
......@@ -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)
......@@ -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()
*/
......@@ -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()
*/
......
......@@ -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
{
......@@ -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
{
......@@ -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
the plugin manager's settings define it as disabled by default.
*/
......@@ -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.
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
{
......@@ -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
*/
bool PluginSpec::isEffectivelyEnabled() 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
{
......@@ -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
{
......@@ -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.
*/
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.
*/
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
......@@ -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)
......@@ -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)
......@@ -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.
\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;
......
......@@ -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.
*/
QPacketProtocol::QPacketProtocol(QIODevice *dev, QObject *parent)
......@@ -265,7 +265,7 @@ QPacketAutoSend QPacketProtocol::send()
}
/*!
Transmit the \a packet.
Transmits the packet \a p.
*/
void QPacketProtocol::send(const QPacket & p)
{
......@@ -292,7 +292,7 @@ qint64 QPacketProtocol::packetsAvailable() const
}
/*!
Discard any unread packets.
Discards any unread packets.
*/
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.
*/
QPacket QPacketProtocol::read()
......@@ -314,8 +314,8 @@ QPacket QPacketProtocol::read()
}
/*
Returns the difference between msecs and elapsed. If msecs is -1,
/*!
Returns the difference between \a msecs and \a elapsed. If msecs is -1,
however, -1 is returned.
*/
static int qt_timeout_value(int msecs, int elapsed)
......@@ -328,13 +328,13 @@ static int qt_timeout_value(int msecs, int elapsed)
}
/*!
This function locks until a new packet is available for reading and the
Locks until a new packet is available for reading and the
\l{QIODevice::}{readyRead()} signal has been emitted. The function
will timeout after \a msecs milliseconds; the default timeout is
30000 milliseconds.
The function returns true if the readyRead() signal is emitted and
there is new data available for reading; otherwise it returns false
Returns true if the readyRead() signal is emitted and
there is new data available for reading; otherwise returns false
(if an error occurred or the operation timed out).
*/
......@@ -357,7 +357,7 @@ bool QPacketProtocol::waitForReadyRead(int msecs)
}
/*!
Return the QIODevice passed to the QPacketProtocol constructor.
Returns the QIODevice passed to the QPacketProtocol constructor.
*/
QIODevice *QPacketProtocol::device()
{
......@@ -382,7 +382,7 @@ QIODevice *QPacketProtocol::device()
/*!
\fn void QPacketProtocol::packetWritten()
Emitted each time a packet is completing written to the device. This signal
Emitted each time a packet is completely written to the device. This signal
may be used for communications flow control.
*/
......@@ -521,7 +521,6 @@ void QPacket::clear()
\class QPacketAutoSend
\internal
\internal
*/
QPacketAutoSend::QPacketAutoSend(QPacketProtocol *_p)
: QPacket(), p(_p)
......
......@@ -59,7 +59,7 @@ QT_BEGIN_NAMESPACE
^
\endcode
Note that the QtQuick 1 version is named QDeclarativeError
\note The QtQuick 1 version is named QDeclarativeError.
\sa QQuickView::errors(), QmlComponent::errors()
*/
......@@ -137,7 +137,7 @@ bool QmlError::isValid() const
}
/*!
Returns the url for the file that caused this error.
Returns the URL for the file that caused this error.
*/
QUrl QmlError::url() const
{
......
......@@ -34,27 +34,27 @@
persistent (not on disk but in memory).
This means that several versions can coexist, as adding an element
is non destructive, and as much as possible is shared.
is non-destructive, and as much as possible is shared.
The trie is only *partially* ordered, it preserves the order
of what was inserted as much as possible.
The trie is only \e partially ordered. It preserves the order
of the inserted elements as much as possible.
This makes some operations a bit slower, but is considered
a feature.
This means the order in which you insert the elements matters.
An important use case for this is completions, and several
strategies are available.
Results order can be improved using the matching strength
Results order can be improved by using the matching strength.
All const operations are threadsafe, and copy is cheap (only a
QSharedPointer copy).
Assigning a shared pointer is *not* threadsafe, so updating the
head is *not* thread safe, and should be done only on a local
Assigning a shared pointer is not threadsafe, so updating the
head is not threadsafe, and should be done only on a local
instance (shared pointer used only from a single thread), or
protected with locks.
This is a two level implementation, based on a fully functional
This is a two-level implementation, based on a fully functional
implementation (PersistentTrie::Trie), which could be private
but was left public because deemed useful.
......@@ -570,10 +570,10 @@ QStringList Trie::stringList() const
}
/*!
\brief inserts into the current trie.
Inserts into the current trie.
Non thread safe, only use this on an instance that is used only
in a single theread, or that is protected by locks.
Non threadsafe. Only use this function on an instance that is used only
in a single thread, or that is protected by locks.
*/
void Trie::insert(const QString &value)
{
......@@ -581,10 +581,10 @@ void Trie::insert(const QString &value)
}
/*!
\brief intesects into the current trie.
Intersects into the current trie.
Non thread safe, only use this on an instance that is used only
in a single theread, or that is protected by locks.
Non threadsafe. Only use this function on an instance that is used only
in a single thread, or that is protected by locks.
*/
void Trie::intersect(const Trie &v)
{
......@@ -592,10 +592,10 @@ void Trie::intersect(const Trie &v)
}
/*!
\brief merges the given trie into the current one.
Merges the given trie into the current one.
Non thread safe, only use this on an instance that is used only
in a single theread, or that is protected by locks.
Non threadsafe. Only use this function on an instance that is used only
in a single thread, or that is protected by locks.
*/
void Trie::merge(const Trie &v)
{
......@@ -643,11 +643,12 @@ Trie Trie::replaceF(const QHash<QString, QString> &replacements) const
}
/*!
Returns a number defining how well the serachStr matches str.
Quite simplistic, looks only at the first match, and prefers contiguos
Returns a number defining how well \a searchStr matches \a str.
Quite simplistic, looks only at the first match, and prefers contiguous
matches, or matches to capitalized or separated words.
Match to the last char is also preferred.
Match to the last character is also preferred.
*/
int matchStrength(const QString &searchStr, const QString &str)
{
......@@ -691,7 +692,7 @@ public:
}
/*!
returns a number defining the matching strength of res to the given searchStr
Returns a number defining the matching strength of \a res to \a searchStr.
*/
QStringList matchStrengthSort(const QString &searchStr, QStringList &res)
{
......
......@@ -61,7 +61,7 @@ using namespace QmlJS::AST;
\sa Snapshot
A LibraryInfo is created when the ModelManagerInterface finds
a Qml library and parses the qmldir file. The instance holds information about
a QML library and parses the qmldir file. The instance holds information about
which Components the library provides and which plugins to load.
The ModelManager will try to extract detailed information about the types
......
......@@ -369,9 +369,10 @@ const CppComponentValue *CppComponentValue::prototype() const
}
/*!
\returns a list started by this object and followed by all its prototypes
Returns a list started by this object and followed by all its prototypes.
Prefer to use this over calling prototype() in a loop, as it avoids cycles.
Use this function rather than calling prototype() in a loop, as it avoids
cycles.
*/
QList<const CppComponentValue *> CppComponentValue::prototypes() const
{
......
......@@ -168,7 +168,7 @@ void QRangeModelPrivate::emitValueAndPositionIfChanged(const qreal oldValue, con
}
/*!
Constructs a QRangeModel with \a parent
Constructs a QRangeModel with \a parent.
*/
QRangeModel::QRangeModel(QObject *parent)
......@@ -180,7 +180,7 @@ QRangeModel::QRangeModel(QObject *parent)
/*!
\internal
Constructs a QRangeModel with private class pointer \a dd and \a parent
Constructs a QRangeModel with private class pointer \a dd and \a parent.
*/
QRangeModel::QRangeModel(QRangeModelPrivate &dd, QObject *parent)
......@@ -203,7 +203,7 @@ QRangeModel::~QRangeModel()
/*!
Sets the range of valid positions, that \l position can assume externally, with
\a min and \a max.
Such range is represented by \l positionAtMinimum and \l positionAtMaximum
Such range is represented by \l positionAtMinimum and \l positionAtMaximum.
*/