summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRadovan Zivkovic <pivonroll@gmail.com>2013-10-09 00:47:38 +0200
committerOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-03-11 19:54:59 +0100
commit4ae3af07b9fd7ffff046d1e71b04afb10de5655f (patch)
tree7d26a045c7da051ebcd17d93077d425e81abf3da
parentb686a80ea07f39edcaa3a0c77ed50071dbff8e2d (diff)
downloadqt-creator-4ae3af07b9fd7ffff046d1e71b04afb10de5655f.tar.gz
Removed ActiveXReference 2003, 2005 and 2008.
Change-Id: Icb7b9089c6603d6e5265984be42ab38fbe521012 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/activexreference.cpp95
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/activexreference.h75
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.cpp463
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.h127
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/configuration.h1
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/debuggertool.h1
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/references.cpp12
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/vcprojectdocument_constants.h12
8 files changed, 105 insertions, 681 deletions
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/activexreference.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/activexreference.cpp
index 06ba94388f..426782f87c 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/activexreference.cpp
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/activexreference.cpp
@@ -55,7 +55,6 @@ ActiveXReference& ActiveXReference::operator=(const ActiveXReference &ref)
*m_attributeContainer = *ref.m_attributeContainer;
*m_configurations = *ref.m_configurations;
}
-
return *this;
}
@@ -146,102 +145,10 @@ void ActiveXReference::processReferenceConfig(const QDomNode &referenceConfig)
processReferenceConfig(nextSibling);
}
-ActiveXReference2003::ActiveXReference2003(const ActiveXReference2003 &ref)
- : ActiveXReference(ref)
-{
-}
-
-ActiveXReference2003::~ActiveXReference2003()
-{
-}
-
-ActiveXReference::Ptr ActiveXReference2003::clone() const
-{
- return ActiveXReference::Ptr(new ActiveXReference2003(*this));
-}
-
-ActiveXReference2003::ActiveXReference2003()
-{
-}
-
-IConfiguration* ActiveXReference2003::createReferenceConfiguration() const
-{
- return new Configuration(QLatin1String("ReferenceConfiguration"));
-}
-
-
-ActiveXReference2005::ActiveXReference2005(const ActiveXReference2005 &ref)
- : ActiveXReference2003(ref)
-{
-}
-
-ActiveXReference2005::~ActiveXReference2005()
-{
-}
-
-ActiveXReference::Ptr ActiveXReference2005::clone() const
-{
- return ActiveXReference::Ptr(new ActiveXReference2005(*this));
-}
-
-ActiveXReference2005::ActiveXReference2005()
-{
-}
-
-IConfiguration* ActiveXReference2005::createReferenceConfiguration() const
-{
- return new Configuration(QLatin1String("ReferenceConfiguration"));
-}
-
-
-ActiveXReference2008::ActiveXReference2008(const ActiveXReference2008 &ref)
- : ActiveXReference2005(ref)
-{
-}
-
-ActiveXReference2008::~ActiveXReference2008()
-{
-}
-
-ActiveXReference::Ptr ActiveXReference2008::clone() const
-{
- return ActiveXReference::Ptr(new ActiveXReference2005(*this));
-}
-
-ActiveXReference2008::ActiveXReference2008()
-{
-}
-
-IConfiguration* ActiveXReference2008::createReferenceConfiguration() const
+IConfiguration *ActiveXReference::createReferenceConfiguration() const
{
return new Configuration(QLatin1String("ReferenceConfiguration"));
}
-
-ActiveXReferenceFactory &ActiveXReferenceFactory::instance()
-{
- static ActiveXReferenceFactory am;
- return am;
-}
-
-ActiveXReference::Ptr ActiveXReferenceFactory::create(VcDocConstants::DocumentVersion version)
-{
- ActiveXReference::Ptr ref;
-
- switch (version) {
- case VcDocConstants::DV_MSVC_2003:
- ref = ActiveXReference::Ptr(new ActiveXReference2003);
- break;
- case VcDocConstants::DV_MSVC_2005:
- ref = ActiveXReference::Ptr(new ActiveXReference2005);
- break;
- case VcDocConstants::DV_MSVC_2008:
- ref = ActiveXReference::Ptr(new ActiveXReference2008);
- break;
- }
-
- return ref;
-}
-
} // namespace Internal
} // namespace VcProjectManager
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/activexreference.h b/src/plugins/vcprojectmanager/vcprojectmodel/activexreference.h
index 356f06f4a7..19ee56dd8d 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/activexreference.h
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/activexreference.h
@@ -38,6 +38,8 @@
namespace VcProjectManager {
namespace Internal {
+class GeneralAttributeContainer;
+
class ActiveXReference : public IReference
{
friend class ActiveXReferenceFactory;
@@ -59,80 +61,15 @@ public:
ConfigurationContainer *configurationContainer() const;
QString type() const;
- /*!
- * Implement in order to support creating a clone of a ActiveXReference instance.
- * \return A shared pointer to a newly created clone.
- */
- virtual ActiveXReference::Ptr clone() const = 0;
-
-protected:
-
- virtual void processNodeAttributes(const QDomElement &element);
- virtual void processReferenceConfig(const QDomNode &referenceConfig);
-
- /*!
- * Reimplement this to create a new reference configuration.
- * \return A shared pointer to a newly created reference configuration.
- */
- virtual IConfiguration* createReferenceConfiguration() const = 0;
+private:
+ void processNodeAttributes(const QDomElement &element);
+ void processReferenceConfig(const QDomNode &referenceConfig);
+ IConfiguration* createReferenceConfiguration() const;
GeneralAttributeContainer *m_attributeContainer;
ConfigurationContainer *m_configurations;
};
-class ActiveXReference2003 : public ActiveXReference
-{
- friend class ActiveXReferenceFactory;
-
-public:
- ActiveXReference2003(const ActiveXReference2003 &ref);
- ~ActiveXReference2003();
-
- ActiveXReference::Ptr clone() const;
-
-protected:
- ActiveXReference2003();
- void init();
- IConfiguration *createReferenceConfiguration() const;
-};
-
-class ActiveXReference2005 : public ActiveXReference2003
-{
- friend class ActiveXReferenceFactory;
-
-public:
- ActiveXReference2005(const ActiveXReference2005 &ref);
- ~ActiveXReference2005();
-
- ActiveXReference::Ptr clone() const;
-
-protected:
- ActiveXReference2005();
- IConfiguration *createReferenceConfiguration() const;
-};
-
-class ActiveXReference2008 : public ActiveXReference2005
-{
- friend class ActiveXReferenceFactory;
-
-public:
- ActiveXReference2008(const ActiveXReference2008 &ref);
- ~ActiveXReference2008();
-
- ActiveXReference::Ptr clone() const;
-
-protected:
- ActiveXReference2008();
- IConfiguration* createReferenceConfiguration() const;
-};
-
-class ActiveXReferenceFactory
-{
-public:
- static ActiveXReferenceFactory& instance();
- ActiveXReference::Ptr create(VcDocConstants::DocumentVersion version);
-};
-
} // namespace Internal
} // namespace VcProjectManager
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.cpp
index f4a96428aa..5fbcfe34df 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.cpp
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.cpp
@@ -32,463 +32,132 @@
#include <QVariant>
#include "configurationsfactory.h"
+#include "configurationcontainer.h"
+#include "generalattributecontainer.h"
namespace VcProjectManager {
namespace Internal {
-AssemblyReference::~AssemblyReference()
-{
- qDeleteAll(m_referenceConfigurations);
-}
-
-void AssemblyReference::processNode(const QDomNode &node)
-{
- if (node.isNull())
- return;
-
- if (node.nodeType() == QDomNode::ElementNode)
- processNodeAttributes(node.toElement());
-
- if (node.hasChildNodes()) {
- QDomNode firstChild = node.firstChild();
- if (!firstChild.isNull())
- processReferenceConfig(firstChild);
- }
-}
-
-void AssemblyReference::processNodeAttributes(const QDomElement &element)
-{
- QDomNamedNodeMap namedNodeMap = element.attributes();
-
- if (namedNodeMap.size() == 1) {
- QDomNode domNode = namedNodeMap.item(0);
-
- if (domNode.nodeType() == QDomNode::AttributeNode) {
- QDomAttr domElement = domNode.toAttr();
-
- if (domElement.name() == QLatin1String("RelativePath"))
- m_relativePath = domElement.value();
- }
- }
-}
-
-VcNodeWidget *AssemblyReference::createSettingsWidget()
-{
- return 0;
-}
-
-QDomNode AssemblyReference::toXMLDomNode(QDomDocument &domXMLDocument) const
-{
- QDomElement assemblyRefNode = domXMLDocument.createElement(QLatin1String("AssemblyReference"));
-
- assemblyRefNode.setAttribute(QLatin1String("RelativePath"), m_relativePath);
-
- foreach (const IConfiguration *refConfig, m_referenceConfigurations)
- assemblyRefNode.appendChild(refConfig->toXMLDomNode(domXMLDocument));
-
- return assemblyRefNode;
-}
-
-QString AssemblyReference::relativePath() const
-{
- return m_relativePath;
-}
-
-void AssemblyReference::setRelativePath(const QString &relativePath)
-{
- m_relativePath = relativePath;
-}
-
-void AssemblyReference::addReferenceConfiguration(IConfiguration *refConfig)
-{
- if (m_referenceConfigurations.contains(refConfig))
- return;
-
- foreach (const IConfiguration *refConf, m_referenceConfigurations) {
- if (refConfig->fullName() == refConf->fullName())
- return;
- }
-
- m_referenceConfigurations.append(refConfig);
-}
-
-void AssemblyReference::removeReferenceConfiguration(IConfiguration *refConfig)
-{
- m_referenceConfigurations.removeAll(refConfig);
-}
-
-void AssemblyReference::removeReferenceConfiguration(const QString &refConfName)
-{
- foreach (IConfiguration *refConfig, m_referenceConfigurations) {
- if (refConfig->fullName() == refConfName) {
- m_referenceConfigurations.removeOne(refConfig);
- delete refConfig;
- return;
- }
- }
-}
-
-IConfiguration* AssemblyReference::referenceConfiguration(const QString &refConfigName) const
-{
- foreach (IConfiguration *refConfig, m_referenceConfigurations) {
- if (refConfig->fullName() == refConfigName)
- return refConfig;
- }
- return 0;
-}
-
AssemblyReference::AssemblyReference()
{
+ m_attributeContainer = new GeneralAttributeContainer;
+ m_configurations = new ConfigurationContainer;
}
AssemblyReference::AssemblyReference(const AssemblyReference &asmRef)
{
- m_relativePath = asmRef.m_relativePath;
+ m_attributeContainer = new GeneralAttributeContainer;
+ m_configurations = new ConfigurationContainer;
- foreach (const IConfiguration *refConfig, asmRef.m_referenceConfigurations)
- m_referenceConfigurations.append(refConfig->clone());
-}
+ *m_attributeContainer = *asmRef.m_attributeContainer;
+ *m_configurations = *asmRef.m_configurations;
-AssemblyReference &AssemblyReference::operator =(const AssemblyReference &asmRef)
-{
- if (this != &asmRef) {
- m_relativePath = asmRef.m_relativePath;
-
- foreach (const IConfiguration *refConfig, asmRef.m_referenceConfigurations)
- m_referenceConfigurations.append(refConfig->clone());
+ for (int i = 0; i < asmRef.m_configurations->configurationCount(); ++i) {
+ IConfiguration *config = asmRef.m_configurations->configuration(i);
+ if (config)
+ m_configurations->addConfiguration(config->clone());
}
-
- return *this;
-}
-
-void AssemblyReference::processReferenceConfig(const QDomNode &referenceConfig)
-{
- IConfiguration *referenceConfiguration = createReferenceConfiguration();
- referenceConfiguration->processNode(referenceConfig);
- m_referenceConfigurations.append(referenceConfiguration);
-
- // process next sibling
- QDomNode nextSibling = referenceConfig.nextSibling();
- if (!nextSibling.isNull())
- processReferenceConfig(nextSibling);
-}
-
-
-AssemblyReference2003::AssemblyReference2003(const AssemblyReference2003 &ref)
- : AssemblyReference(ref)
-{
}
-AssemblyReference2003 &AssemblyReference2003::operator =(const AssemblyReference2003 &ref)
-{
- AssemblyReference::operator =(ref);
- return *this;
-}
-
-AssemblyReference2003::~AssemblyReference2003()
-{
-}
-
-AssemblyReference::Ptr AssemblyReference2003::clone() const
-{
- return AssemblyReference::Ptr(new AssemblyReference2003(*this));
-}
-
-AssemblyReference2003::AssemblyReference2003()
-{
-}
-
-IConfiguration* AssemblyReference2003::createReferenceConfiguration() const
-{
- return new Configuration(QLatin1String("ReferenceConfiguration"));
-}
-
-
-AssemblyReference2005::AssemblyReference2005(const AssemblyReference2005 &ref)
- : AssemblyReference2003(ref)
+AssemblyReference &AssemblyReference::operator =(const AssemblyReference &asmRef)
{
- m_assemblyName = ref.m_assemblyName;
- m_copyLocal = ref.m_copyLocal;
- m_useInBuild = ref.m_useInBuild;
-}
+ if (this != &asmRef) {
+ *m_attributeContainer = *asmRef.m_attributeContainer;
+ *m_configurations = *asmRef.m_configurations;
-AssemblyReference2005 &AssemblyReference2005::operator =(const AssemblyReference2005 &ref)
-{
- if (this != &ref) {
- AssemblyReference2003::operator =(ref);
- m_assemblyName = ref.m_assemblyName;
- m_copyLocal = ref.m_copyLocal;
- m_useInBuild = ref.m_useInBuild;
+ for (int i = 0; i < asmRef.m_configurations->configurationCount(); ++i) {
+ IConfiguration *config = asmRef.m_configurations->configuration(i);
+ if (config)
+ m_configurations->addConfiguration(config->clone());
+ }
}
return *this;
}
-AssemblyReference2005::~AssemblyReference2005()
-{
-}
-
-QDomNode AssemblyReference2005::toXMLDomNode(QDomDocument &domXMLDocument) const
-{
- QDomElement assemblyRefNode = AssemblyReference2003::toXMLDomNode(domXMLDocument).toElement();
-
- assemblyRefNode.setAttribute(QLatin1String("AssemblyName"), m_assemblyName);
- assemblyRefNode.setAttribute(QLatin1String("CopyLocal"), QVariant(m_copyLocal).toString());
- assemblyRefNode.setAttribute(QLatin1String("UseInBuild"), QVariant(m_useInBuild).toString());
-
- return assemblyRefNode;
-}
-
-AssemblyReference::Ptr AssemblyReference2005::clone() const
-{
- return AssemblyReference::Ptr(new AssemblyReference2005(*this));
-}
-
-QString AssemblyReference2005::assemblyName() const
-{
- return m_assemblyName;
-}
-
-void AssemblyReference2005::setAssemblyName(const QString &assemblyName)
-{
- m_assemblyName = assemblyName;
-}
-
-bool AssemblyReference2005::copyLocal() const
-{
- return m_copyLocal;
-}
-
-void AssemblyReference2005::setCopyLocal(bool copyLocal)
-{
- m_copyLocal = copyLocal;
-}
-
-bool AssemblyReference2005::useInBuild() const
-{
- return m_useInBuild;
-}
-
-void AssemblyReference2005::setUseInBuild(bool useInBuild)
-{
- m_useInBuild = useInBuild;
-}
-
-AssemblyReference2005::AssemblyReference2005()
-{
-}
-
-IConfiguration* AssemblyReference2005::createReferenceConfiguration() const
+AssemblyReference::~AssemblyReference()
{
- return new Configuration(QLatin1String("ReferenceConfiguration"));
+ delete m_attributeContainer;
+ delete m_configurations;
}
-void AssemblyReference2005::processNodeAttributes(const QDomElement &element)
+void AssemblyReference::processNode(const QDomNode &node)
{
- QDomNamedNodeMap namedNodeMap = element.attributes();
-
- for (int i = 0; i < namedNodeMap.size(); ++i) {
- QDomNode domNode = namedNodeMap.item(i);
-
- if (domNode.nodeType() == QDomNode::AttributeNode) {
- QDomAttr domElement = domNode.toAttr();
-
- if (domElement.name() == QLatin1String("RelativePath"))
- m_relativePath = domElement.value();
-
-
- else if (domElement.name() == QLatin1String("AssemblyName"))
- m_assemblyName = domElement.value();
+ if (node.isNull())
+ return;
- else if (domElement.name() == QLatin1String("CopyLocal")) {
- if (domElement.value() == QLatin1String("false"))
- m_copyLocal = false;
- else
- m_copyLocal = true;
- }
+ if (node.nodeType() == QDomNode::ElementNode)
+ processNodeAttributes(node.toElement());
- else if (domElement.name() == QLatin1String("UseInBuild")) {
- if (domElement.value() == QLatin1String("false"))
- m_useInBuild = false;
- else
- m_useInBuild = true;
- }
- }
+ if (node.hasChildNodes()) {
+ QDomNode firstChild = node.firstChild();
+ if (!firstChild.isNull())
+ processReferenceConfig(firstChild);
}
}
-
-AssemblyReference2008::AssemblyReference2008(const AssemblyReference2008 &ref)
- : AssemblyReference2005(ref)
-{
- m_copyLocalDependencies = ref.m_copyLocalDependencies;
- m_copyLocalSatelliteAssemblies = ref.m_copyLocalSatelliteAssemblies;
- m_useDependenciesInBuild = ref.m_useDependenciesInBuild;
- m_subType = ref.m_subType;
- m_minFrameworkVersion = ref.m_minFrameworkVersion;
-}
-
-AssemblyReference2008 &AssemblyReference2008::operator =(const AssemblyReference2008 &ref)
-{
- if (this != &ref) {
- AssemblyReference2005::operator =(ref);
- m_copyLocalDependencies = ref.m_copyLocalDependencies;
- m_copyLocalSatelliteAssemblies = ref.m_copyLocalSatelliteAssemblies;
- m_useDependenciesInBuild = ref.m_useDependenciesInBuild;
- m_subType = ref.m_subType;
- m_minFrameworkVersion = ref.m_minFrameworkVersion;
- }
-
- return *this;
-}
-
-AssemblyReference2008::~AssemblyReference2008()
+VcNodeWidget *AssemblyReference::createSettingsWidget()
{
+ return 0;
}
-QDomNode AssemblyReference2008::toXMLDomNode(QDomDocument &domXMLDocument) const
+QDomNode AssemblyReference::toXMLDomNode(QDomDocument &domXMLDocument) const
{
- QDomElement assemblyRefNode = AssemblyReference2005::toXMLDomNode(domXMLDocument).toElement();
-
- assemblyRefNode.setAttribute(QLatin1String("CopyLocalDependencies"), QVariant(m_copyLocalDependencies).toString());
- assemblyRefNode.setAttribute(QLatin1String("CopyLocalSatelliteAssemblies"), QVariant(m_copyLocalSatelliteAssemblies).toString());
- assemblyRefNode.setAttribute(QLatin1String("UseDependenciesInBuild"), QVariant(m_useDependenciesInBuild).toString());
- assemblyRefNode.setAttribute(QLatin1String("SubType"), m_subType);
- assemblyRefNode.setAttribute(QLatin1String("MinFrameworkVersion"), m_minFrameworkVersion);
-
+ QDomElement assemblyRefNode = domXMLDocument.createElement(QLatin1String("AssemblyReference"));
+ m_configurations->appendToXMLNode(assemblyRefNode, domXMLDocument);
+ m_attributeContainer->appendToXMLNode(assemblyRefNode);
return assemblyRefNode;
}
-AssemblyReference::Ptr AssemblyReference2008::clone() const
-{
- return AssemblyReference::Ptr(new AssemblyReference2008(*this));
-}
-
-bool AssemblyReference2008::copyLocalDependencies() const
-{
- return m_copyLocalDependencies;
-}
-
-void AssemblyReference2008::setCopyLocalDependencies(bool copyLocalDependencies)
-{
- m_copyLocalDependencies = copyLocalDependencies;
-}
-
-bool AssemblyReference2008::copyLocalSatelliteAssemblies() const
-{
- return m_copyLocalSatelliteAssemblies;
-}
-
-void AssemblyReference2008::setCopyLocalSatelliteAssemblies(bool copyLocalSatelliteAssemblies)
-{
- m_copyLocalSatelliteAssemblies = copyLocalSatelliteAssemblies;
-}
-
-bool AssemblyReference2008::useDependenciesInBuild() const
-{
- return m_useDependenciesInBuild;
-}
-
-void AssemblyReference2008::setUseDependenciesInBuild(bool useDependenciesInBuild)
-{
- m_useDependenciesInBuild = useDependenciesInBuild;
-}
-
-QString AssemblyReference2008::subType() const
+IAttributeContainer *AssemblyReference::attributeContainer() const
{
- return m_subType;
+ return m_attributeContainer;
}
-void AssemblyReference2008::setSubType(const QString &subType)
+ConfigurationContainer *AssemblyReference::configurationContainer() const
{
- m_subType = subType;
+ return m_configurations;
}
-QString AssemblyReference2008::minFrameworkVersion() const
+QString AssemblyReference::type() const
{
- return m_minFrameworkVersion;
+ return QLatin1String(VcDocConstants::ASSEMBLY_REFERENCE);
}
-void AssemblyReference2008::setMinFrameworkVersion(const QString &minFrameworkVersion)
-{
- m_minFrameworkVersion = minFrameworkVersion;
-}
-
-AssemblyReference2008::AssemblyReference2008()
-{
-}
-
-IConfiguration* AssemblyReference2008::createReferenceConfiguration() const
-{
- return new Configuration(QLatin1String("ReferenceConfiguration"));
-}
-
-void AssemblyReference2008::processNodeAttributes(const QDomElement &element)
+void AssemblyReference::processNodeAttributes(const QDomElement &element)
{
- AssemblyReference2005::processNodeAttributes(element);
-
QDomNamedNodeMap namedNodeMap = element.attributes();
- for (int i = 0; i < namedNodeMap.size(); ++i) {
- QDomNode domNode = namedNodeMap.item(i);
+ if (namedNodeMap.size() == 1) {
+ QDomNode domNode = namedNodeMap.item(0);
if (domNode.nodeType() == QDomNode::AttributeNode) {
QDomAttr domElement = domNode.toAttr();
- if (domElement.name() == QLatin1String("CopyLocalDependencies")) {
- if (domElement.value() == QLatin1String("false"))
- m_copyLocalDependencies = false;
- else
- m_copyLocalDependencies = true;
- }
-
- else if (domElement.name() == QLatin1String("CopyLocalSatelliteAssemblies")) {
- if (domElement.value() == QLatin1String("false"))
- m_copyLocalSatelliteAssemblies = false;
- else
- m_copyLocalSatelliteAssemblies = true;
- }
-
- else if (domElement.name() == QLatin1String("UseDependenciesInBuild")) {
- if (domElement.value() == QLatin1String("false"))
- m_useDependenciesInBuild = false;
- else
- m_useDependenciesInBuild = true;
- }
-
- else if (domElement.name() == QLatin1String("SubType"))
- m_subType = domElement.value();
-
- else if (domElement.name() == QLatin1String("MinFrameworkVersion"))
- m_minFrameworkVersion = domElement.value();
+ if (domElement.name() == QLatin1String(VcDocConstants::ASSEMBLY_REFERENCE_ASSEMBLY_NAME) ||
+ domElement.name() == QLatin1String(VcDocConstants::ASSEMBLY_REFERENCE_COPY_LOCAL) ||
+ domElement.name() == QLatin1String(VcDocConstants::ASSEMBLY_REFERENCE_COPY_LOCAL_DEPENDENCIES) ||
+ domElement.name() == QLatin1String(VcDocConstants::ASSEMBLY_REFERENCE_COPY_LOCAL_SATELITE_ASSEMBLIES) ||
+ domElement.name() == QLatin1String(VcDocConstants::ASSEMBLY_REFERENCE_MIN_FRAMEWORK_VERSION) ||
+ domElement.name() == QLatin1String(VcDocConstants::ASSEMBLY_REFERENCE_RELATIVE_PATH) ||
+ domElement.name() == QLatin1String(VcDocConstants::ASSEMBLY_REFERENCE_SUB_TYPE) ||
+ domElement.name() == QLatin1String(VcDocConstants::ASSEMBLY_REFERENCE_USE_DEPENDENCIES_IN_BUILD) ||
+ domElement.name() == QLatin1String(VcDocConstants::ASSEMBLY_REFERENCE_USE_IN_BUILD))
+ m_attributeContainer->setAttribute(domElement.name(), domElement.value());
}
}
}
-
-AssemblyReferenceFactory &AssemblyReferenceFactory::instance()
-{
- static AssemblyReferenceFactory as;
- return as;
-}
-
-AssemblyReference::Ptr AssemblyReferenceFactory::create(VcDocConstants::DocumentVersion version)
+void AssemblyReference::processReferenceConfig(const QDomNode &referenceConfig)
{
- AssemblyReference::Ptr ref;
-
- switch (version) {
- case VcDocConstants::DV_MSVC_2003:
- ref = AssemblyReference::Ptr(new AssemblyReference2003);
- break;
- case VcDocConstants::DV_MSVC_2005:
- ref = AssemblyReference::Ptr(new AssemblyReference2005);
- break;
- case VcDocConstants::DV_MSVC_2008:
- ref = AssemblyReference::Ptr(new AssemblyReference2008);
- break;
- }
+ IConfiguration *referenceConfiguration = new Configuration(QLatin1String("ReferenceConfiguration"));
+ referenceConfiguration->processNode(referenceConfig);
+ m_configurations->addConfiguration(referenceConfiguration);
- return ref;
+ // process next sibling
+ QDomNode nextSibling = referenceConfig.nextSibling();
+ if (!nextSibling.isNull())
+ processReferenceConfig(nextSibling);
}
} // namespace Internal
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.h b/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.h
index 234bce67e6..0fc4c4fb04 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.h
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.h
@@ -30,7 +30,7 @@
#ifndef VCPROJECTMANAGER_INTERNAL_ASSEMBLYREFERENCE_H
#define VCPROJECTMANAGER_INTERNAL_ASSEMBLYREFERENCE_H
-#include "ivcprojectnodemodel.h"
+#include "../interfaces/ireference.h"
#include "configuration.h"
#include "vcprojectdocument_constants.h"
@@ -38,133 +38,32 @@
namespace VcProjectManager {
namespace Internal {
-class AssemblyReference : public IVcProjectXMLNode
-{
- friend class AssemblyReferenceFactory;
+class GeneralAttributeContainer;
+class AssemblyReference : public IReference
+{
public:
typedef QSharedPointer<AssemblyReference> Ptr;
+ AssemblyReference();
+ AssemblyReference(const AssemblyReference &asmRef);
+ AssemblyReference& operator=(const AssemblyReference &asmRef);
+
~AssemblyReference();
void processNode(const QDomNode &node);
VcNodeWidget* createSettingsWidget();
QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const;
- /*!
- * Implement in order to support creating a clone of a assembly reference instance.
- * \return A shared pointer to newly created assembly reference instance.
- */
- virtual AssemblyReference::Ptr clone() const = 0;
-
- QString relativePath() const;
- void setRelativePath(const QString &relativePath);
- void addReferenceConfiguration(IConfiguration *refConfig);
- void removeReferenceConfiguration(IConfiguration *refConfig);
- void removeReferenceConfiguration(const QString &refConfName);
- IConfiguration *referenceConfiguration(const QString &refConfigName) const;
+ IAttributeContainer *attributeContainer() const;
+ ConfigurationContainer *configurationContainer() const;
+ QString type() const;
protected:
- AssemblyReference();
- AssemblyReference(const AssemblyReference &asmRef);
- AssemblyReference& operator=(const AssemblyReference &asmRef);
virtual void processNodeAttributes(const QDomElement &element);
void processReferenceConfig(const QDomNode &referenceConfig);
- /*!
- * Reimplement this to create a new reference configuration.
- * \return A shared pointer to a newly created reference configuration.
- */
- virtual IConfiguration* createReferenceConfiguration() const = 0;
-
- QList<IConfiguration*> m_referenceConfigurations;
- QString m_relativePath; // required
-};
-
-class AssemblyReference2003 : public AssemblyReference
-{
- friend class AssemblyReferenceFactory;
-
-public:
- AssemblyReference2003(const AssemblyReference2003 &ref);
- AssemblyReference2003& operator=(const AssemblyReference2003 &ref);
- ~AssemblyReference2003();
-
- AssemblyReference::Ptr clone() const;
-
-protected:
- AssemblyReference2003();
- IConfiguration *createReferenceConfiguration() const;
-};
-
-class AssemblyReference2005 : public AssemblyReference2003
-{
- friend class AssemblyReferenceFactory;
-
-public:
- AssemblyReference2005(const AssemblyReference2005 &ref);
- AssemblyReference2005& operator=(const AssemblyReference2005 &ref);
- ~AssemblyReference2005();
- QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const;
-
- AssemblyReference::Ptr clone() const;
-
- QString assemblyName() const;
- void setAssemblyName(const QString &assemblyName);
- bool copyLocal() const;
- void setCopyLocal(bool copyLocal);
- bool useInBuild() const;
- void setUseInBuild(bool useInBuild);
-
-protected:
- AssemblyReference2005();
- IConfiguration *createReferenceConfiguration() const;
- void processNodeAttributes(const QDomElement &element);
-
- QString m_assemblyName; // optional
- bool m_copyLocal; // optional
- bool m_useInBuild; // optional default: true
-};
-
-class AssemblyReference2008 : public AssemblyReference2005
-{
- friend class AssemblyReferenceFactory;
-
-public:
- AssemblyReference2008(const AssemblyReference2008 &ref);
- AssemblyReference2008& operator=(const AssemblyReference2008 &ref);
- ~AssemblyReference2008();
- QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const;
-
- AssemblyReference::Ptr clone() const;
-
- bool copyLocalDependencies() const;
- void setCopyLocalDependencies(bool copyLocalDependencies);
- bool copyLocalSatelliteAssemblies() const;
- void setCopyLocalSatelliteAssemblies(bool copyLocalSatelliteAssemblies);
- bool useDependenciesInBuild() const;
- void setUseDependenciesInBuild(bool useDependenciesInBuild);
- QString subType() const;
- void setSubType(const QString &subType);
- QString minFrameworkVersion() const;
- void setMinFrameworkVersion(const QString &minFrameworkVersion);
-
-protected:
- AssemblyReference2008();
- IConfiguration *createReferenceConfiguration() const;
- void processNodeAttributes(const QDomElement &element);
-
- bool m_copyLocalDependencies; //optional default: true
- bool m_copyLocalSatelliteAssemblies; //optional default: true
- bool m_useDependenciesInBuild; //optional default: true
- QString m_subType; //optional
- QString m_minFrameworkVersion;
-};
-
-class AssemblyReferenceFactory
-{
-public:
- static AssemblyReferenceFactory& instance();
- AssemblyReference::Ptr create(VcDocConstants::DocumentVersion version);
+ GeneralAttributeContainer *m_attributeContainer;
+ ConfigurationContainer *m_configurations;
};
} // namespace Internal
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/configuration.h b/src/plugins/vcprojectmanager/vcprojectmodel/configuration.h
index f1f587e69f..db853a3d68 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/configuration.h
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/configuration.h
@@ -42,6 +42,7 @@ namespace Internal {
class ConfigurationTool;
class GeneralAttributeContainer;
class Tools;
+class GeneralAttributeContainer;
class Configuration : public IConfiguration
{
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/debuggertool.h b/src/plugins/vcprojectmanager/vcprojectmodel/debuggertool.h
index b84451a670..3217fedd1d 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/debuggertool.h
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/debuggertool.h
@@ -37,7 +37,6 @@
namespace VcProjectManager {
namespace Internal {
-class IAttributeContainer;
class GeneralAttributeContainer;
class DebuggerTool : public IDebuggerTool
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/references.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/references.cpp
index 3f462d7261..74c0029848 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/references.cpp
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/references.cpp
@@ -42,10 +42,10 @@ References::References(const References &references)
m_docVersion = references.m_docVersion;
foreach (const ActiveXReference::Ptr &ref, references.m_activeXReferences)
- m_activeXReferences.append(ref->clone());
+ m_activeXReferences.append(ActiveXReference::Ptr(new ActiveXReference(*ref)));
foreach (const AssemblyReference::Ptr &ref, references.m_assemblyReferences)
- m_assemblyReferences.append(ref->clone());
+ m_assemblyReferences.append(AssemblyReference::Ptr(new AssemblyReference(*ref)));
foreach (const ProjectReference::Ptr &ref, references.m_projectReferences)
m_projectReferences.append(ref->clone());
@@ -60,10 +60,10 @@ References &References::operator =(const References &references)
m_projectReferences.clear();
foreach (const ActiveXReference::Ptr &ref, references.m_activeXReferences)
- m_activeXReferences.append(ref->clone());
+ m_activeXReferences.append(ActiveXReference::Ptr(new ActiveXReference(*ref)));
foreach (const AssemblyReference::Ptr &ref, references.m_assemblyReferences)
- m_assemblyReferences.append(ref->clone());
+ m_assemblyReferences.append(AssemblyReference::Ptr(new AssemblyReference(*ref)));
foreach (const ProjectReference::Ptr &ref, references.m_projectReferences)
m_projectReferences.append(ref->clone());
@@ -162,13 +162,13 @@ void References::removeProjectReference(const QString &projRefName)
void References::processReference(const QDomNode &referenceNode)
{
if (referenceNode.nodeName() == QLatin1String("AssemblyReference")) {
- AssemblyReference::Ptr reference = AssemblyReferenceFactory::instance().create(m_docVersion);
+ AssemblyReference::Ptr reference(new AssemblyReference);
m_assemblyReferences.append(reference);
reference->processNode(referenceNode);
}
else if (referenceNode.nodeName() == QLatin1String("ActiveXReference")) {
- ActiveXReference::Ptr reference = ActiveXReferenceFactory::instance().create(m_docVersion);
+ ActiveXReference::Ptr reference(new ActiveXReference);
m_activeXReferences.append(reference);
reference->processNode(referenceNode);
}
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectdocument_constants.h b/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectdocument_constants.h
index 3f715644fc..bdfed851fc 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectdocument_constants.h
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectdocument_constants.h
@@ -53,6 +53,18 @@ const char ACTIVEX_REFERENCE_COPY_LOCAL_DEPENDENCIES [] = "CopyLocalDependencies
const char ACTIVEX_REFERENCE_COPY_LOCAL_SATELITE_ASSEMBLIES [] = "CopyLocalSatelliteAssemblies";
const char ACTIVEX_REFERENCE_USE_DEPENDENCIES_IN_BUILD [] = "UseDependenciesInBuild";
+// Assembly Reference
+const char ASSEMBLY_REFERENCE [] = "VC_Doc_Model.AssemblyReference";
+const char ASSEMBLY_REFERENCE_RELATIVE_PATH [] = "RelativePath";
+const char ASSEMBLY_REFERENCE_ASSEMBLY_NAME [] = "AssemblyName";
+const char ASSEMBLY_REFERENCE_COPY_LOCAL [] = "CopyLocal";
+const char ASSEMBLY_REFERENCE_USE_IN_BUILD [] = "UseInBuild";
+const char ASSEMBLY_REFERENCE_COPY_LOCAL_DEPENDENCIES [] = "CopyLocalDependencies";
+const char ASSEMBLY_REFERENCE_COPY_LOCAL_SATELITE_ASSEMBLIES [] = "CopyLocalSatelliteAssemblies";
+const char ASSEMBLY_REFERENCE_USE_DEPENDENCIES_IN_BUILD [] = "UseDependenciesInBuild";
+const char ASSEMBLY_REFERENCE_SUB_TYPE [] = "SubType";
+const char ASSEMBLY_REFERENCE_MIN_FRAMEWORK_VERSION [] = "MinFrameworkVersion";
+
} // VcDocConstants
} // namespace Internal
} // namespace VcProjectManager