diff options
author | Radovan Zivkovic <pivonroll@gmail.com> | 2013-08-05 01:35:18 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2014-03-11 19:54:56 +0100 |
commit | aa53a0bd9c819aa21d646daaa057b53279068981 (patch) | |
tree | b913da12d9ee0cded39661f7f2952e59f4089b08 | |
parent | 717556e1c1df101c743837d7228d4987a1601f36 (diff) |
Removed FolderType class.
Change-Id: Ic0b48837bcdb115eebd11809306ea31201e10b76
Reviewed-by: Bojan Petrovic <bojan85@gmail.com>
5 files changed, 232 insertions, 520 deletions
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/folder.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/folder.cpp index 8856e808c1..d2278397e0 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/folder.cpp +++ b/src/plugins/vcprojectmanager/vcprojectmodel/folder.cpp @@ -37,19 +37,47 @@ namespace VcProjectManager { namespace Internal { Folder::Folder(VcProjectDocument *parentProjectDoc) - : m_folderType(QSharedPointer<FolderType>(new FolderType(parentProjectDoc))) + : m_parentProjectDoc(parentProjectDoc) { } Folder::Folder(const Folder &folder) { - m_folderType = folder.m_folderType->clone(); + m_parentProjectDoc = folder.m_parentProjectDoc; + m_name = folder.m_name; + m_anyAttribute = folder.m_anyAttribute; + + foreach (const File::Ptr &file, folder.m_files) + m_files.append(File::Ptr(new File(*file))); + + foreach (const Filter::Ptr &filter, folder.m_filters) + m_filters.append(Filter::Ptr(new Filter(*filter))); + + foreach (const Folder::Ptr &fold, folder.m_folders) + m_folders.append(Folder::Ptr(new Folder(*fold))); } Folder &Folder::operator =(const Folder &folder) { - if (this != &folder) - m_folderType = folder.m_folderType->clone(); + if (this != &folder) { + m_parentProjectDoc = folder.m_parentProjectDoc; + m_name = folder.m_name; + m_anyAttribute = folder.m_anyAttribute; + + m_files.clear(); + m_folders.clear(); + m_filters.clear(); + + foreach (const File::Ptr &file, folder.m_files) + m_files.append(File::Ptr(new File(*file))); + + foreach (const Filter::Ptr &filter, folder.m_filters) + m_filters.append(Filter::Ptr(new Filter(*filter))); + + foreach (const Folder::Ptr &fold, folder.m_folders) + m_folders.append(Folder::Ptr(new Folder(*fold))); + } + return *this; } @@ -59,12 +87,42 @@ Folder::~Folder() void Folder::processNode(const QDomNode &node) { - m_folderType->processNode(node); + if (node.isNull()) + return; + + if (node.nodeType() == QDomNode::ElementNode) + processNodeAttributes(node.toElement()); + + if (node.hasChildNodes()) { + QDomNode firstChild = node.firstChild(); + if (!firstChild.isNull()) { + if (firstChild.nodeName() == QLatin1String("Filter")) + processFilter(firstChild); + else if (firstChild.nodeName() == QLatin1String("File")) + processFile(firstChild); + else if (firstChild.nodeName() == QLatin1String("Folder")) + processFolder(firstChild); + } + } } void Folder::processNodeAttributes(const QDomElement &element) { - Q_UNUSED(element) + QDomNamedNodeMap namedNodeMap = element.attributes(); + + for (int i = 0; i < namedNodeMap.size(); ++i) { + QDomNode domNode = namedNodeMap.item(i); + + if (domNode.nodeType() == QDomNode::AttributeNode) { + QDomAttr domElement = domNode.toAttr(); + + if (domElement.name() == QLatin1String("Name")) + setName(domElement.value()); + + else + setAttribute(domElement.name(), domElement.value()); + } + } } VcNodeWidget *Folder::createSettingsWidget() @@ -74,78 +132,125 @@ VcNodeWidget *Folder::createSettingsWidget() QDomNode Folder::toXMLDomNode(QDomDocument &domXMLDocument) const { - return m_folderType->toXMLDomNode(domXMLDocument); + QDomElement fileNode = domXMLDocument.createElement(QLatin1String("Folder")); + + fileNode.setAttribute(QLatin1String("Name"), m_name); + + QHashIterator<QString, QString> it(m_anyAttribute); + + while (it.hasNext()) { + it.next(); + fileNode.setAttribute(it.key(), it.value()); + } + + foreach (const File::Ptr &file, m_files) + fileNode.appendChild(file->toXMLDomNode(domXMLDocument)); + + foreach (const Filter::Ptr &filter, m_filters) + fileNode.appendChild(filter->toXMLDomNode(domXMLDocument)); + + foreach (const Folder::Ptr &folder, m_folders) + fileNode.appendChild(folder->toXMLDomNode(domXMLDocument)); + + return fileNode; } void Folder::addFilter(Filter::Ptr filter) { - m_folderType->addFilter(filter); + if (m_filters.contains(filter)) + return; + + foreach (const Filter::Ptr &filt, m_filters) { + if (filt->name() == filter->name()) + return; + } + + m_filters.append(filter); } -void Folder::removeFilter(Filter::Ptr filterName) +void Folder::removeFilter(Filter::Ptr filter) { - m_folderType->removeFilter(filterName); + m_filters.removeAll(filter); } void Folder::removeFilter(const QString &filterName) { - m_folderType->removeFilter(filterName); + foreach (const Filter::Ptr &filter, m_filters) { + if (filter->name() == filterName) { + removeFilter(filter); + return; + } + } } QList<Filter::Ptr> Folder::filters() const { - return m_folderType->filters(); + return m_filters; } Filter::Ptr Folder::filter(const QString &filterName) const { - return m_folderType->filter(filterName); + foreach (const Filter::Ptr &filter, m_filters) { + if (filter->name() == filterName) + return filter; + } + return Filter::Ptr(); } void Folder::addFile(File::Ptr file) { - m_folderType->addFile(file); + if (m_files.contains(file)) + return; + + foreach (const File::Ptr &f, m_files) { + if (f->relativePath() == file->relativePath()) + return; + } + m_files.append(file); } void Folder::removeFile(File::Ptr file) { - m_folderType->removeFile(file); + m_files.removeAll(file); } void Folder::removeFile(const QString &relativeFilePath) { - m_folderType->removeFile(relativeFilePath); + foreach (const File::Ptr &file, m_files) { + if (file->relativePath() == relativeFilePath) { + removeFile(file); + return; + } + } } QList<File::Ptr> Folder::files() const { - return m_folderType->files(); + return m_files; } File::Ptr Folder::file(const QString &relativeFilePath) const { - return m_folderType->file(relativeFilePath); + foreach (const File::Ptr &file, m_files) { + if (file->relativePath() == relativeFilePath) + return file; + } + return File::Ptr(); } bool Folder::fileExists(const QString &relativeFilePath) { - QList<File::Ptr> files = m_folderType->files(); - - foreach (const File::Ptr &filePtr, files) { + foreach (const File::Ptr &filePtr, m_files) { if (filePtr->relativePath() == relativeFilePath) return true; } - QList<Filter::Ptr> filters = m_folderType->filters(); - - foreach (const Filter::Ptr &filterPtr, filters) { + foreach (const Filter::Ptr &filterPtr, m_filters) { if (filterPtr->fileExists(relativeFilePath)) return true; } - QList<Folder::Ptr> folders = m_folderType->folders(); - - foreach (const Folder::Ptr &folderPtr, folders) { + foreach (const Folder::Ptr &folderPtr, m_folders) { if (folderPtr->fileExists(relativeFilePath)) return true; } @@ -155,74 +260,141 @@ bool Folder::fileExists(const QString &relativeFilePath) void Folder::addFolder(Folder::Ptr folder) { - m_folderType->addFolder(folder); + if (m_folders.contains(folder)) + return; + + foreach (const Folder::Ptr &f, m_folders) { + if (f->name() == folder->name()) + return; + } + m_folders.append(folder); } void Folder::removeFolder(Folder::Ptr folder) { - m_folderType->removeFolder(folder); + m_folders.removeAll(folder); } void Folder::removeFolder(const QString &folderName) { - m_folderType->removeFolder(folderName); + foreach (const Folder::Ptr &f, m_folders) { + if (f->name() == folderName) { + removeFolder(f); + return; + } + } } QList<Folder::Ptr> Folder::folders() const { - return m_folderType->folders(); + return m_folders; } Folder::Ptr Folder::folder(const QString &folderName) const { - return m_folderType->folder(folderName); + foreach (const Folder::Ptr &folder, m_folders) { + if (folder->name() == folderName) + return folder; + } + return Folder::Ptr(); } QString Folder::name() const { - return m_folderType->name(); + return m_name; } void Folder::setName(const QString &name) { - m_folderType->setName(name); + m_name = name; } QString Folder::attributeValue(const QString &attributeName) const { - return m_folderType->attributeValue(attributeName); + return m_anyAttribute.value(attributeName); } void Folder::setAttribute(const QString &attributeName, const QString &attributeValue) { - m_folderType->setAttribute(attributeName, attributeValue); + m_anyAttribute.insert(attributeName, attributeValue); } void Folder::clearAttribute(const QString &attributeName) { - m_folderType->clearAttribute(attributeName); + if (m_anyAttribute.contains(attributeName)) + m_anyAttribute.insert(attributeName, QString()); } void Folder::removeAttribute(const QString &attributeName) { - m_folderType->removeAttribute(attributeName); + m_anyAttribute.remove(attributeName); } void Folder::allFiles(QStringList &sl) { - QList<Folder::Ptr> folders = m_folderType->folders(); - QList<Filter::Ptr> filters = m_folderType->filters(); - QList<File::Ptr> files = m_folderType->files(); - - foreach (const Filter::Ptr &filter, filters) + foreach (const Filter::Ptr &filter, m_filters) filter->allFiles(sl); - foreach (const Folder::Ptr &filter, folders) + foreach (const Folder::Ptr &filter, m_folders) filter->allFiles(sl); - foreach (const File::Ptr &file, files) + foreach (const File::Ptr &file, m_files) sl.append(file->canonicalPath()); } +void Folder::processFile(const QDomNode &fileNode) +{ + File::Ptr file(new File(m_parentProjectDoc)); + file->processNode(fileNode); + m_files.append(file); + + // process next sibling + QDomNode nextSibling = fileNode.nextSibling(); + if (!nextSibling.isNull()) { + if (nextSibling.nodeName() == QLatin1String("File")) + processFile(nextSibling); + else if (nextSibling.nodeName() == QLatin1String("Folder")) + processFolder(nextSibling); + else + processFilter(nextSibling); + } +} + +void Folder::processFilter(const QDomNode &filterNode) +{ + Filter::Ptr filter(new Filter(m_parentProjectDoc)); + filter->processNode(filterNode); + m_filters.append(filter); + + // process next sibling + QDomNode nextSibling = filterNode.nextSibling(); + if (!nextSibling.isNull()) { + if (nextSibling.nodeName() == QLatin1String("File")) + processFile(nextSibling); + else if (nextSibling.nodeName() == QLatin1String("Folder")) + processFolder(nextSibling); + else + processFilter(nextSibling); + } +} + +void Folder::processFolder(const QDomNode &folderNode) +{ + Folder::Ptr folder(new Folder(m_parentProjectDoc)); + folder->processNode(folderNode); + m_folders.append(folder); + + // process next sibling + QDomNode nextSibling = folderNode.nextSibling(); + if (!nextSibling.isNull()) { + if (nextSibling.nodeName() == QLatin1String("File")) + processFile(nextSibling); + else if (nextSibling.nodeName() == QLatin1String("Folder")) + processFolder(nextSibling); + else + processFilter(nextSibling); + } +} + } // namespace Internal } // namespace VcProjectManager diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/folder.h b/src/plugins/vcprojectmanager/vcprojectmodel/folder.h index 2c0f6b80a3..ae5d48d270 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/folder.h +++ b/src/plugins/vcprojectmanager/vcprojectmodel/folder.h @@ -32,7 +32,8 @@ #include "ivcprojectnodemodel.h" -#include "foldertype.h" +#include "file.h" +#include "filter.h" namespace VcProjectManager { namespace Internal { @@ -53,8 +54,8 @@ public: QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const; void addFilter(Filter::Ptr filter); - void removeFilter(Filter::Ptr filterName); - void removeFilter(const QString &filter); + void removeFilter(Filter::Ptr filter); + void removeFilter(const QString &filterName); QList<Filter::Ptr> filters() const; Filter::Ptr filter(const QString &filterName) const; @@ -82,7 +83,17 @@ public: void allFiles(QStringList &sl); private: - QSharedPointer<FolderType> m_folderType; + void processFile(const QDomNode &fileNode); + void processFilter(const QDomNode &filterNode); + void processFolder(const QDomNode &folderNode); + + QList<QSharedPointer<Folder> > m_folders; + QList<File::Ptr> m_files; + QList<Filter::Ptr> m_filters; + + QString m_name; // required + QHash<QString, QString> m_anyAttribute; + VcProjectDocument *m_parentProjectDoc; }; } // namespace Internal diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/foldertype.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/foldertype.cpp deleted file mode 100644 index b397acc6c2..0000000000 --- a/src/plugins/vcprojectmanager/vcprojectmodel/foldertype.cpp +++ /dev/null @@ -1,369 +0,0 @@ -/************************************************************************** -** -** Copyright (c) 2013 Bojan Petrovic -** Copyright (c) 2013 Radovan Zivkvoic -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ -#include "foldertype.h" - -#include "folder.h" - -namespace VcProjectManager { -namespace Internal { - -FolderType::~FolderType() -{ - m_filters.clear(); - m_files.clear(); - m_folders.clear(); -} - -void FolderType::processNode(const QDomNode &node) -{ - if (node.isNull()) - return; - - if (node.nodeType() == QDomNode::ElementNode) - processNodeAttributes(node.toElement()); - - if (node.hasChildNodes()) { - QDomNode firstChild = node.firstChild(); - if (!firstChild.isNull()) { - if (firstChild.nodeName() == QLatin1String("Filter")) - processFilter(firstChild); - else if (firstChild.nodeName() == QLatin1String("File")) - processFile(firstChild); - else if (firstChild.nodeName() == QLatin1String("Folder")) - processFolder(firstChild); - } - } -} - -void FolderType::processNodeAttributes(const QDomElement &element) -{ - QDomNamedNodeMap namedNodeMap = element.attributes(); - - for (int i = 0; i < namedNodeMap.size(); ++i) { - QDomNode domNode = namedNodeMap.item(i); - - if (domNode.nodeType() == QDomNode::AttributeNode) { - QDomAttr domElement = domNode.toAttr(); - - if (domElement.name() == QLatin1String("Name")) - setName(domElement.value()); - - else - setAttribute(domElement.name(), domElement.value()); - } - } -} - -QDomNode FolderType::toXMLDomNode(QDomDocument &domXMLDocument) const -{ - QDomElement fileNode = domXMLDocument.createElement(QLatin1String("Folder")); - - fileNode.setAttribute(QLatin1String("Name"), m_name); - - QHashIterator<QString, QString> it(m_anyAttribute); - - while (it.hasNext()) { - it.next(); - fileNode.setAttribute(it.key(), it.value()); - } - - foreach (const File::Ptr &file, m_files) - fileNode.appendChild(file->toXMLDomNode(domXMLDocument)); - - foreach (const Filter::Ptr &filter, m_filters) - fileNode.appendChild(filter->toXMLDomNode(domXMLDocument)); - - foreach (const Folder::Ptr &folder, m_folders) - fileNode.appendChild(folder->toXMLDomNode(domXMLDocument)); - - return fileNode; -} - -void FolderType::processFile(const QDomNode &fileNode) -{ - File::Ptr file(new File(m_parentProjectDoc)); - file->processNode(fileNode); - m_files.append(file); - - // process next sibling - QDomNode nextSibling = fileNode.nextSibling(); - if (!nextSibling.isNull()) { - if (nextSibling.nodeName() == QLatin1String("File")) - processFile(nextSibling); - else if (nextSibling.nodeName() == QLatin1String("Folder")) - processFolder(nextSibling); - else - processFilter(nextSibling); - } -} - -void FolderType::processFilter(const QDomNode &filterNode) -{ - Filter::Ptr filter(new Filter(m_parentProjectDoc)); - filter->processNode(filterNode); - m_filters.append(filter); - - // process next sibling - QDomNode nextSibling = filterNode.nextSibling(); - if (!nextSibling.isNull()) { - if (nextSibling.nodeName() == QLatin1String("File")) - processFile(nextSibling); - else if (nextSibling.nodeName() == QLatin1String("Folder")) - processFolder(nextSibling); - else - processFilter(nextSibling); - } -} - -void FolderType::processFolder(const QDomNode &folderNode) -{ - Folder::Ptr folder(new Folder(m_parentProjectDoc)); - folder->processNode(folderNode); - m_folders.append(folder); - - // process next sibling - QDomNode nextSibling = folderNode.nextSibling(); - if (!nextSibling.isNull()) { - if (nextSibling.nodeName() == QLatin1String("File")) - processFile(nextSibling); - else if (nextSibling.nodeName() == QLatin1String("Folder")) - processFolder(nextSibling); - else - processFilter(nextSibling); - } -} - -void FolderType::addFilter(Filter::Ptr filter) -{ - if (m_filters.contains(filter)) - return; - - foreach (const Filter::Ptr &filt, m_filters) { - if (filt->name() == filter->name()) - return; - } - - m_filters.append(filter); -} - -void FolderType::removeFilter(Filter::Ptr filter) -{ - m_filters.removeAll(filter); -} - -void FolderType::removeFilter(const QString &filterName) -{ - foreach (const Filter::Ptr &filter, m_filters) { - if (filter->name() == filterName) { - removeFilter(filter); - return; - } - } -} - -QList<Filter::Ptr> FolderType::filters() const -{ - return m_filters; -} - -Filter::Ptr FolderType::filter(const QString &filterName) const -{ - foreach (const Filter::Ptr &filter, m_filters) { - if (filter->name() == filterName) - return filter; - } - return Filter::Ptr(); -} - -void FolderType::addFile(File::Ptr file) -{ - if (m_files.contains(file)) - return; - - foreach (const File::Ptr &f, m_files) { - if (f->relativePath() == file->relativePath()) - return; - } - m_files.append(file); -} - -void FolderType::removeFile(File::Ptr file) -{ - m_files.removeAll(file); -} - -void FolderType::removeFile(const QString &relativeFilePath) -{ - foreach (const File::Ptr &file, m_files) { - if (file->relativePath() == relativeFilePath) { - removeFile(file); - return; - } - } -} - -QList<File::Ptr> FolderType::files() const -{ - return m_files; -} - -File::Ptr FolderType::file(const QString &relativeFilePath) const -{ - foreach (const File::Ptr &file, m_files) { - if (file->relativePath() == relativeFilePath) - return file; - } - return File::Ptr(); -} - -void FolderType::addFolder(QSharedPointer<Folder> folder) -{ - if (m_folders.contains(folder)) - return; - - foreach (const Folder::Ptr &f, m_folders) { - if (f->name() == folder->name()) - return; - } - m_folders.append(folder); -} - -void FolderType::removeFolder(QSharedPointer<Folder> folder) -{ - m_folders.removeAll(folder); -} - -void FolderType::removeFolder(const QString &folderName) -{ - foreach (const Folder::Ptr &f, m_folders) { - if (f->name() == folderName) { - removeFolder(f); - return; - } - } -} - -QList<QSharedPointer<Folder> > FolderType::folders() const -{ - return m_folders; -} - -QSharedPointer<Folder> FolderType::folder(const QString &folderName) const -{ - foreach (const Folder::Ptr &folder, m_folders) { - if (folder->name() == folderName) - return folder; - } - return Folder::Ptr(); -} - -QString FolderType::name() const -{ - return m_name; -} - -void FolderType::setName(const QString &name) -{ - m_name = name; -} - -QString FolderType::attributeValue(const QString &attributeName) const -{ - return m_anyAttribute.value(attributeName); -} - -void FolderType::setAttribute(const QString &attributeName, const QString &attributeValue) -{ - m_anyAttribute.insert(attributeName, attributeValue); -} - -void FolderType::clearAttribute(const QString &attributeName) -{ - if (m_anyAttribute.contains(attributeName)) - m_anyAttribute.insert(attributeName, QString()); -} - -void FolderType::removeAttribute(const QString &attributeName) -{ - m_anyAttribute.remove(attributeName); -} - -QSharedPointer<FolderType> FolderType::clone() const -{ - return QSharedPointer<FolderType>(new FolderType(*this)); -} - -FolderType::FolderType(VcProjectDocument *parentProjectDoc) - : m_parentProjectDoc(parentProjectDoc) -{ -} - -FolderType::FolderType(const FolderType &folderType) -{ - m_parentProjectDoc = folderType.m_parentProjectDoc; - m_name = folderType.m_name; - m_anyAttribute = folderType.m_anyAttribute; - - foreach (const File::Ptr &file, folderType.m_files) - m_files.append(File::Ptr(new File(*file))); - - foreach (const Filter::Ptr &filter, folderType.m_filters) - m_filters.append(Filter::Ptr(new Filter(*filter))); - - foreach (const Folder::Ptr &folder, folderType.m_folders) - m_folders.append(Folder::Ptr(new Folder(*folder))); -} - -FolderType &FolderType::operator =(const FolderType &folderType) -{ - if (this != &folderType) { - m_parentProjectDoc = folderType.m_parentProjectDoc; - m_name = folderType.m_name; - m_anyAttribute = folderType.m_anyAttribute; - - m_files.clear(); - m_folders.clear(); - m_filters.clear(); - - foreach (const File::Ptr &file, folderType.m_files) - m_files.append(File::Ptr(new File(*file))); - - foreach (const Filter::Ptr &filter, folderType.m_filters) - m_filters.append(Filter::Ptr(new Filter(*filter))); - - foreach (const Folder::Ptr &folder, folderType.m_folders) - m_folders.append(Folder::Ptr(new Folder(*folder))); - } - - return *this; -} - -} // namespace Internal -} // namespace VcProjectManager diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/foldertype.h b/src/plugins/vcprojectmanager/vcprojectmodel/foldertype.h deleted file mode 100644 index 6ed7b73c05..0000000000 --- a/src/plugins/vcprojectmanager/vcprojectmodel/foldertype.h +++ /dev/null @@ -1,100 +0,0 @@ -/************************************************************************** -** -** Copyright (c) 2013 Bojan Petrovic -** Copyright (c) 2013 Radovan Zivkvoic -** Contact: http://www.qt-project.org/legal -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ -#ifndef VCPROJECTMANAGER_INTERNAL_FOLDERTYPE_H -#define VCPROJECTMANAGER_INTERNAL_FOLDERTYPE_H - -#include "file.h" -#include "filter.h" - -namespace VcProjectManager { -namespace Internal { - -class Folder; - -class FolderType -{ - friend class Folder; - -public: - ~FolderType(); - void processNode(const QDomNode &node); - void processNodeAttributes(const QDomElement &element); - QDomNode toXMLDomNode(QDomDocument &domXMLDocument) const; - - void processFile(const QDomNode &fileNode); - void processFilter(const QDomNode &filterNode); - void processFolder(const QDomNode &folderNode); - - void addFilter(Filter::Ptr filter); - void removeFilter(Filter::Ptr filter); - void removeFilter(const QString &filterName); - QList<Filter::Ptr> filters() const; - Filter::Ptr filter(const QString &filterName) const; - - void addFile(File::Ptr file); - void removeFile(File::Ptr file); - void removeFile(const QString &relativeFilePath); - QList<File::Ptr> files() const; - File::Ptr file(const QString &relativeFilePath) const; - - void addFolder(QSharedPointer<Folder> folder); - void removeFolder(QSharedPointer<Folder> folder); - void removeFolder(const QString &folderName); - QList<QSharedPointer<Folder> > folders() const; - QSharedPointer<Folder> folder(const QString &folderName) const; - - QString name() const; - void setName(const QString &name); - - QString attributeValue(const QString &attributeName) const; - void setAttribute(const QString &attributeName, const QString &attributeValue); - void clearAttribute(const QString &attributeName); - void removeAttribute(const QString &attributeName); - - QSharedPointer<FolderType> clone() const; - -private: - FolderType(VcProjectDocument *parentProjectDoc); - FolderType(const FolderType &folderType); - FolderType& operator=(const FolderType &folderType); - - QList<QSharedPointer<Folder> > m_folders; - QList<File::Ptr> m_files; - QList<Filter::Ptr> m_filters; - - QString m_name; // required - QHash<QString, QString> m_anyAttribute; - VcProjectDocument *m_parentProjectDoc; -}; - -} // namespace Internal -} // namespace VcProjectManager - -#endif // VCPROJECTMANAGER_INTERNAL_FOLDERTYPE_H diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectmodel.pri b/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectmodel.pri index cdb84fa171..7340e2f3f6 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectmodel.pri +++ b/src/plugins/vcprojectmanager/vcprojectmodel/vcprojectmodel.pri @@ -14,7 +14,6 @@ HEADERS += \ vcprojectmodel/platform.h \ vcprojectmodel/globals.h \ vcprojectmodel/global.h \ - vcprojectmodel/foldertype.h \ vcprojectmodel/folder.h \ vcprojectmodel/filter.h \ vcprojectmodel/files_private.h \ @@ -67,7 +66,6 @@ SOURCES += \ vcprojectmodel/platform.cpp \ vcprojectmodel/globals.cpp \ vcprojectmodel/global.cpp \ - vcprojectmodel/foldertype.cpp \ vcprojectmodel/folder.cpp \ vcprojectmodel/filter.cpp \ vcprojectmodel/files_private.cpp \ |