aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRadovan Zivkovic <pivonroll@gmail.com>2013-10-10 23:51:57 +0200
committerOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-03-11 19:55:00 +0100
commite800ad4bbd2f21bd3f60722feb8ac76b30370143 (patch)
treef454154eb8246fcff54aced9b67be8b2891cdad2
parent42e7e7fef9c799096160bddb2f745a7f1c82751d (diff)
DefaultToolFile implements IToolFile interface.
Change-Id: Ic7f91ac564bb41958a81b1e4190df14d79a7fc5d Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/defaulttoolfile.cpp28
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/defaulttoolfile.h13
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/toolfiles.cpp10
-rw-r--r--src/plugins/vcprojectmanager/vcprojectmodel/vcprojectdocument_constants.h1
4 files changed, 33 insertions, 19 deletions
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/defaulttoolfile.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/defaulttoolfile.cpp
index 1f77643dca..01f9db817d 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/defaulttoolfile.cpp
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/defaulttoolfile.cpp
@@ -28,28 +28,33 @@
**
****************************************************************************/
#include "defaulttoolfile.h"
+#include "vcprojectdocument_constants.h"
+#include "generalattributecontainer.h"
namespace VcProjectManager {
namespace Internal {
DefaultToolFile::DefaultToolFile()
{
+ m_attributeContainer = new GeneralAttributeContainer;
}
DefaultToolFile::DefaultToolFile(const DefaultToolFile &defToolFile)
{
- m_fileName = defToolFile.m_fileName;
+ m_attributeContainer = new GeneralAttributeContainer;
+ *m_attributeContainer = *defToolFile.m_attributeContainer;
}
DefaultToolFile &DefaultToolFile::operator =(const DefaultToolFile &defToolFile)
{
if (this != &defToolFile)
- m_fileName = defToolFile.m_fileName;
+ *m_attributeContainer = *defToolFile.m_attributeContainer;
return *this;
}
DefaultToolFile::~DefaultToolFile()
{
+ delete m_attributeContainer;
}
void DefaultToolFile::processNode(const QDomNode &node)
@@ -69,18 +74,23 @@ VcNodeWidget *DefaultToolFile::createSettingsWidget()
QDomNode DefaultToolFile::toXMLDomNode(QDomDocument &domXMLDocument) const
{
QDomElement toolNode = domXMLDocument.createElement(QLatin1String("DefaultToolFile"));
- toolNode.setAttribute(QLatin1String("FileName"), m_fileName);
+ m_attributeContainer->appendToXMLNode(toolNode);
return toolNode;
}
-QString DefaultToolFile::fileName() const
+QString DefaultToolFile::type() const
{
- return m_fileName;
+ return QLatin1String(VcDocConstants::DEFAULT_TOOL_FILE);
}
-void DefaultToolFile::setFileName(const QString &fileName)
+IToolFile *DefaultToolFile::clone() const
{
- m_fileName = fileName;
+ return new DefaultToolFile(*this);
+}
+
+IAttributeContainer *DefaultToolFile::attributeContainer() const
+{
+ return m_attributeContainer;
}
void DefaultToolFile::processNodeAttributes(const QDomElement &element)
@@ -93,8 +103,8 @@ void DefaultToolFile::processNodeAttributes(const QDomElement &element)
if (domNode.nodeType() == QDomNode::AttributeNode) {
QDomAttr domAttr = domNode.toAttr();
- if (domAttr.name() == QLatin1String("FileName"))
- m_fileName = domAttr.value();
+ if (domAttr.name() == QLatin1String(VcDocConstants::DEFAULT_TOOL_FILE_FILE_NAME))
+ m_attributeContainer->setAttribute(domAttr.name(), domAttr.value());
}
}
}
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/defaulttoolfile.h b/src/plugins/vcprojectmanager/vcprojectmodel/defaulttoolfile.h
index 94de1f04fd..eefaac2e40 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/defaulttoolfile.h
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/defaulttoolfile.h
@@ -30,7 +30,7 @@
#ifndef VCPROJECTMANAGER_INTERNAL_DEFAULTTOOLFILE_H
#define VCPROJECTMANAGER_INTERNAL_DEFAULTTOOLFILE_H
-#include "ivcprojectnodemodel.h"
+#include "../interfaces/itoolfile.h"
#include <QString>
#include <QSharedPointer>
@@ -38,7 +38,9 @@
namespace VcProjectManager {
namespace Internal {
-class DefaultToolFile : public IVcProjectXMLNode
+class GeneralAttributeContainer;
+
+class DefaultToolFile : public IToolFile
{
public:
typedef QSharedPointer<DefaultToolFile> Ptr;
@@ -52,13 +54,14 @@ public:
VcNodeWidget* createSettingsWidget();
QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const;
- QString fileName() const;
- void setFileName(const QString &fileName);
+ QString type() const;
+ IToolFile *clone() const;
+ IAttributeContainer *attributeContainer() const;
private:
void processNodeAttributes(const QDomElement &element);
- QString m_fileName; // required
+ GeneralAttributeContainer *m_attributeContainer;
};
} // namespace Internal
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/toolfiles.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/toolfiles.cpp
index 65529c8424..4e75b8e4e6 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/toolfiles.cpp
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/toolfiles.cpp
@@ -152,7 +152,7 @@ void ToolFiles::addDefaultToolFile(DefaultToolFile::Ptr defToolFile)
return;
foreach (const DefaultToolFile::Ptr &toolF, m_defaultToolFiles) {
- if (toolF->fileName() == defToolFile->fileName())
+ if (toolF->attributeContainer()->attributeValue(QLatin1String(VcDocConstants::DEFAULT_TOOL_FILE_FILE_NAME)) == defToolFile->attributeContainer()->attributeValue(QLatin1String(VcDocConstants::DEFAULT_TOOL_FILE_FILE_NAME)))
return;
}
m_defaultToolFiles.append(defToolFile);
@@ -166,7 +166,7 @@ void ToolFiles::removeDefaultToolFile(DefaultToolFile::Ptr defToolFile)
void ToolFiles::removeDefaultToolFile(const QString &fileName)
{
foreach (const DefaultToolFile::Ptr &toolF, m_defaultToolFiles) {
- if (toolF->fileName() == fileName) {
+ if (toolF->attributeContainer()->attributeValue(QLatin1String(VcDocConstants::DEFAULT_TOOL_FILE_FILE_NAME)) == fileName) {
removeDefaultToolFile(toolF);
return;
}
@@ -181,20 +181,20 @@ QList<DefaultToolFile::Ptr> ToolFiles::defaultToolFiles() const
DefaultToolFile::Ptr ToolFiles::defaultToolFile(const QString &fileName)
{
foreach (DefaultToolFile::Ptr defToolFile, m_defaultToolFiles)
- if (defToolFile->fileName() == fileName)
+ if (defToolFile->attributeContainer()->attributeValue(QLatin1String(VcDocConstants::DEFAULT_TOOL_FILE_FILE_NAME)) == fileName)
return defToolFile;
return DefaultToolFile::Ptr();
}
void ToolFiles::processToolFiles(const QDomNode &toolFileNode)
{
- if (toolFileNode.nodeName() == QLatin1String("ToolFile")) {
+ if (toolFileNode.nodeName() == QLatin1String(VcDocConstants::TOOL_FILE)) {
ToolFile::Ptr toolFile(new ToolFile);
m_toolFiles.append(toolFile);
toolFile->processNode(toolFileNode);
}
- else if (toolFileNode.nodeName() == QLatin1String("DefaultToolFile")) {
+ else if (toolFileNode.nodeName() == QLatin1String(VcDocConstants::DEFAULT_TOOL_FILE)) {
DefaultToolFile::Ptr defToolFile(new DefaultToolFile);
m_defaultToolFiles.append(defToolFile);
defToolFile->processNode(toolFileNode);
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectdocument_constants.h b/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectdocument_constants.h
index 30acb825d6..8076a8bfbe 100644
--- a/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectdocument_constants.h
+++ b/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectdocument_constants.h
@@ -82,6 +82,7 @@ const char PROJECT_REFERENCE_COPY_LOCAL_DEPENDENCIES [] = "CopyLocalDependencies
const char TOOL_FILE [] = "ToolFile";
const char TOOL_FILE_RELATIVE_PATH [] = "RelativePath";
const char DEFAULT_TOOL_FILE [] = "DefaultToolFile";
+const char DEFAULT_TOOL_FILE_FILE_NAME [] = "FileName";
} // VcDocConstants
} // namespace Internal