summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRadovan Zivkovic <pivonroll@gmail.com>2013-10-05 19:15:45 +0200
committerOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-03-11 19:54:58 +0100
commit5c855bc11e833a946bba0390d2aed1ec010c20cd (patch)
tree22c33758707079c5a8cbb1c50a0b8471f770c0f3
parent0f8f92d0655d0236b848fd58570aed17c2b13a09 (diff)
downloadqt-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.cpp38
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.h10
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