diff options
author | Christian Kandeler <[email protected]> | 2015-07-01 17:20:45 +0200 |
---|---|---|
committer | Christian Kandeler <[email protected]> | 2015-07-02 13:02:01 +0300 |
commit | daa478adad625b40d51cea9d90be8a77210a6818 (patch) | |
tree | 29932de6169b349550066d26d98fbe8723ba9beb | |
parent | 313724ace923b5b4a453722139c31ae2d8465e9c (diff) |
Factor out license check.
Change-Id: Ifcaab7252239bde1affa8bc55ab38761c0f6e99f
Reviewed-by: Nikolai Kosjar <[email protected]>
4 files changed, 51 insertions, 20 deletions
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzer.pro b/plugins/clangstaticanalyzer/clangstaticanalyzer.pro index f348951ea7c..176c3274f18 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzer.pro +++ b/plugins/clangstaticanalyzer/clangstaticanalyzer.pro @@ -28,6 +28,7 @@ HEADERS += \ clangstaticanalyzerdiagnosticmodel.h \ clangstaticanalyzerdiagnosticview.h \ clangstaticanalyzer_global.h \ + clangstaticanalyzerlicensecheck.h \ clangstaticanalyzerlogfilereader.h \ clangstaticanalyzerplugin.h \ clangstaticanalyzerprojectsettings.h \ diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzer.qbs b/plugins/clangstaticanalyzer/clangstaticanalyzer.qbs index 524debd5005..beb745f5293 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzer.qbs +++ b/plugins/clangstaticanalyzer/clangstaticanalyzer.qbs @@ -30,6 +30,7 @@ QtcCommercialPlugin { "clangstaticanalyzerdiagnosticmodel.h", "clangstaticanalyzerdiagnosticview.cpp", "clangstaticanalyzerdiagnosticview.h", + "clangstaticanalyzerlicensecheck.h", "clangstaticanalyzerlogfilereader.cpp", "clangstaticanalyzerlogfilereader.h", "clangstaticanalyzerplugin.cpp", diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerlicensecheck.h b/plugins/clangstaticanalyzer/clangstaticanalyzerlicensecheck.h new file mode 100644 index 00000000000..7b0d09ba9df --- /dev/null +++ b/plugins/clangstaticanalyzer/clangstaticanalyzerlicensecheck.h @@ -0,0 +1,45 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd +** All rights reserved. +** For any questions to The Qt Company, please use contact form at http://www.qt.io/contact-us +** +** This file is part of the Qt Enterprise ClangStaticAnalyzer Add-on. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. +** +** If you have questions regarding the use of this file, please use +** contact form at http://www.qt.io/contact-us +** +****************************************************************************/ + +#ifndef CLANGSTATICANALYZERLICENSECHECK_H +#define CLANGSTATICANALYZERLICENSECHECK_H + +#ifdef LICENSECHECKER +#include <extensionsystem/pluginmanager.h> +#include <licensechecker/licensecheckerplugin.h> +#endif + +inline bool enterpriseFeaturesAvailable() +{ +#ifdef LICENSECHECKER + LicenseChecker::LicenseCheckerPlugin *licenseChecker + = ExtensionSystem::PluginManager::getObject<LicenseChecker::LicenseCheckerPlugin>(); + + if (licenseChecker && licenseChecker->hasValidLicense()) { + if (licenseChecker->enterpriseFeatures()) + return true; + } else { + qWarning() << "Invalid license, disabling Clang Static Analyzer"; + } + return false; +#else // LICENSECHECKER + return true; +#endif +} + +#endif // Include guard. diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp index 2afd35cec30..2fb20ea644c 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp +++ b/plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp @@ -20,6 +20,7 @@ #include "clangstaticanalyzerconfigwidget.h" #include "clangstaticanalyzerconstants.h" +#include "clangstaticanalyzerlicensecheck.h" #include "clangstaticanalyzerprojectsettingswidget.h" #include "clangstaticanalyzerruncontrolfactory.h" #include "clangstaticanalyzertool.h" @@ -38,12 +39,6 @@ #include <coreplugin/dialogs/ioptionspage.h> #include <projectexplorer/projectpanelfactory.h> -#ifdef LICENSECHECKER -#include <licensechecker/licensecheckerplugin.h> -#endif - -#include <extensionsystem/pluginmanager.h> - #include <QAction> #include <QDebug> #include <QMainWindow> @@ -117,21 +112,7 @@ bool ClangStaticAnalyzerPlugin::initialize(const QStringList &arguments, QString panelFactory->setDisplayName(tr("Clang Static Analyzer Settings")); panelFactory->setSimpleCreateWidgetFunction<ProjectSettingsWidget>(QIcon()); ProjectExplorer::ProjectPanelFactory::registerFactory(panelFactory); - -#ifdef LICENSECHECKER - LicenseChecker::LicenseCheckerPlugin *licenseChecker - = ExtensionSystem::PluginManager::getObject<LicenseChecker::LicenseCheckerPlugin>(); - - if (licenseChecker && licenseChecker->hasValidLicense()) { - if (licenseChecker->enterpriseFeatures()) - return initializeEnterpriseFeatures(arguments, errorString); - } else { - qWarning() << "Invalid license, disabling Clang Static Analyzer"; - } - return true; -#else // LICENSECHECKER return initializeEnterpriseFeatures(arguments, errorString); -#endif } bool ClangStaticAnalyzerPlugin::initializeEnterpriseFeatures(const QStringList &arguments, @@ -140,6 +121,9 @@ bool ClangStaticAnalyzerPlugin::initializeEnterpriseFeatures(const QStringList & Q_UNUSED(arguments); Q_UNUSED(errorString); + if (!enterpriseFeaturesAvailable()) + return true; + auto tool = m_analyzerTool = new ClangStaticAnalyzerTool(this); addAutoReleasedObject(new ClangStaticAnalyzerRunControlFactory(m_analyzerTool)); addAutoReleasedObject(new ClangStaticAnalyzerOptionsPage); |