summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRadovan Zivkovic <pivonroll@gmail.com>2013-10-07 00:47:51 +0200
committerOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-03-11 19:54:58 +0100
commitb56196f646059751cbdb654a2554dc78bf645692 (patch)
tree60a7f40d6fac349daa586dd7654dcf39a059b395
parent5c855bc11e833a946bba0390d2aed1ec010c20cd (diff)
downloadqt-creator-b56196f646059751cbdb654a2554dc78bf645692.tar.gz
PublishingItem now uses GeneralAttributeContainer.
Change-Id: I6cb2ad51f9377a77d8fbdb24295798ed9a445e21 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/publishingdata.cpp2
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/publishingitem.cpp38
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/publishingitem.h11
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