forked from qt-creator/qt-creator
This still has some not quite orthogonal features in one blob function, but at least it's not a separate class anymore. A step forward to remote support in places where it could make sense. Change-Id: Ia02003e4340eb2b5ee92bd48c00006a487527828 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
77 lines
2.1 KiB
C++
77 lines
2.1 KiB
C++
// Copyright (C) 2016 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
#include "pythonplugin.h"
|
|
|
|
#include "pysidebuildconfiguration.h"
|
|
#include "pythoneditor.h"
|
|
#include "pythonproject.h"
|
|
#include "pythonrunconfiguration.h"
|
|
#include "pythonsettings.h"
|
|
#include "pythonwizardpage.h"
|
|
|
|
#include <projectexplorer/buildtargetinfo.h>
|
|
#include <projectexplorer/jsonwizard/jsonwizardfactory.h>
|
|
#include <projectexplorer/projectexplorerconstants.h>
|
|
#include <projectexplorer/projectmanager.h>
|
|
#include <projectexplorer/taskhub.h>
|
|
|
|
#include <utils/fsengine/fileiconprovider.h>
|
|
#include <utils/theme/theme.h>
|
|
|
|
using namespace ProjectExplorer;
|
|
using namespace Utils;
|
|
|
|
namespace Python::Internal {
|
|
|
|
static PythonPlugin *m_instance = nullptr;
|
|
|
|
class PythonPluginPrivate
|
|
{
|
|
public:
|
|
PythonEditorFactory editorFactory;
|
|
PythonOutputFormatterFactory outputFormatterFactory;
|
|
PythonRunConfigurationFactory runConfigFactory;
|
|
PySideBuildStepFactory buildStepFactory;
|
|
PySideBuildConfigurationFactory buildConfigFactory;
|
|
SimpleTargetRunnerFactory runWorkerFactory{{runConfigFactory.runConfigurationId()}};
|
|
PythonSettings settings;
|
|
};
|
|
|
|
PythonPlugin::PythonPlugin()
|
|
{
|
|
m_instance = this;
|
|
}
|
|
|
|
PythonPlugin::~PythonPlugin()
|
|
{
|
|
m_instance = nullptr;
|
|
delete d;
|
|
}
|
|
|
|
PythonPlugin *PythonPlugin::instance()
|
|
{
|
|
return m_instance;
|
|
}
|
|
|
|
void PythonPlugin::initialize()
|
|
{
|
|
d = new PythonPluginPrivate;
|
|
|
|
ProjectManager::registerProjectType<PythonProject>(PythonMimeType);
|
|
ProjectManager::registerProjectType<PythonProject>(PythonMimeTypeLegacy);
|
|
JsonWizardFactory::registerPageFactory(new PythonWizardPageFactory);
|
|
}
|
|
|
|
void PythonPlugin::extensionsInitialized()
|
|
{
|
|
// Add MIME overlay icons (these icons displayed at Project dock panel)
|
|
const QString imageFile = Utils::creatorTheme()->imageFile(Theme::IconOverlayPro,
|
|
::Constants::FILEOVERLAY_PY);
|
|
FileIconProvider::registerIconOverlayForSuffix(imageFile, "py");
|
|
|
|
TaskHub::addCategory(PythonErrorTaskCategory, "Python", true);
|
|
}
|
|
|
|
} // Python::Internal
|