diff options
author | Radovan Zivkovic <pivonroll@gmail.com> | 2013-08-07 21:26:57 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2014-03-11 19:54:56 +0100 |
commit | 085d83238ea4224d914ff38cbe40225a2b616364 (patch) | |
tree | 528eb774bd8a42edaa72116627ac9c103b782216 | |
parent | 32bd0d4212eadbb7f6918016ae129dbe79ab8578 (diff) |
Removed AssemblyReference_Private class.
Change-Id: I415ad2d7fe1af919663b881c7ddbb67bdadd2b20
Reviewed-by: Bojan Petrovic <bojan85@gmail.com>
5 files changed, 253 insertions, 698 deletions
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.cpp index 9948981bd7..fd32152e4a 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.cpp +++ b/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.cpp @@ -29,7 +29,9 @@ ****************************************************************************/ #include "assemblyreference.h" -#include "configuration.h" +#include <QVariant> + +#include "configurationsfactory.h" namespace VcProjectManager { namespace Internal { @@ -40,12 +42,33 @@ AssemblyReference::~AssemblyReference() void AssemblyReference::processNode(const QDomNode &node) { - m_private->processNode(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) { - Q_UNUSED(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() @@ -55,42 +78,66 @@ VcNodeWidget *AssemblyReference::createSettingsWidget() QDomNode AssemblyReference::toXMLDomNode(QDomDocument &domXMLDocument) const { - return m_private->toXMLDomNode(domXMLDocument); + QDomElement assemblyRefNode = domXMLDocument.createElement(QLatin1String("AssemblyReference")); + + assemblyRefNode.setAttribute(QLatin1String("RelativePath"), m_relativePath); + + foreach (const Configuration::Ptr &refConfig, m_referenceConfigurations) + assemblyRefNode.appendChild(refConfig->toXMLDomNode(domXMLDocument)); + + return assemblyRefNode; } QString AssemblyReference::relativePath() const { - return m_private->relativePath(); + return m_relativePath; } void AssemblyReference::setRelativePath(const QString &relativePath) { - m_private->setRelativePath(relativePath); + m_relativePath = relativePath; } void AssemblyReference::addReferenceConfiguration(Configuration::Ptr refConfig) { - m_private->addReferenceConfiguration(refConfig); + if (m_referenceConfigurations.contains(refConfig)) + return; + + foreach (const Configuration::Ptr &refConf, m_referenceConfigurations) { + if (refConfig->name() == refConf->name()) + return; + } + + m_referenceConfigurations.append(refConfig); } void AssemblyReference::removeReferenceConfiguration(Configuration::Ptr refConfig) { - m_private->removeReferenceConfiguration(refConfig); + m_referenceConfigurations.removeAll(refConfig); } void AssemblyReference::removeReferenceConfiguration(const QString &refConfName) { - m_private->removeReferenceConfiguration(refConfName); + foreach (const Configuration::Ptr &refConfig, m_referenceConfigurations) { + if (refConfig->name() == refConfName) { + removeReferenceConfiguration(refConfig); + return; + } + } } QList<Configuration::Ptr> AssemblyReference::referenceConfigurations() const { - return m_private->referenceConfigurations(); + return m_referenceConfigurations; } Configuration::Ptr AssemblyReference::referenceConfiguration(const QString &refConfigName) const { - return m_private->referenceConfiguration(refConfigName); + foreach (const Configuration::Ptr &refConfig, m_referenceConfigurations) { + if (refConfig->name() == refConfigName) + return refConfig; + } + return Configuration::Ptr(); } AssemblyReference::AssemblyReference() @@ -99,16 +146,36 @@ AssemblyReference::AssemblyReference() AssemblyReference::AssemblyReference(const AssemblyReference &asmRef) { - m_private = asmRef.m_private->clone(); + m_relativePath = asmRef.m_relativePath; + + foreach (const Configuration::Ptr &refConfig, asmRef.m_referenceConfigurations) + m_referenceConfigurations.append(refConfig->clone()); } AssemblyReference &AssemblyReference::operator =(const AssemblyReference &asmRef) { - if (this != &asmRef) - m_private = asmRef.m_private->clone(); + if (this != &asmRef) { + m_relativePath = asmRef.m_relativePath; + + foreach (const Configuration::Ptr &refConfig, asmRef.m_referenceConfigurations) + m_referenceConfigurations.append(refConfig->clone()); + } + return *this; } +void AssemblyReference::processReferenceConfig(const QDomNode &referenceConfig) +{ + Configuration::Ptr 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) @@ -134,20 +201,29 @@ AssemblyReference2003::AssemblyReference2003() { } -void AssemblyReference2003::init() +Configuration::Ptr AssemblyReference2003::createReferenceConfiguration() const { - m_private = AssemblyReference_Private::Ptr(new AssemblyReference2003_Private); + return ConfigurationsFactory::createConfiguration(VcDocConstants::DV_MSVC_2003, QLatin1String("ReferenceConfiguration")); } AssemblyReference2005::AssemblyReference2005(const AssemblyReference2005 &ref) : AssemblyReference2003(ref) { + m_assemblyName = ref.m_assemblyName; + m_copyLocal = ref.m_copyLocal; + m_useInBuild = ref.m_useInBuild; } AssemblyReference2005 &AssemblyReference2005::operator =(const AssemblyReference2005 &ref) { - AssemblyReference2003::operator =(ref); + if (this != &ref) { + AssemblyReference2003::operator =(ref); + m_assemblyName = ref.m_assemblyName; + m_copyLocal = ref.m_copyLocal; + m_useInBuild = ref.m_useInBuild; + } + return *this; } @@ -155,6 +231,17 @@ 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)); @@ -162,58 +249,99 @@ AssemblyReference::Ptr AssemblyReference2005::clone() const QString AssemblyReference2005::assemblyName() const { - QSharedPointer<AssemblyReference2005_Private> asmRef = m_private.staticCast<AssemblyReference2005_Private>(); - return asmRef->assemblyName(); + return m_assemblyName; } void AssemblyReference2005::setAssemblyName(const QString &assemblyName) { - QSharedPointer<AssemblyReference2005_Private> asmRef = m_private.staticCast<AssemblyReference2005_Private>(); - asmRef->setAssemblyName(assemblyName); + m_assemblyName = assemblyName; } bool AssemblyReference2005::copyLocal() const { - QSharedPointer<AssemblyReference2005_Private> asmRef = m_private.staticCast<AssemblyReference2005_Private>(); - return asmRef->copyLocal(); + return m_copyLocal; } void AssemblyReference2005::setCopyLocal(bool copyLocal) { - QSharedPointer<AssemblyReference2005_Private> asmRef = m_private.staticCast<AssemblyReference2005_Private>(); - asmRef->setCopyLocal(copyLocal); + m_copyLocal = copyLocal; } bool AssemblyReference2005::useInBuild() const { - QSharedPointer<AssemblyReference2005_Private> asmRef = m_private.staticCast<AssemblyReference2005_Private>(); - return asmRef->useInBuild(); + return m_useInBuild; } void AssemblyReference2005::setUseInBuild(bool useInBuild) { - QSharedPointer<AssemblyReference2005_Private> asmRef = m_private.staticCast<AssemblyReference2005_Private>(); - asmRef->setUseInBuild(useInBuild); + m_useInBuild = useInBuild; } AssemblyReference2005::AssemblyReference2005() { } -void AssemblyReference2005::init() +Configuration::Ptr AssemblyReference2005::createReferenceConfiguration() const { - m_private = AssemblyReference_Private::Ptr(new AssemblyReference2005_Private); + return ConfigurationsFactory::createConfiguration(VcDocConstants::DV_MSVC_2005, QLatin1String("ReferenceConfiguration")); +} + +void AssemblyReference2005::processNodeAttributes(const QDomElement &element) +{ + 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(); + + else if (domElement.name() == QLatin1String("CopyLocal")) { + if (domElement.value() == QLatin1String("false")) + m_copyLocal = false; + else + m_copyLocal = true; + } + + else if (domElement.name() == QLatin1String("UseInBuild")) { + if (domElement.value() == QLatin1String("false")) + m_useInBuild = false; + else + m_useInBuild = true; + } + } + } } 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) { - AssemblyReference2005::operator =(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; } @@ -221,6 +349,19 @@ AssemblyReference2008::~AssemblyReference2008() { } +QDomNode AssemblyReference2008::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); + + return assemblyRefNode; +} + AssemblyReference::Ptr AssemblyReference2008::clone() const { return AssemblyReference::Ptr(new AssemblyReference2008(*this)); @@ -228,71 +369,103 @@ AssemblyReference::Ptr AssemblyReference2008::clone() const bool AssemblyReference2008::copyLocalDependencies() const { - QSharedPointer<AssemblyReference2008_Private> asmRef = m_private.staticCast<AssemblyReference2008_Private>(); - return asmRef->copyLocalDependencies(); + return m_copyLocalDependencies; } void AssemblyReference2008::setCopyLocalDependencies(bool copyLocalDependencies) { - QSharedPointer<AssemblyReference2008_Private> asmRef = m_private.staticCast<AssemblyReference2008_Private>(); - asmRef->setCopyLocalDependencies(copyLocalDependencies); + m_copyLocalDependencies = copyLocalDependencies; } bool AssemblyReference2008::copyLocalSatelliteAssemblies() const { - QSharedPointer<AssemblyReference2008_Private> asmRef = m_private.staticCast<AssemblyReference2008_Private>(); - return asmRef->copyLocalSatelliteAssemblies(); + return m_copyLocalSatelliteAssemblies; } void AssemblyReference2008::setCopyLocalSatelliteAssemblies(bool copyLocalSatelliteAssemblies) { - QSharedPointer<AssemblyReference2008_Private> asmRef = m_private.staticCast<AssemblyReference2008_Private>(); - asmRef->setCopyLocalSatelliteAssemblies(copyLocalSatelliteAssemblies); + m_copyLocalSatelliteAssemblies = copyLocalSatelliteAssemblies; } bool AssemblyReference2008::useDependenciesInBuild() const { - QSharedPointer<AssemblyReference2008_Private> asmRef = m_private.staticCast<AssemblyReference2008_Private>(); - return asmRef->useDependenciesInBuild(); + return m_useDependenciesInBuild; } void AssemblyReference2008::setUseDependenciesInBuild(bool useDependenciesInBuild) { - QSharedPointer<AssemblyReference2008_Private> asmRef = m_private.staticCast<AssemblyReference2008_Private>(); - asmRef->setUseDependenciesInBuild(useDependenciesInBuild); + m_useDependenciesInBuild = useDependenciesInBuild; } QString AssemblyReference2008::subType() const { - QSharedPointer<AssemblyReference2008_Private> asmRef = m_private.staticCast<AssemblyReference2008_Private>(); - return asmRef->subType(); + return m_subType; } void AssemblyReference2008::setSubType(const QString &subType) { - QSharedPointer<AssemblyReference2008_Private> asmRef = m_private.staticCast<AssemblyReference2008_Private>(); - asmRef->setSubType(subType); + m_subType = subType; } QString AssemblyReference2008::minFrameworkVersion() const { - QSharedPointer<AssemblyReference2008_Private> asmRef = m_private.staticCast<AssemblyReference2008_Private>(); - return asmRef->minFrameworkVersion(); + return m_minFrameworkVersion; } void AssemblyReference2008::setMinFrameworkVersion(const QString &minFrameworkVersion) { - QSharedPointer<AssemblyReference2008_Private> asmRef = m_private.staticCast<AssemblyReference2008_Private>(); - asmRef->setMinFrameworkVersion(minFrameworkVersion); + m_minFrameworkVersion = minFrameworkVersion; } AssemblyReference2008::AssemblyReference2008() { } -void AssemblyReference2008::init() +Configuration::Ptr AssemblyReference2008::createReferenceConfiguration() const { - m_private = AssemblyReference_Private::Ptr(new AssemblyReference2008_Private); + return ConfigurationsFactory::createConfiguration(VcDocConstants::DV_MSVC_2008, QLatin1String("ReferenceConfiguration")); +} + +void AssemblyReference2008::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 (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(); + } + } } @@ -318,9 +491,6 @@ AssemblyReference::Ptr AssemblyReferenceFactory::create(VcDocConstants::Document break; } - if (ref) - ref->init(); - return ref; } diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.h b/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.h index 2959347fa0..83f75d7b89 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.h +++ b/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference.h @@ -32,7 +32,8 @@ #include "ivcprojectnodemodel.h" -#include "assemblyreference_private.h" +#include "configuration.h" +#include "vcprojectdocument_constants.h" namespace VcProjectManager { namespace Internal { @@ -69,13 +70,16 @@ protected: AssemblyReference(const AssemblyReference &asmRef); AssemblyReference& operator=(const AssemblyReference &asmRef); + void processReferenceConfig(const QDomNode &referenceConfig); + /*! - * Called after instance of the AssemblyReference is created in order to initialize \b m_private member variable to - * a proper version of a AssemblyReference_Private implementation (2003, 2005 or 2008). + * Reimplement this to create a new reference configuration. + * \return A shared pointer to a newly created reference configuration. */ - virtual void init() = 0; + virtual Configuration::Ptr createReferenceConfiguration() const = 0; - AssemblyReference_Private::Ptr m_private; + QList<Configuration::Ptr> m_referenceConfigurations; + QString m_relativePath; // required }; class AssemblyReference2003 : public AssemblyReference @@ -91,7 +95,7 @@ public: protected: AssemblyReference2003(); - void init(); + Configuration::Ptr createReferenceConfiguration() const; }; class AssemblyReference2005 : public AssemblyReference2003 @@ -102,6 +106,7 @@ public: AssemblyReference2005(const AssemblyReference2005 &ref); AssemblyReference2005& operator=(const AssemblyReference2005 &ref); ~AssemblyReference2005(); + QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const; AssemblyReference::Ptr clone() const; @@ -114,7 +119,12 @@ public: protected: AssemblyReference2005(); - void init(); + Configuration::Ptr 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 @@ -125,6 +135,7 @@ public: AssemblyReference2008(const AssemblyReference2008 &ref); AssemblyReference2008& operator=(const AssemblyReference2008 &ref); ~AssemblyReference2008(); + QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const; AssemblyReference::Ptr clone() const; @@ -141,7 +152,14 @@ public: protected: AssemblyReference2008(); - void init(); + Configuration::Ptr 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 diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference_private.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference_private.cpp deleted file mode 100644 index 96a9feddba..0000000000 --- a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference_private.cpp +++ /dev/null @@ -1,468 +0,0 @@ -/************************************************************************** -** -** Copyright (c) 2013 Bojan Petrovic -** Copyright (c) 2013 Radovan Zivkvoic -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ -#include "assemblyreference_private.h" - -#include <QVariant> - -#include "configurationsfactory.h" - -namespace VcProjectManager { -namespace Internal { - -AssemblyReference_Private::~AssemblyReference_Private() -{ - m_referenceConfigurations.clear(); -} - -void AssemblyReference_Private::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); - } -} - -QDomNode AssemblyReference_Private::toXMLDomNode(QDomDocument &domXMLDocument) const -{ - QDomElement assemblyRefNode = domXMLDocument.createElement(QLatin1String("AssemblyReference")); - - assemblyRefNode.setAttribute(QLatin1String("RelativePath"), m_relativePath); - - foreach (const Configuration::Ptr &refConfig, m_referenceConfigurations) - assemblyRefNode.appendChild(refConfig->toXMLDomNode(domXMLDocument)); - - return assemblyRefNode; -} - -QString AssemblyReference_Private::relativePath() const -{ - return m_relativePath; -} - -void AssemblyReference_Private::setRelativePath(const QString &relativePath) -{ - m_relativePath = relativePath; -} - -void AssemblyReference_Private::addReferenceConfiguration(Configuration::Ptr refConfig) -{ - if (m_referenceConfigurations.contains(refConfig)) - return; - - foreach (const Configuration::Ptr &refConf, m_referenceConfigurations) { - if (refConfig->name() == refConf->name()) - return; - } - - m_referenceConfigurations.append(refConfig); -} - -void AssemblyReference_Private::removeReferenceConfiguration(Configuration::Ptr refConfig) -{ - m_referenceConfigurations.removeAll(refConfig); -} - -void AssemblyReference_Private::removeReferenceConfiguration(const QString &refConfName) -{ - foreach (const Configuration::Ptr &refConfig, m_referenceConfigurations) { - if (refConfig->name() == refConfName) { - removeReferenceConfiguration(refConfig); - return; - } - } -} - -QList<Configuration::Ptr> AssemblyReference_Private::referenceConfigurations() const -{ - return m_referenceConfigurations; -} - -Configuration::Ptr AssemblyReference_Private::referenceConfiguration(const QString &refConfigName) const -{ - foreach (const Configuration::Ptr &refConfig, m_referenceConfigurations) { - if (refConfig->name() == refConfigName) - return refConfig; - } - return Configuration::Ptr(); -} - -AssemblyReference_Private::AssemblyReference_Private() -{ -} - -AssemblyReference_Private::AssemblyReference_Private(const AssemblyReference_Private &asmPrivate) -{ - m_relativePath = asmPrivate.m_relativePath; - - foreach (const Configuration::Ptr &refConfig, asmPrivate.m_referenceConfigurations) - m_referenceConfigurations.append(refConfig->clone()); -} - -AssemblyReference_Private &AssemblyReference_Private::operator =(const AssemblyReference_Private &asmPrivate) -{ - if (this != &asmPrivate) { - m_relativePath = asmPrivate.m_relativePath; - - foreach (const Configuration::Ptr &refConfig, asmPrivate.m_referenceConfigurations) - m_referenceConfigurations.append(refConfig->clone()); - } - - return *this; -} - -void AssemblyReference_Private::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(); - } - } -} - -void AssemblyReference_Private::processReferenceConfig(const QDomNode &referenceConfig) -{ - Configuration::Ptr referenceConfiguration = createReferenceConfiguration(); - referenceConfiguration->processNode(referenceConfig); - m_referenceConfigurations.append(referenceConfiguration); - - // process next sibling - QDomNode nextSibling = referenceConfig.nextSibling(); - if (!nextSibling.isNull()) - processReferenceConfig(nextSibling); -} - - -AssemblyReference2003_Private::~AssemblyReference2003_Private() -{ -} - -AssemblyReference_Private::Ptr AssemblyReference2003_Private::clone() const -{ - return AssemblyReference_Private::Ptr(new AssemblyReference2003_Private(*this)); -} - -AssemblyReference2003_Private::AssemblyReference2003_Private() -{ -} - -AssemblyReference2003_Private::AssemblyReference2003_Private(const AssemblyReference2003_Private &ref) - : AssemblyReference_Private(ref) -{ -} - -AssemblyReference2003_Private &AssemblyReference2003_Private::operator =(const AssemblyReference2003_Private &ref) -{ - AssemblyReference_Private::operator =(ref); - return *this; -} - -Configuration::Ptr AssemblyReference2003_Private::createReferenceConfiguration() const -{ - return ConfigurationsFactory::createConfiguration(VcDocConstants::DV_MSVC_2003, QLatin1String("ReferenceConfiguration")); -} - - -AssemblyReference2005_Private::~AssemblyReference2005_Private() -{ -} - -QDomNode AssemblyReference2005_Private::toXMLDomNode(QDomDocument &domXMLDocument) const -{ - QDomElement assemblyRefNode = AssemblyReference2003_Private::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_Private::Ptr AssemblyReference2005_Private::clone() const -{ - return AssemblyReference_Private::Ptr(new AssemblyReference2005_Private(*this)); -} - -QString AssemblyReference2005_Private::assemblyName() const -{ - return m_assemblyName; -} - -void AssemblyReference2005_Private::setAssemblyName(const QString &assemblyName) -{ - m_assemblyName = assemblyName; -} - -bool AssemblyReference2005_Private::copyLocal() const -{ - return m_copyLocal; -} - -void AssemblyReference2005_Private::setCopyLocal(bool copyLocal) -{ - m_copyLocal = copyLocal; -} - -bool AssemblyReference2005_Private::useInBuild() const -{ - return m_useInBuild; -} - -void AssemblyReference2005_Private::setUseInBuild(bool useInBuild) -{ - m_useInBuild = useInBuild; -} - -AssemblyReference2005_Private::AssemblyReference2005_Private() -{ -} - -AssemblyReference2005_Private::AssemblyReference2005_Private(const AssemblyReference2005_Private &ref) - : AssemblyReference2003_Private(ref) -{ - m_assemblyName = ref.m_assemblyName; - m_copyLocal = ref.m_copyLocal; - m_useInBuild = ref.m_useInBuild; -} - -AssemblyReference2005_Private &AssemblyReference2005_Private::operator =(const AssemblyReference2005_Private &ref) -{ - if (this != &ref) { - AssemblyReference2003_Private::operator =(ref); - m_assemblyName = ref.m_assemblyName; - m_copyLocal = ref.m_copyLocal; - m_useInBuild = ref.m_useInBuild; - } - - return *this; -} - -void AssemblyReference2005_Private::processNodeAttributes(const QDomElement &element) -{ - 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(); - - else if (domElement.name() == QLatin1String("CopyLocal")) { - if (domElement.value() == QLatin1String("false")) - m_copyLocal = false; - else - m_copyLocal = true; - } - - else if (domElement.name() == QLatin1String("UseInBuild")) { - if (domElement.value() == QLatin1String("false")) - m_useInBuild = false; - else - m_useInBuild = true; - } - } - } -} - -Configuration::Ptr AssemblyReference2005_Private::createReferenceConfiguration() const -{ - return ConfigurationsFactory::createConfiguration(VcDocConstants::DV_MSVC_2005, QLatin1String("ReferenceConfiguration")); -} - - -AssemblyReference2008_Private::~AssemblyReference2008_Private() -{ -} - -QDomNode AssemblyReference2008_Private::toXMLDomNode(QDomDocument &domXMLDocument) const -{ - QDomElement assemblyRefNode = AssemblyReference2005_Private::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); - - return assemblyRefNode; -} - -AssemblyReference_Private::Ptr AssemblyReference2008_Private::clone() const -{ - return AssemblyReference_Private::Ptr(new AssemblyReference2008_Private(*this)); -} - -bool AssemblyReference2008_Private::copyLocalDependencies() const -{ - return m_copyLocalDependencies; -} - -void AssemblyReference2008_Private::setCopyLocalDependencies(bool copyLocalDependencies) -{ - m_copyLocalDependencies = copyLocalDependencies; -} - -bool AssemblyReference2008_Private::copyLocalSatelliteAssemblies() const -{ - return m_copyLocalSatelliteAssemblies; -} - -void AssemblyReference2008_Private::setCopyLocalSatelliteAssemblies(bool copyLocalSatelliteAssemblies) -{ - m_copyLocalSatelliteAssemblies = copyLocalSatelliteAssemblies; -} - -bool AssemblyReference2008_Private::useDependenciesInBuild() const -{ - return m_useDependenciesInBuild; -} - -void AssemblyReference2008_Private::setUseDependenciesInBuild(bool useDependenciesInBuild) -{ - m_useDependenciesInBuild = useDependenciesInBuild; -} - -QString AssemblyReference2008_Private::subType() const -{ - return m_subType; -} - -void AssemblyReference2008_Private::setSubType(const QString &subType) -{ - m_subType = subType; -} - -QString AssemblyReference2008_Private::minFrameworkVersion() const -{ - return m_minFrameworkVersion; -} - -void AssemblyReference2008_Private::setMinFrameworkVersion(const QString &minFrameworkVersion) -{ - m_minFrameworkVersion = minFrameworkVersion; -} - -AssemblyReference2008_Private::AssemblyReference2008_Private() -{ -} - -AssemblyReference2008_Private::AssemblyReference2008_Private(const AssemblyReference2008_Private &ref) - : AssemblyReference2005_Private(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_Private &AssemblyReference2008_Private::operator =(const AssemblyReference2008_Private &ref) -{ - if (this != &ref) { - AssemblyReference2005_Private::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; -} - -void AssemblyReference2008_Private::processNodeAttributes(const QDomElement &element) -{ - AssemblyReference2005_Private::processNodeAttributes(element); - - 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("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(); - } - } -} - -Configuration::Ptr AssemblyReference2008_Private::createReferenceConfiguration() const -{ - return ConfigurationsFactory::createConfiguration(VcDocConstants::DV_MSVC_2008, QLatin1String("ReferenceConfiguration")); -} - -} // namespace Internal -} // namespace VcProjectManager diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference_private.h b/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference_private.h deleted file mode 100644 index afeea30400..0000000000 --- a/src/plugins/vcprojectmanager/vcprojectmodel/assemblyreference_private.h +++ /dev/null @@ -1,163 +0,0 @@ -/************************************************************************** -** -** Copyright (c) 2013 Bojan Petrovic -** Copyright (c) 2013 Radovan Zivkvoic -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ -#ifndef VCPROJECTMANAGER_INTERNAL_ASSEMBLYREFERENCE_PRIVATE_H -#define VCPROJECTMANAGER_INTERNAL_ASSEMBLYREFERENCE_PRIVATE_H - -#include "configuration.h" -#include "vcprojectdocument_constants.h" - -namespace VcProjectManager { -namespace Internal { - -class AssemblyReference_Private -{ - friend class AssemblyReference; - -public: - typedef QSharedPointer<AssemblyReference_Private> Ptr; - - virtual ~AssemblyReference_Private(); - virtual void processNode(const QDomNode &node); - virtual QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const; - - QString relativePath() const; - void setRelativePath(const QString &relativePath); - void addReferenceConfiguration(Configuration::Ptr refConfig); - void removeReferenceConfiguration(Configuration::Ptr refConfig); - void removeReferenceConfiguration(const QString &refConfName); - QList<Configuration::Ptr> referenceConfigurations() const; - Configuration::Ptr referenceConfiguration(const QString &refConfigName) const; - -protected: - AssemblyReference_Private(); - AssemblyReference_Private(const AssemblyReference_Private &asmPrivate); - AssemblyReference_Private& operator=(const AssemblyReference_Private &asmPrivate); - - 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 Configuration::Ptr createReferenceConfiguration() const = 0; - - /*! - * Implement in order to support creating a clone of a AssemblyReference_Private instance. - * \return A shared pointer to a newly created clone. - */ - virtual AssemblyReference_Private::Ptr clone() const = 0; - - QList<Configuration::Ptr> m_referenceConfigurations; - QString m_relativePath; // required -}; - -class AssemblyReference2003_Private : public AssemblyReference_Private -{ - friend class AssemblyReference2003; - -public: - ~AssemblyReference2003_Private(); - AssemblyReference_Private::Ptr clone() const; - -protected: - AssemblyReference2003_Private(); - AssemblyReference2003_Private(const AssemblyReference2003_Private &ref); - AssemblyReference2003_Private& operator=(const AssemblyReference2003_Private &ref); - Configuration::Ptr createReferenceConfiguration() const; -}; - -class AssemblyReference2005_Private : public AssemblyReference2003_Private -{ - friend class AssemblyReference2005; - -public: - ~AssemblyReference2005_Private(); - QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const; - AssemblyReference_Private::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_Private(); - AssemblyReference2005_Private(const AssemblyReference2005_Private &ref); - AssemblyReference2005_Private& operator=(const AssemblyReference2005_Private &ref); - void processNodeAttributes(const QDomElement &element); - Configuration::Ptr createReferenceConfiguration() const; - - QString m_assemblyName; // optional - bool m_copyLocal; // optional - bool m_useInBuild; // optional default: true -}; - -class AssemblyReference2008_Private : public AssemblyReference2005_Private -{ - friend class AssemblyReference2008; - -public: - ~AssemblyReference2008_Private(); - QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const; - AssemblyReference_Private::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_Private(); - AssemblyReference2008_Private(const AssemblyReference2008_Private &ref); - AssemblyReference2008_Private& operator=(const AssemblyReference2008_Private &ref); - void processNodeAttributes(const QDomElement &element); - Configuration::Ptr createReferenceConfiguration() const; - -private: - 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; -}; - -} // namespace Internal -} // namespace VcProjectManager - -#endif // VCPROJECTMANAGER_INTERNAL_ASSEMBLYREFERENCE_PRIVATE_H diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectmodel.pri b/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectmodel.pri index 68e4b8aaf4..10e1854b41 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectmodel.pri +++ b/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectmodel.pri @@ -23,7 +23,6 @@ HEADERS += \ vcprojectmodel/configurationsfactory.h \ vcprojectmodel/configurations.h \ vcprojectmodel/configuration.h \ - vcprojectmodel/assemblyreference_private.h \ vcprojectmodel/assemblyreference.h \ vcprojectmodel/activexreference.h \ vcprojectmodel/tools/xmldocgeneratortool.h \ @@ -69,7 +68,6 @@ SOURCES += \ vcprojectmodel/configurationsfactory.cpp \ vcprojectmodel/configurations.cpp \ vcprojectmodel/configuration.cpp \ - vcprojectmodel/assemblyreference_private.cpp \ vcprojectmodel/assemblyreference.cpp \ vcprojectmodel/activexreference.cpp \ vcprojectmodel/tools/xmldocgeneratortool.cpp \ |