diff options
Diffstat (limited to 'src/plugins/vcprojectmanager/vcprojectmodel/files.cpp')
-rw-r--r-- | src/plugins/vcprojectmanager/vcprojectmodel/files.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/plugins/vcprojectmanager/vcprojectmodel/files.cpp b/src/plugins/vcprojectmanager/vcprojectmodel/files.cpp index 2f1e6c0521..2b5cd24c55 100644 --- a/src/plugins/vcprojectmanager/vcprojectmodel/files.cpp +++ b/src/plugins/vcprojectmanager/vcprojectmodel/files.cpp @@ -35,36 +35,41 @@ namespace VcProjectManager { namespace Internal { -Files::Files(VcProjectDocument *parentProject) +Files::Files(IVisualStudioProject *parentProject) : m_parentProject(parentProject) { } Files::Files(const Files &files) { - foreach (IFile *file, files.m_files) - m_files.append(file->clone()); + m_parentProject = files.m_parentProject; - foreach (IFileContainer *filter, files.m_fileContainers) - m_fileContainers.append(filter->clone()); + foreach (IFile *file, files.m_files) { + if (file) + m_files.append(file->clone()); + } + + foreach (IFileContainer *fileContainer, files.m_fileContainers) { + if (fileContainer) + m_fileContainers.append(fileContainer->clone()); + } } -IFiles &Files::operator =(const IFiles &files) +Files &Files::operator =(const Files &files) { if (this != &files) { qDeleteAll(m_files); qDeleteAll(m_fileContainers); m_files.clear(); m_fileContainers.clear(); + m_parentProject = files.m_parentProject; - for (int i = 0; i < files.fileCount(); ++i) { - IFile *file = files.file(i); + foreach (IFile *file, files.m_files) { if (file) m_files.append(file->clone()); } - for (int i = 0; i < files.fileContainerCount(); ++i) { - IFileContainer *fileContainer = files.fileContainer(i); + foreach (IFileContainer *fileContainer, files.m_fileContainers) { if (fileContainer) m_fileContainers.append(fileContainer->clone()); } |