diff options
author | Radovan Zivkovic <pivonroll@gmail.com> | 2014-03-28 09:47:06 +0100 |
---|---|---|
committer | Radovan Zivkovic <pivonroll@gmail.com> | 2014-07-11 12:37:15 +0200 |
commit | 9596a9d79c996fad3402438a6b357b54cbd350c7 (patch) | |
tree | 82f9fe097899d14313343278d504040e4fc0471e | |
parent | 5232f29157513ff2cb5b0fb0b6179604650053f2 (diff) | |
download | qt-creator-9596a9d79c996fad3402438a6b357b54cbd350c7.tar.gz |
Fixed loading of build configurations.
Change-Id: Ib9c7924c503440982455b5fc58c8fa2decd9301a
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
-rw-r--r-- | src/plugins/vcprojectmanager/utils.cpp | 132 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/utils.h | 47 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/vcmakestep.cpp | 6 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/vcproject.cpp | 38 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/vcproject.h | 5 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/vcprojectbuildconfiguration.cpp | 89 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/vcprojectbuildconfiguration.h | 3 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/vcprojectmanager.cpp | 87 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/vcprojectmanager.h | 5 | ||||
-rw-r--r-- | src/plugins/vcprojectmanager/vcprojectmanager.pro | 6 |
10 files changed, 265 insertions, 153 deletions
diff --git a/src/plugins/vcprojectmanager/utils.cpp b/src/plugins/vcprojectmanager/utils.cpp new file mode 100644 index 0000000000..f610b04e72 --- /dev/null +++ b/src/plugins/vcprojectmanager/utils.cpp @@ -0,0 +1,132 @@ +/************************************************************************** +** +** Copyright (c) 2014 Bojan Petrovic +** Copyright (c) 2014 Radovan Zivkovic +** 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 "utils.h" +#include "vcschemamanager.h" + +#include <QFile> +#include <QXmlSchema> +#include <QXmlSchemaValidator> + +namespace VcProjectManager { +namespace Internal { +namespace Utils { + +bool checkIfVersion2003(const QString &filePath) +{ + VcSchemaManager *schemaMgr = VcSchemaManager::instance(); + QString vc2003Schema = schemaMgr->documentSchema(Constants::SV_2003); + + if (vc2003Schema.isEmpty()) { + return false; + } + + QFile schemaFile(vc2003Schema); + schemaFile.open(QIODevice::ReadOnly); + + QXmlSchema schema; + schema.load(&schemaFile, QUrl::fromLocalFile(schemaFile.fileName())); + + if (schema.isValid()) { + QFile file(filePath); + file.open(QIODevice::ReadOnly); + + QXmlSchemaValidator validator(schema); + if (validator.validate(&file, QUrl::fromLocalFile(file.fileName()))) + return true; + } + + return false; +} + +bool checkIfVersion2005(const QString &filePath) +{ + VcSchemaManager *schemaMgr = VcSchemaManager::instance(); + QString vc2005Schema = schemaMgr->documentSchema(Constants::SV_2005); + if (vc2005Schema.isEmpty()) + return false; + + QFile schemaFile(vc2005Schema); + schemaFile.open(QIODevice::ReadOnly); + + QXmlSchema schema; + schema.load(&schemaFile, QUrl::fromLocalFile(schemaFile.fileName())); + + if (schema.isValid()) { + QFile file(filePath); + file.open(QIODevice::ReadOnly); + + QXmlSchemaValidator validator(schema); + if (validator.validate(&file, QUrl::fromLocalFile(file.fileName()))) + return true; + } + + return false; +} + +bool checkIfVersion2008(const QString &filePath) +{ + VcSchemaManager *schemaMgr = VcSchemaManager::instance(); + QString vc2008Schema = schemaMgr->documentSchema(Constants::SV_2008); + if (vc2008Schema.isEmpty()) + return false; + + QFile schemaFile(vc2008Schema); + schemaFile.open(QIODevice::ReadOnly); + + QXmlSchema schema; + schema.load(&schemaFile, QUrl::fromLocalFile(schemaFile.fileName())); + + if (schema.isValid()) { + QFile file(filePath); + file.open(QIODevice::ReadOnly); + + QXmlSchemaValidator validator(schema); + if (validator.validate(&file, QUrl::fromLocalFile(file.fileName()))) + return true; + } + + return false; +} + +VcDocConstants::DocumentVersion getProjectVersion(const QString &projectPath) +{ + if (checkIfVersion2003(projectPath)) + return VcDocConstants::DV_MSVC_2003; + else if (checkIfVersion2005(projectPath)) + return VcDocConstants::DV_MSVC_2005; + else if (checkIfVersion2008(projectPath)) + return VcDocConstants::DV_MSVC_2008; + + return VcDocConstants::DV_UNRECOGNIZED; +} + +} // namespace Utils +} // namespace Internal +} // namespace VcProjectManager diff --git a/src/plugins/vcprojectmanager/utils.h b/src/plugins/vcprojectmanager/utils.h new file mode 100644 index 0000000000..3d8ec4dfa4 --- /dev/null +++ b/src/plugins/vcprojectmanager/utils.h @@ -0,0 +1,47 @@ +/************************************************************************** +** +** Copyright (c) 2014 Bojan Petrovic +** Copyright (c) 2014 Radovan Zivkovic +** 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_UTILS_H +#define VCPROJECTMANAGER_INTERNAL_UTILS_H + +#include "vcprojectmodel/vcprojectdocument_constants.h" + +#include <QString> + +namespace VcProjectManager { +namespace Internal { +namespace Utils { + +VcDocConstants::DocumentVersion getProjectVersion(const QString &projectPath); + +} // namespace Utils +} // namespace Internal +} // namespace VcProjectManager + +#endif // VCPROJECTMANAGER_INTERNAL_UTILS_H diff --git a/src/plugins/vcprojectmanager/vcmakestep.cpp b/src/plugins/vcprojectmanager/vcmakestep.cpp index c9ce7bcfeb..95980c6c9a 100644 --- a/src/plugins/vcprojectmanager/vcmakestep.cpp +++ b/src/plugins/vcprojectmanager/vcmakestep.cpp @@ -196,14 +196,10 @@ QString VcMakeStepConfigWidget::displayName() const QString VcMakeStepConfigWidget::summaryText() const { - VcProjectBuildConfiguration *bc = m_makeStep->vcProjectBuildConfiguration(); - ProjectExplorer::Project *project = bc->target()->project(); - VcProjectFile* document = static_cast<VcProjectFile *>(project->document()); MsBuildInformation *msBuild = VcProjectKitInformation::msBuildInfo(m_makeStep->target()->kit()); QFileInfo fileInfo(msBuild->m_executable); - return QString(QLatin1String("<b>MsBuild:</b> %1 %2 %3")).arg(fileInfo.fileName()) - .arg(document->filePath()) + return QString(QLatin1String("<b>MsBuild:</b> %1 %2")).arg(fileInfo.fileName()) .arg(m_makeStep->buildArgumentsToString()); } diff --git a/src/plugins/vcprojectmanager/vcproject.cpp b/src/plugins/vcprojectmanager/vcproject.cpp index e4a9492482..6a2c603b4a 100644 --- a/src/plugins/vcprojectmanager/vcproject.cpp +++ b/src/plugins/vcprojectmanager/vcproject.cpp @@ -28,6 +28,8 @@ ** ****************************************************************************/ #include "vcproject.h" + +#include "vcmakestep.h" #include "vcprojectbuildconfiguration.h" #include "vcprojectfile.h" #include "vcprojectkitinformation.h" @@ -53,6 +55,8 @@ #include <coreplugin/icontext.h> #include <cpptools/cppmodelmanagerinterface.h> +#include <projectexplorer/buildinfo.h> +#include <projectexplorer/buildsteplist.h> #include <projectexplorer/headerpath.h> #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/target.h> @@ -135,17 +139,6 @@ QStringList VcProject::files(Project::FilesMode fileMode) const return sl; } -QString VcProject::defaultBuildDirectory() const -{ - VcProjectFile* vcFile = static_cast<VcProjectFile *>(document()); - return defaultBuildDirectory(vcFile->filePath()); -} - -QString VcProject::defaultBuildDirectory(const QString &fileName) -{ - return QFileInfo(fileName).absolutePath() /* + QLatin1String("-build")*/; -} - bool VcProject::needsConfiguration() const { return targets().isEmpty() || !activeTarget() || activeTarget()->buildConfigurations().isEmpty(); @@ -221,14 +214,6 @@ bool VcProject::fromMap(const QVariantMap &map) return true; } -bool VcProject::setupTarget(ProjectExplorer::Target *t) -{ - t->updateDefaultBuildConfigurations(); - t->updateDefaultDeployConfigurations(); - - return true; -} - /** * @brief Visit folder node recursive and accumulate Source and Header files */ @@ -331,21 +316,6 @@ void VcProject::importBuildConfigurations() addTarget(createTarget(kit)); } -VcProjectBuildConfiguration *VcProject::findBuildConfiguration(Target *target, const QString &buildConfigurationName) const -{ - if (target) { - QList<ProjectExplorer::BuildConfiguration *> buildConfigurationList = target->buildConfigurations(); - - foreach (ProjectExplorer::BuildConfiguration *bc, buildConfigurationList) { - VcProjectBuildConfiguration *vcBc = qobject_cast<VcProjectBuildConfiguration *>(bc); - if (vcBc && vcBc->displayName() == buildConfigurationName) - return vcBc; - } - } - - return 0; -} - void VcProject::allProjectFile(QStringList &allFiles) const { if (m_projectFile && m_projectFile->documentModel() && m_projectFile->documentModel()->vcProjectDocument()) { diff --git a/src/plugins/vcprojectmanager/vcproject.h b/src/plugins/vcprojectmanager/vcproject.h index 1adba040cb..72f1b21270 100644 --- a/src/plugins/vcprojectmanager/vcproject.h +++ b/src/plugins/vcprojectmanager/vcproject.h @@ -63,8 +63,6 @@ public: ProjectExplorer::IProjectManager *projectManager() const; ProjectExplorer::ProjectNode *rootProjectNode() const; QStringList files(FilesMode fileMode) const; - QString defaultBuildDirectory() const; - static QString defaultBuildDirectory(const QString &fileName); bool needsConfiguration() const; bool supportsKit(ProjectExplorer::Kit *k, QString *errorMessage) const; @@ -76,14 +74,13 @@ private slots: protected: bool fromMap(const QVariantMap &map); - bool setupTarget(ProjectExplorer::Target *t); private: void addCxxModelFiles(const ProjectExplorer::FolderNode *node, QStringList &sourceFiles); void updateCodeModels(); void importBuildConfigurations(); - VcProjectBuildConfiguration *findBuildConfiguration(ProjectExplorer::Target *target, const QString &buildConfigurationName) const; void allProjectFile(QStringList &allFiles) const; + VcManager *m_projectManager; VcProjectFile *m_projectFile; VcDocProjectNode *m_rootNode; diff --git a/src/plugins/vcprojectmanager/vcprojectbuildconfiguration.cpp b/src/plugins/vcprojectmanager/vcprojectbuildconfiguration.cpp index 5c86c0b64a..5373b00103 100644 --- a/src/plugins/vcprojectmanager/vcprojectbuildconfiguration.cpp +++ b/src/plugins/vcprojectmanager/vcprojectbuildconfiguration.cpp @@ -28,8 +28,19 @@ ** ****************************************************************************/ #include "vcmakestep.h" + +#include "interfaces/ivisualstudioproject.h" +#include "interfaces/iconfiguration.h" +#include "interfaces/iconfigurations.h" +#include "interfaces/ifile.h" +#include "interfaces/ifilecontainer.h" + #include "vcprojectbuildconfiguration.h" +#include "vcprojectfile.h" #include "vcprojectmanagerconstants.h" +#include "utils.h" +#include "vcprojectmodel/configurationcontainer.h" +#include "vcprojectmodel/vcdocumentmodel.h" #include <coreplugin/mimedatabase.h> #include <projectexplorer/buildinfo.h> @@ -59,7 +70,8 @@ namespace Internal { VcProjectBuildConfiguration::VcProjectBuildConfiguration(Target *parent) : BuildConfiguration(parent, Core::Id(VC_PROJECT_BC_ID)) { - m_buildDirectory = static_cast<VcProject *>(parent->project())->defaultBuildDirectory(); + QFileInfo info(static_cast<VcProjectFile *>(parent->project()->document())->documentModel()->vcProjectDocument()->filePath()); + m_buildDirectory = info.canonicalPath() + QLatin1String("-build"); } VcProjectBuildConfiguration::~VcProjectBuildConfiguration() @@ -131,20 +143,46 @@ int VcProjectBuildConfigurationFactory::priority(const Kit *k, const QString &pr QList<BuildInfo *> VcProjectBuildConfigurationFactory::availableBuilds(const Target *parent) const { QList<BuildInfo *> result; - result << createBuildInfo(parent->kit(), - parent->project()->projectDirectory()); + + VcProjectFile *vcProjectFile = qobject_cast<VcProjectFile *>(parent->project()->document()); + QTC_ASSERT(vcProjectFile, return result); + + IVisualStudioProject *vsProject = vcProjectFile->documentModel()->vcProjectDocument(); + QTC_ASSERT(vsProject, return result); + + QTC_ASSERT(vsProject->configurations(), return result); + QTC_ASSERT(vsProject->configurations()->configurationContainer(), return result); + + for (int i = 0; i < vsProject->configurations()->configurationContainer()->configurationCount(); ++i) { + IConfiguration *config = vsProject->configurations()->configurationContainer()->configuration(i); + QTC_ASSERT(config, continue); + + result << createBuildInfo(parent->kit(), config); + } return result; } QList<BuildInfo *> VcProjectBuildConfigurationFactory::availableSetups( const Kit *k, const QString &projectPath) const { + Q_UNUSED(k); QList<BuildInfo *> result; - // TODO: Populate from Configuration - BuildInfo *info = createBuildInfo(k, - Utils::FileName::fromString(VcProject::defaultBuildDirectory(projectPath))); - info->displayName = tr("Default"); - result << info; + + VcDocConstants::DocumentVersion docVersion = Utils::getProjectVersion(projectPath); + VcDocumentModel documentModel = VcDocumentModel(projectPath, docVersion); + IVisualStudioProject *vsProject = documentModel.vcProjectDocument(); + QTC_ASSERT(vsProject, return result); + + QTC_ASSERT(vsProject->configurations(), return result); + QTC_ASSERT(vsProject->configurations()->configurationContainer(), return result); + + for (int i = 0; i < vsProject->configurations()->configurationContainer()->configurationCount(); ++i) { + IConfiguration *config = vsProject->configurations()->configurationContainer()->configuration(i); + QTC_ASSERT(config, continue); + + result << createBuildInfo(k, config); + } + return result; } @@ -155,10 +193,29 @@ VcProjectBuildConfiguration *VcProjectBuildConfigurationFactory::create(Target * QTC_ASSERT(info->kitId == parent->kit()->id(), return 0); QTC_ASSERT(!info->displayName.isEmpty(), return 0); + VcProjectFile *vcProjectFile = qobject_cast<VcProjectFile *>(parent->project()->document()); + QTC_ASSERT(vcProjectFile, return 0); + VcProjectBuildConfiguration *bc = new VcProjectBuildConfiguration(parent); bc->setDisplayName(info->displayName); bc->setDefaultDisplayName(info->displayName); - bc->setBuildDirectory(info->buildDirectory); + + BuildStepList *buildSteps = bc->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_BUILD)); + BuildStepList *cleanSteps = bc->stepList(Core::Id(ProjectExplorer::Constants::BUILDSTEPS_CLEAN)); + QTC_ASSERT(buildSteps, return 0); + QTC_ASSERT(cleanSteps, return 0); + + VcMakeStep *makeStep = new VcMakeStep(buildSteps); + QString argument(QLatin1String("/p:configuration=\"") + info->displayName + QLatin1String("\"")); + makeStep->addBuildArgument(vcProjectFile->filePath()); + makeStep->addBuildArgument(argument); + buildSteps->insertStep(0, makeStep); + + makeStep = new VcMakeStep(cleanSteps); + argument = QLatin1String("/p:configuration=\"") + info->displayName + QLatin1String("\" /t:Clean"); + makeStep->addBuildArgument(vcProjectFile->filePath()); + makeStep->addBuildArgument(argument); + cleanSteps->insertStep(0, makeStep); return bc; } @@ -203,15 +260,15 @@ bool VcProjectBuildConfigurationFactory::canHandle(const Target *t) const } BuildInfo *VcProjectBuildConfigurationFactory::createBuildInfo(const ProjectExplorer::Kit *k, - const Utils::FileName &buildDir) const + IConfiguration *config) const { - BuildInfo *info = new BuildInfo(this); - info->typeName = tr("Build"); - info->buildDirectory = buildDir; - info->kitId = k->id(); - info->supportsShadowBuild = true; + ProjectExplorer::BuildInfo *buildInfo = new ProjectExplorer::BuildInfo(this); + buildInfo->displayName = config->fullName(); + buildInfo->kitId = k->id(); + buildInfo->supportsShadowBuild = true; + buildInfo->typeName = config->fullName(); - return info; + return buildInfo; } } // namespace Internal diff --git a/src/plugins/vcprojectmanager/vcprojectbuildconfiguration.h b/src/plugins/vcprojectmanager/vcprojectbuildconfiguration.h index c78d7810e5..e0d70ad97f 100644 --- a/src/plugins/vcprojectmanager/vcprojectbuildconfiguration.h +++ b/src/plugins/vcprojectmanager/vcprojectbuildconfiguration.h @@ -74,7 +74,6 @@ class VcProjectBuildConfigurationFactory : public ProjectExplorer::IBuildConfigu public: explicit VcProjectBuildConfigurationFactory(QObject *parent = 0); - QList<Core::Id> availableCreationIds(const ProjectExplorer::Target *parent) const; QList<ProjectExplorer::BuildInfo *> availableBuilds(const ProjectExplorer::Target *parent) const; QList<ProjectExplorer::BuildInfo *> availableSetups(const ProjectExplorer::Kit *k, const QString &projectPath) const; bool canRestore(const ProjectExplorer::Target *parent, const QVariantMap &map) const; @@ -89,7 +88,7 @@ public: private: bool canHandle(const ProjectExplorer::Target *t) const; ProjectExplorer::BuildInfo *createBuildInfo(const ProjectExplorer::Kit *k, - const Utils::FileName &buildDir) const; + IConfiguration *config) const; }; } // namespace Internal diff --git a/src/plugins/vcprojectmanager/vcprojectmanager.cpp b/src/plugins/vcprojectmanager/vcprojectmanager.cpp index 4e5b53c700..e115c6ab40 100644 --- a/src/plugins/vcprojectmanager/vcprojectmanager.cpp +++ b/src/plugins/vcprojectmanager/vcprojectmanager.cpp @@ -32,6 +32,7 @@ #include "vcprojectmanager.h" #include "vcprojectmanagerconstants.h" #include "vcschemamanager.h" +#include "utils.h" #include "vcprojectmodel/vcprojectdocument_constants.h" #include <QtXmlPatterns/QXmlSchema> @@ -65,14 +66,7 @@ ProjectExplorer::Project *VcManager::openProject(const QString &fileName, QStrin // check if project is a valid vc project // versions supported are 2003, 2005 and 2008 - VcDocConstants::DocumentVersion docVersion = VcDocConstants::DV_UNRECOGNIZED; - - if (checkIfVersion2003(canonicalFilePath)) - docVersion = VcDocConstants::DV_MSVC_2003; - else if (checkIfVersion2005(canonicalFilePath)) - docVersion = VcDocConstants::DV_MSVC_2005; - else if (checkIfVersion2008(canonicalFilePath)) - docVersion = VcDocConstants::DV_MSVC_2008; + VcDocConstants::DocumentVersion docVersion = Utils::getProjectVersion(canonicalFilePath); if (docVersion != VcDocConstants::DV_UNRECOGNIZED) return new VcProject(this, canonicalFilePath, docVersion); @@ -87,82 +81,5 @@ void VcManager::updateContextMenu(Project *project, ProjectExplorer::Node *node) m_contextProject = project; } -bool VcManager::checkIfVersion2003(const QString &filePath) const -{ - VcSchemaManager *schemaMgr = VcSchemaManager::instance(); - QString vc2003Schema = schemaMgr->documentSchema(Constants::SV_2003); - - if (vc2003Schema.isEmpty()) { - return false; - } - - QFile schemaFile(vc2003Schema); - schemaFile.open(QIODevice::ReadOnly); - - QXmlSchema schema; - schema.load(&schemaFile, QUrl::fromLocalFile(schemaFile.fileName())); - - if (schema.isValid()) { - QFile file(filePath); - file.open(QIODevice::ReadOnly); - - QXmlSchemaValidator validator(schema); - if (validator.validate(&file, QUrl::fromLocalFile(file.fileName()))) - return true; - } - - return false; -} - -bool VcManager::checkIfVersion2005(const QString &filePath) const -{ - VcSchemaManager *schemaMgr = VcSchemaManager::instance(); - QString vc2005Schema = schemaMgr->documentSchema(Constants::SV_2005); - if (vc2005Schema.isEmpty()) - return false; - - QFile schemaFile(vc2005Schema); - schemaFile.open(QIODevice::ReadOnly); - - QXmlSchema schema; - schema.load(&schemaFile, QUrl::fromLocalFile(schemaFile.fileName())); - - if (schema.isValid()) { - QFile file(filePath); - file.open(QIODevice::ReadOnly); - - QXmlSchemaValidator validator(schema); - if (validator.validate(&file, QUrl::fromLocalFile(file.fileName()))) - return true; - } - - return false; -} - -bool VcManager::checkIfVersion2008(const QString &filePath) const -{ - VcSchemaManager *schemaMgr = VcSchemaManager::instance(); - QString vc2008Schema = schemaMgr->documentSchema(Constants::SV_2008); - if (vc2008Schema.isEmpty()) - return false; - - QFile schemaFile(vc2008Schema); - schemaFile.open(QIODevice::ReadOnly); - - QXmlSchema schema; - schema.load(&schemaFile, QUrl::fromLocalFile(schemaFile.fileName())); - - if (schema.isValid()) { - QFile file(filePath); - file.open(QIODevice::ReadOnly); - - QXmlSchemaValidator validator(schema); - if (validator.validate(&file, QUrl::fromLocalFile(file.fileName()))) - return true; - } - - return false; -} - } // namespace Internal } // namespace VcProjectManager diff --git a/src/plugins/vcprojectmanager/vcprojectmanager.h b/src/plugins/vcprojectmanager/vcprojectmanager.h index 6b098e72d8..2e22c0e8cf 100644 --- a/src/plugins/vcprojectmanager/vcprojectmanager.h +++ b/src/plugins/vcprojectmanager/vcprojectmanager.h @@ -52,11 +52,6 @@ private slots: void updateContextMenu(ProjectExplorer::Project *project, ProjectExplorer::Node *node); private: - bool checkIfVersion2003(const QString &filePath) const; - bool checkIfVersion2005(const QString &filePath) const; - bool checkIfVersion2008(const QString &filePath) const; - -private: ProjectExplorer::Project *m_contextProject; VcProjectBuildOptionsPage *m_configPage; diff --git a/src/plugins/vcprojectmanager/vcprojectmanager.pro b/src/plugins/vcprojectmanager/vcprojectmanager.pro index 74c1080eec..df1010d1b3 100644 --- a/src/plugins/vcprojectmanager/vcprojectmanager.pro +++ b/src/plugins/vcprojectmanager/vcprojectmanager.pro @@ -13,7 +13,8 @@ HEADERS = vcprojectmanagerplugin.h \ msbuildversionmanager.h \ vcprojectbuildoptionspage.h \ vcschemamanager.h \ - menuhandler.h + menuhandler.h \ + utils.h SOURCES = vcprojectmanagerplugin.cpp \ vcprojectmanager.cpp \ @@ -26,7 +27,8 @@ SOURCES = vcprojectmanagerplugin.cpp \ msbuildversionmanager.cpp \ vcprojectbuildoptionspage.cpp \ vcschemamanager.cpp \ - menuhandler.cpp + menuhandler.cpp \ + utils.cpp OTHER_FILES += \ VcProject.mimetypes.xml |