diff options
author | Radovan Zivkovic <pivonroll@gmail.com> | 2013-10-07 00:47:51 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2014-03-11 19:54:58 +0100 |
commit | b56196f646059751cbdb654a2554dc78bf645692 (patch) | |
tree | 60a7f40d6fac349daa586dd7654dcf39a059b395 | |
parent | 5c855bc11e833a946bba0390d2aed1ec010c20cd (diff) | |
download | qt-creator-b56196f646059751cbdb654a2554dc78bf645692.tar.gz |
PublishingItem now uses GeneralAttributeContainer.
Change-Id: I6cb2ad51f9377a77d8fbdb24295798ed9a445e21
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
3 files changed, 15 insertions, 36 deletions
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.cpp index 53de4574d2..6fe1a09370 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.cpp +++ b/src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.cpp @@ -135,7 +135,7 @@ QList<PublishingItem::Ptr> PublishingData::publishingItems(const QString &attrib QList<PublishingItem::Ptr> items; foreach (const PublishingItem::Ptr &item, m_publishingItems) { - if (item->attributeValue(attributeName) == attributeValue) + if (item->attributeContainer()->attributeValue(attributeName) == attributeValue) items.append(item); } diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/publishingitem.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/publishingitem.cpp index 05585ff602..5ec8d9f49e 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/publishingitem.cpp +++ b/src/plugins/vcprojectmanager/vcprojectmodel/publishingitem.cpp @@ -28,23 +28,26 @@ ** ****************************************************************************/ #include "publishingitem.h" +#include "generalattributecontainer.h" namespace VcProjectManager { namespace Internal { PublishingItem::PublishingItem() { + m_attributeContainer = new GeneralAttributeContainer; } PublishingItem::PublishingItem(const PublishingItem &item) { - m_anyAttribute = item.m_anyAttribute; + m_attributeContainer = new GeneralAttributeContainer; + *m_attributeContainer = *item.m_attributeContainer; } PublishingItem &PublishingItem::operator =(const PublishingItem &item) { if (this != &item) - m_anyAttribute = item.m_anyAttribute; + *m_attributeContainer = *item.m_attributeContainer; return *this; } @@ -69,36 +72,13 @@ VcNodeWidget *PublishingItem::createSettingsWidget() QDomNode PublishingItem::toXMLDomNode(QDomDocument &domXMLDocument) const { QDomElement publishingItemNode = domXMLDocument.createElement(QLatin1String("PublishingItem")); - - QHashIterator<QString, QString> it(m_anyAttribute); - - while (it.hasNext()) { - it.next(); - publishingItemNode.setAttribute(it.key(), it.value()); - } - + m_attributeContainer->appendToXMLNode(publishingItemNode); return publishingItemNode; } -QString PublishingItem::attributeValue(const QString &attributeName) const -{ - return m_anyAttribute.value(attributeName); -} - -void PublishingItem::setAttribute(const QString &attributeName, const QString &attributeValue) -{ - m_anyAttribute.insert(attributeName, attributeValue); -} - -void PublishingItem::clearAttribute(const QString &attributeName) -{ - if (m_anyAttribute.contains(attributeName)) - m_anyAttribute.insert(attributeName, QString()); -} - -void PublishingItem::removeAttribute(const QString &attributeName) +IAttributeContainer *PublishingItem::attributeContainer() const { - m_anyAttribute.remove(attributeName); + return m_attributeContainer; } void PublishingItem::processNodeAttributes(const QDomElement &element) @@ -110,7 +90,7 @@ void PublishingItem::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/publishingitem.h b/src/plugins/vcprojectmanager/vcprojectmodel/publishingitem.h index 5d9dff931b..5f2f5ee4e4 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/publishingitem.h +++ b/src/plugins/vcprojectmanager/vcprojectmodel/publishingitem.h @@ -38,6 +38,9 @@ namespace VcProjectManager { namespace Internal { +class IAttributeContainer; +class GeneralAttributeContainer; + class PublishingItem : public IVcProjectXMLNode { public: @@ -52,15 +55,11 @@ public: VcNodeWidget* createSettingsWidget(); QDomNode toXMLDomNode(QDomDocument &domXMLDocument) 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); - - QHash<QString, QString> m_anyAttribute; + GeneralAttributeContainer* m_attributeContainer; }; } // namespace Internal |