forked from qt-creator/qt-creator
Add toolChainUpdated signal
Add toolChainUpdated(ToolChain *) to ToolChainManager and make sure it is triggered in the right places. Reviewed-by: dt
This commit is contained in:
@@ -302,9 +302,14 @@ Abi GccToolChain::targetAbi() const
|
|||||||
|
|
||||||
void GccToolChain::setTargetAbi(const Abi &abi)
|
void GccToolChain::setTargetAbi(const Abi &abi)
|
||||||
{
|
{
|
||||||
|
if (abi == m_targetAbi)
|
||||||
|
return;
|
||||||
|
|
||||||
updateSupportedAbis();
|
updateSupportedAbis();
|
||||||
if (m_supportedAbis.contains(abi))
|
if (m_supportedAbis.contains(abi)) {
|
||||||
m_targetAbi = abi;
|
m_targetAbi = abi;
|
||||||
|
toolChainUpdated();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Abi> GccToolChain::supportedAbis() const
|
QList<Abi> GccToolChain::supportedAbis() const
|
||||||
@@ -348,7 +353,10 @@ void GccToolChain::addToEnvironment(Utils::Environment &env) const
|
|||||||
|
|
||||||
void GccToolChain::setDebuggerCommand(const QString &d)
|
void GccToolChain::setDebuggerCommand(const QString &d)
|
||||||
{
|
{
|
||||||
|
if (m_debuggerCommand == d)
|
||||||
|
return;
|
||||||
m_debuggerCommand = d;
|
m_debuggerCommand = d;
|
||||||
|
toolChainUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString GccToolChain::debuggerCommand() const
|
QString GccToolChain::debuggerCommand() const
|
||||||
@@ -385,7 +393,7 @@ void GccToolChain::setCompilerPath(const QString &path)
|
|||||||
if (displayName() == typeName())
|
if (displayName() == typeName())
|
||||||
setDisplayName(defaultDisplayName());
|
setDisplayName(defaultDisplayName());
|
||||||
}
|
}
|
||||||
updateId();
|
updateId(); // Will trigger toolChainUpdated()!
|
||||||
}
|
}
|
||||||
|
|
||||||
QString GccToolChain::compilerPath() const
|
QString GccToolChain::compilerPath() const
|
||||||
|
@@ -435,7 +435,10 @@ QString MsvcToolChain::makeCommand() const
|
|||||||
|
|
||||||
void MsvcToolChain::setDebuggerCommand(const QString &d)
|
void MsvcToolChain::setDebuggerCommand(const QString &d)
|
||||||
{
|
{
|
||||||
|
if (m_debuggerCommand == d)
|
||||||
|
return;
|
||||||
m_debuggerCommand = d;
|
m_debuggerCommand = d;
|
||||||
|
toolChainUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString MsvcToolChain::debuggerCommand() const
|
QString MsvcToolChain::debuggerCommand() const
|
||||||
|
@@ -32,6 +32,9 @@
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
#include "toolchain.h"
|
#include "toolchain.h"
|
||||||
|
|
||||||
|
#include "toolchainmanager.h"
|
||||||
|
|
||||||
#include <extensionsystem/pluginmanager.h>
|
#include <extensionsystem/pluginmanager.h>
|
||||||
#include <utils/environment.h>
|
#include <utils/environment.h>
|
||||||
|
|
||||||
@@ -90,9 +93,13 @@ QString ToolChain::displayName() const
|
|||||||
return m_d->m_displayName;
|
return m_d->m_displayName;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToolChain::setDisplayName(const QString &name) const
|
void ToolChain::setDisplayName(const QString &name)
|
||||||
{
|
{
|
||||||
|
if (m_d->m_displayName == name)
|
||||||
|
return;
|
||||||
|
|
||||||
m_d->m_displayName = name;
|
m_d->m_displayName = name;
|
||||||
|
toolChainUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ToolChain::isAutoDetected() const
|
bool ToolChain::isAutoDetected() const
|
||||||
@@ -143,12 +150,24 @@ QVariantMap ToolChain::toMap() const
|
|||||||
void ToolChain::setId(const QString &id)
|
void ToolChain::setId(const QString &id)
|
||||||
{
|
{
|
||||||
Q_ASSERT(!id.isEmpty());
|
Q_ASSERT(!id.isEmpty());
|
||||||
|
if (m_d->m_id == id)
|
||||||
|
return;
|
||||||
|
|
||||||
m_d->m_id = id;
|
m_d->m_id = id;
|
||||||
|
toolChainUpdated();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ToolChain::toolChainUpdated()
|
||||||
|
{
|
||||||
|
ToolChainManager::instance()->notifyAboutUpdate(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToolChain::setAutoDetected(bool autodetect)
|
void ToolChain::setAutoDetected(bool autodetect)
|
||||||
{
|
{
|
||||||
|
if (m_d->m_autodetect == autodetect)
|
||||||
|
return;
|
||||||
m_d->m_autodetect = autodetect;
|
m_d->m_autodetect = autodetect;
|
||||||
|
toolChainUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ToolChain::fromMap(const QVariantMap &data)
|
bool ToolChain::fromMap(const QVariantMap &data)
|
||||||
|
@@ -67,7 +67,7 @@ public:
|
|||||||
virtual ~ToolChain();
|
virtual ~ToolChain();
|
||||||
|
|
||||||
QString displayName() const;
|
QString displayName() const;
|
||||||
void setDisplayName(const QString &name) const;
|
void setDisplayName(const QString &name);
|
||||||
|
|
||||||
bool isAutoDetected() const;
|
bool isAutoDetected() const;
|
||||||
QString id() const;
|
QString id() const;
|
||||||
@@ -106,6 +106,8 @@ protected:
|
|||||||
|
|
||||||
void setId(const QString &id);
|
void setId(const QString &id);
|
||||||
|
|
||||||
|
void toolChainUpdated();
|
||||||
|
|
||||||
// Make sure to call this method when deriving!
|
// Make sure to call this method when deriving!
|
||||||
virtual bool fromMap(const QVariantMap &data);
|
virtual bool fromMap(const QVariantMap &data);
|
||||||
|
|
||||||
|
@@ -207,6 +207,13 @@ ToolChain *ToolChainManager::findToolChain(const QString &id) const
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ToolChainManager::notifyAboutUpdate(ProjectExplorer::ToolChain *tc)
|
||||||
|
{
|
||||||
|
if (!tc || !m_d->m_toolChains.contains(tc))
|
||||||
|
return;
|
||||||
|
emit toolChainUpdated(tc);
|
||||||
|
}
|
||||||
|
|
||||||
void ToolChainManager::registerToolChain(ToolChain *tc)
|
void ToolChainManager::registerToolChain(ToolChain *tc)
|
||||||
{
|
{
|
||||||
if (!tc || m_d->m_toolChains.contains(tc))
|
if (!tc || m_d->m_toolChains.contains(tc))
|
||||||
|
@@ -78,6 +78,8 @@ signals:
|
|||||||
void toolChainAdded(ProjectExplorer::ToolChain *);
|
void toolChainAdded(ProjectExplorer::ToolChain *);
|
||||||
// Tool chain is still valid when this call happens!
|
// Tool chain is still valid when this call happens!
|
||||||
void toolChainRemoved(ProjectExplorer::ToolChain *);
|
void toolChainRemoved(ProjectExplorer::ToolChain *);
|
||||||
|
// Tool chain was updated.
|
||||||
|
void toolChainUpdated(ProjectExplorer::ToolChain *);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit ToolChainManager(QObject *parent = 0);
|
explicit ToolChainManager(QObject *parent = 0);
|
||||||
@@ -87,12 +89,15 @@ private:
|
|||||||
void restoreToolChains();
|
void restoreToolChains();
|
||||||
void restoreToolChains(const QString &fileName, bool autoDetected = false);
|
void restoreToolChains(const QString &fileName, bool autoDetected = false);
|
||||||
|
|
||||||
|
void notifyAboutUpdate(ProjectExplorer::ToolChain *);
|
||||||
|
|
||||||
|
|
||||||
Internal::ToolChainManagerPrivate *const m_d;
|
Internal::ToolChainManagerPrivate *const m_d;
|
||||||
|
|
||||||
static ToolChainManager *m_instance;
|
static ToolChainManager *m_instance;
|
||||||
|
|
||||||
friend class ProjectExplorerPlugin;
|
friend class ProjectExplorerPlugin;
|
||||||
|
friend class ToolChain;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ProjectExplorer
|
} // namespace ProjectExplorer
|
||||||
|
@@ -171,7 +171,7 @@ void MaemoToolChain::setQtVersionId(int id)
|
|||||||
if (id < 0) {
|
if (id < 0) {
|
||||||
m_targetAbi = ProjectExplorer::Abi();
|
m_targetAbi = ProjectExplorer::Abi();
|
||||||
m_qtVersionId = -1;
|
m_qtVersionId = -1;
|
||||||
updateId();
|
updateId(); // Will trigger toolChainUpdated()!
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -192,7 +192,7 @@ void MaemoToolChain::setQtVersionId(int id)
|
|||||||
Q_ASSERT(version->qtAbis().count() == 1);
|
Q_ASSERT(version->qtAbis().count() == 1);
|
||||||
m_targetAbi = version->qtAbis().at(0);
|
m_targetAbi = version->qtAbis().at(0);
|
||||||
|
|
||||||
updateId();
|
updateId(); // Will trigger toolChainUpdated()!
|
||||||
setDisplayName(MaemoToolChainFactory::tr("Maemo GCC for %1").arg(version->displayName()));
|
setDisplayName(MaemoToolChainFactory::tr("Maemo GCC for %1").arg(version->displayName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -248,7 +248,10 @@ bool RvctToolChain::operator ==(const ToolChain &other) const
|
|||||||
|
|
||||||
void RvctToolChain::setEnvironmentChanges(const QList<Utils::EnvironmentItem> &changes)
|
void RvctToolChain::setEnvironmentChanges(const QList<Utils::EnvironmentItem> &changes)
|
||||||
{
|
{
|
||||||
|
if (m_environmentChanges == changes)
|
||||||
|
return;
|
||||||
m_environmentChanges = changes;
|
m_environmentChanges = changes;
|
||||||
|
toolChainUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
QList<Utils::EnvironmentItem> RvctToolChain::environmentChanges() const
|
QList<Utils::EnvironmentItem> RvctToolChain::environmentChanges() const
|
||||||
@@ -263,7 +266,7 @@ void RvctToolChain::setCompilerPath(const QString &path)
|
|||||||
|
|
||||||
m_compilerPath = path;
|
m_compilerPath = path;
|
||||||
m_version.reset();
|
m_version.reset();
|
||||||
updateId();
|
updateId(); // Will trigger toolChainUpdated()!
|
||||||
}
|
}
|
||||||
|
|
||||||
QString RvctToolChain::compilerPath() const
|
QString RvctToolChain::compilerPath() const
|
||||||
@@ -273,7 +276,10 @@ QString RvctToolChain::compilerPath() const
|
|||||||
|
|
||||||
void RvctToolChain::setDebuggerCommand(const QString &d)
|
void RvctToolChain::setDebuggerCommand(const QString &d)
|
||||||
{
|
{
|
||||||
|
if (m_debuggerCommand == d)
|
||||||
|
return;
|
||||||
m_debuggerCommand = d;
|
m_debuggerCommand = d;
|
||||||
|
toolChainUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString RvctToolChain::debuggerCommand() const
|
QString RvctToolChain::debuggerCommand() const
|
||||||
@@ -283,7 +289,10 @@ QString RvctToolChain::debuggerCommand() const
|
|||||||
|
|
||||||
void RvctToolChain::setArmVersion(RvctToolChain::ArmVersion av)
|
void RvctToolChain::setArmVersion(RvctToolChain::ArmVersion av)
|
||||||
{
|
{
|
||||||
|
if (m_armVersion == av)
|
||||||
|
return;
|
||||||
m_armVersion = av;
|
m_armVersion = av;
|
||||||
|
toolChainUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
RvctToolChain::ArmVersion RvctToolChain::armVersion() const
|
RvctToolChain::ArmVersion RvctToolChain::armVersion() const
|
||||||
@@ -293,7 +302,10 @@ RvctToolChain::ArmVersion RvctToolChain::armVersion() const
|
|||||||
|
|
||||||
void RvctToolChain::setVersion(const RvctVersion &v) const
|
void RvctToolChain::setVersion(const RvctVersion &v) const
|
||||||
{
|
{
|
||||||
|
if (m_version == v)
|
||||||
|
return;
|
||||||
m_version = v;
|
m_version = v;
|
||||||
|
// Internal use only! No need to call toolChainUpdated()!
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectExplorer::ToolChainConfigWidget *RvctToolChain::configurationWidget()
|
ProjectExplorer::ToolChainConfigWidget *RvctToolChain::configurationWidget()
|
||||||
|
@@ -66,6 +66,13 @@ public:
|
|||||||
bool isNull() { return majorVersion == 0 && minorVersion == 0 && build == 0; }
|
bool isNull() { return majorVersion == 0 && minorVersion == 0 && build == 0; }
|
||||||
void reset() { majorVersion = 0; minorVersion = 0; build = 0; }
|
void reset() { majorVersion = 0; minorVersion = 0; build = 0; }
|
||||||
|
|
||||||
|
bool operator ==(const RvctVersion &other) const
|
||||||
|
{
|
||||||
|
return majorVersion == other.majorVersion
|
||||||
|
&& minorVersion == other.minorVersion
|
||||||
|
&& build == other.build;
|
||||||
|
}
|
||||||
|
|
||||||
int majorVersion;
|
int majorVersion;
|
||||||
int minorVersion;
|
int minorVersion;
|
||||||
int build;
|
int build;
|
||||||
@@ -101,8 +108,6 @@ public:
|
|||||||
void setArmVersion(ArmVersion);
|
void setArmVersion(ArmVersion);
|
||||||
ArmVersion armVersion() const;
|
ArmVersion armVersion() const;
|
||||||
|
|
||||||
void setVersion(const RvctVersion &v) const;
|
|
||||||
|
|
||||||
ProjectExplorer::ToolChainConfigWidget *configurationWidget();
|
ProjectExplorer::ToolChainConfigWidget *configurationWidget();
|
||||||
ProjectExplorer::ToolChain *clone() const;
|
ProjectExplorer::ToolChain *clone() const;
|
||||||
|
|
||||||
@@ -111,6 +116,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void updateId();
|
void updateId();
|
||||||
|
void setVersion(const RvctVersion &v) const;
|
||||||
|
|
||||||
explicit RvctToolChain(bool autodetected = false);
|
explicit RvctToolChain(bool autodetected = false);
|
||||||
RvctToolChain(const RvctToolChain &);
|
RvctToolChain(const RvctToolChain &);
|
||||||
|
@@ -250,7 +250,10 @@ bool WinscwToolChain::fromMap(const QVariantMap &data)
|
|||||||
|
|
||||||
void WinscwToolChain::setSystemIncludePathes(const QStringList &pathes)
|
void WinscwToolChain::setSystemIncludePathes(const QStringList &pathes)
|
||||||
{
|
{
|
||||||
|
if (m_systemIncludePathes == pathes)
|
||||||
|
return;
|
||||||
m_systemIncludePathes = pathes;
|
m_systemIncludePathes = pathes;
|
||||||
|
toolChainUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList WinscwToolChain::systemIncludePathes() const
|
QStringList WinscwToolChain::systemIncludePathes() const
|
||||||
@@ -260,7 +263,10 @@ QStringList WinscwToolChain::systemIncludePathes() const
|
|||||||
|
|
||||||
void WinscwToolChain::setSystemLibraryPathes(const QStringList &pathes)
|
void WinscwToolChain::setSystemLibraryPathes(const QStringList &pathes)
|
||||||
{
|
{
|
||||||
|
if (m_systemLibraryPathes == pathes)
|
||||||
|
return;
|
||||||
m_systemLibraryPathes = pathes;
|
m_systemLibraryPathes = pathes;
|
||||||
|
toolChainUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList WinscwToolChain::systemLibraryPathes() const
|
QStringList WinscwToolChain::systemLibraryPathes() const
|
||||||
@@ -274,7 +280,7 @@ void WinscwToolChain::setCompilerPath(const QString &path)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
m_compilerPath = path;
|
m_compilerPath = path;
|
||||||
updateId();
|
updateId(); // Will trigger topolChainUpdated()!
|
||||||
}
|
}
|
||||||
|
|
||||||
QString WinscwToolChain::compilerPath() const
|
QString WinscwToolChain::compilerPath() const
|
||||||
|
Reference in New Issue
Block a user