diff options
author | Radovan Zivkovic <pivonroll@gmail.com> | 2013-10-05 19:15:45 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2014-03-11 19:54:58 +0100 |
commit | 5c855bc11e833a946bba0390d2aed1ec010c20cd (patch) | |
tree | 22c33758707079c5a8cbb1c50a0b8471f770c0f3 | |
parent | 0f8f92d0655d0236b848fd58570aed17c2b13a09 (diff) | |
download | qt-creator-5c855bc11e833a946bba0390d2aed1ec010c20cd.tar.gz |
PublishingData uses GeneralAttributeContainer.
Change-Id: Ibf00e075ed996b27e2fc63eb6c05adb71dbe3b0a
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
-rw-r--r-- | src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.cpp | 38 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.h | 10 |
2 files changed, 15 insertions, 33 deletions
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.cpp index 67d28a9129..53de4574d2 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.cpp +++ b/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.cpp @@ -28,17 +28,20 @@ ** ****************************************************************************/ #include "publishingdata.h" +#include "generalattributecontainer.h" namespace VcProjectManager { namespace Internal { PublishingData::PublishingData() { + m_attributeContainer = new GeneralAttributeContainer; } PublishingData::PublishingData(const PublishingData &data) { - m_anyAttribute = data.m_anyAttribute; + m_attributeContainer = new GeneralAttributeContainer; + *m_attributeContainer = *data.m_attributeContainer; foreach (const PublishingItem::Ptr &item, data.m_publishingItems) m_publishingItems.append(PublishingItem::Ptr(new PublishingItem(*item))); @@ -47,7 +50,7 @@ PublishingData::PublishingData(const PublishingData &data) PublishingData &PublishingData::operator =(const PublishingData &data) { if (this != &data) { - m_anyAttribute = data.m_anyAttribute; + *m_attributeContainer = *data.m_attributeContainer; m_publishingItems.clear(); foreach (const PublishingItem::Ptr &item, data.m_publishingItems) @@ -85,12 +88,7 @@ VcNodeWidget *PublishingData::createSettingsWidget() QDomNode PublishingData::toXMLDomNode(QDomDocument &domXMLDocument) const { QDomElement publishingDataNode = domXMLDocument.createElement(QLatin1String("PublishingData")); - QHashIterator<QString, QString> it(m_anyAttribute); - - while (it.hasNext()) { - it.next(); - publishingDataNode.setAttribute(it.key(), it.value()); - } + m_attributeContainer->appendToXMLNode(publishingDataNode); foreach (const PublishingItem::Ptr &publish, m_publishingItems) publishingDataNode.appendChild(publish->toXMLDomNode(domXMLDocument)); @@ -100,7 +98,7 @@ QDomNode PublishingData::toXMLDomNode(QDomDocument &domXMLDocument) const bool PublishingData::isEmpty() const { - return m_publishingItems.isEmpty() && m_anyAttribute.isEmpty(); + return m_publishingItems.isEmpty() && !m_attributeContainer->getAttributeCount(); } void PublishingData::processPublishingItem(const QDomNode &publishingItemNode) @@ -144,25 +142,9 @@ QList<PublishingItem::Ptr> PublishingData::publishingItems(const QString &attrib return items; } -QString PublishingData::attributeValue(const QString &attributeName) const -{ - return m_anyAttribute.value(attributeName); -} - -void PublishingData::setAttribute(const QString &attributeName, const QString &attributeValue) -{ - m_anyAttribute.insert(attributeName, attributeValue); -} - -void PublishingData::clearAttribute(const QString &attributeName) -{ - if (m_anyAttribute.contains(attributeName)) - m_anyAttribute.insert(attributeName, QString()); -} - -void PublishingData::removeAttribute(const QString &attributeName) +IAttributeContainer *PublishingData::attributeContainer() const { - m_anyAttribute.remove(attributeName); + return m_attributeContainer; } void PublishingData::processNodeAttributes(const QDomElement &element) @@ -174,7 +156,7 @@ void PublishingData::processNodeAttributes(const QDomElement &element) if (domNode.nodeType() == QDomNode::AttributeNode) { QDomAttr domElement = domNode.toAttr(); - m_anyAttribute.insert(domElement.name(), domElement.value()); + m_attributeContainer->setAttribute(domElement.name(), domElement.value()); } } } diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.h b/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.h index 3922cb710d..18b7a0c055 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.h +++ b/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.h @@ -37,6 +37,9 @@ namespace VcProjectManager { namespace Internal { +class IAttributeContainer; +class GeneralAttributeContainer; + class PublishingData : public IVcProjectXMLNode { public: @@ -60,16 +63,13 @@ public: QList<PublishingItem::Ptr> publishingItems() const; QList<PublishingItem::Ptr> publishingItems(const QString &attributeName, const QString &attributeValue) const; - QString attributeValue(const QString &attributeName) const; - void setAttribute(const QString &attributeName, const QString &attributeValue); - void clearAttribute(const QString &attributeName); - void removeAttribute(const QString &attributeName); + IAttributeContainer* attributeContainer() const; private: void processNodeAttributes(const QDomElement &element); QList<PublishingItem::Ptr> m_publishingItems; - QHash<QString, QString> m_anyAttribute; + GeneralAttributeContainer *m_attributeContainer; }; } // namespace Internal |