Commit 55f62546 authored by Tobias Hunger's avatar Tobias Hunger

Introduce BaseFileWizard

Introduce BaseFileWizard and derive all File Wizards from that.

Change BaseFileWizardFactory::create(...) to return a BaseFileWizard.

Change-Id: Ic0cb9e9d0390045dab57cd1a75a0f839c1f90216
Reviewed-by: Orgad Shaneh's avatarOrgad Shaneh <orgads@gmail.com>
parent 5b5bea0c
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** 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 "basefilewizard.h"
Core::BaseFileWizard::BaseFileWizard(QWidget *parent) :
Utils::FileWizardDialog(parent)
{ }
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** 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 BASEFILEWIZARD_H
#define BASEFILEWIZARD_H
#include "core_global.h"
#include <utils/filewizarddialog.h>
namespace Core {
class CORE_EXPORT BaseFileWizard : public Utils::FileWizardDialog
{
Q_OBJECT
public:
explicit BaseFileWizard(QWidget *parent = 0);
};
} // namespace Core
#endif // BASEFILEWIZARD_H
......@@ -28,6 +28,8 @@
****************************************************************************/
#include "basefilewizardfactory.h"
#include "basefilewizard.h"
#include "icore.h"
#include "ifilewizardextension.h"
#include "mimedatabase.h"
......@@ -524,16 +526,16 @@ QString BaseFileWizardFactory::preferredSuffix(const QString &mimeType)
Creates a Utils::FileWizardDialog.
*/
QWizard *StandardFileWizardFactory::create(QWidget *parent, const WizardDialogParameters &parameters) const
BaseFileWizard *StandardFileWizardFactory::create(QWidget *parent, const WizardDialogParameters &parameters) const
{
Utils::FileWizardDialog *standardWizardDialog = new Utils::FileWizardDialog(parent);
BaseFileWizard *wizard = new BaseFileWizard(parent);
if (parameters.flags().testFlag(WizardDialogParameters::ForceCapitalLetterForFileName))
standardWizardDialog->setForceFirstCapitalLetterForFileName(true);
standardWizardDialog->setWindowTitle(tr("New %1").arg(displayName()));
standardWizardDialog->setPath(parameters.defaultPath());
wizard->setForceFirstCapitalLetterForFileName(true);
wizard->setWindowTitle(tr("New %1").arg(displayName()));
wizard->setPath(parameters.defaultPath());
foreach (QWizardPage *p, parameters.extensionPages())
BaseFileWizardFactory::applyExtensionPageShortTitle(standardWizardDialog, standardWizardDialog->addPage(p));
return standardWizardDialog;
BaseFileWizardFactory::applyExtensionPageShortTitle(wizard, wizard->addPage(p));
return wizard;
}
/*!
......
......@@ -52,6 +52,7 @@ namespace Utils { class Wizard; }
namespace Core {
class BaseFileWizard;
class IFileWizardExtension;
class CORE_EXPORT WizardDialogParameters
......@@ -120,7 +121,7 @@ protected:
virtual ExtensionList extensions() const;
virtual QWizard *create(QWidget *parent, const WizardDialogParameters &parameters) const = 0;
virtual BaseFileWizard *create(QWidget *parent, const WizardDialogParameters &parameters) const = 0;
virtual GeneratedFiles generateFiles(const QWizard *w,
QString *errorMessage) const = 0;
......@@ -142,7 +143,7 @@ class CORE_EXPORT StandardFileWizardFactory : public BaseFileWizardFactory
Q_OBJECT
protected:
QWizard *create(QWidget *parent, const WizardDialogParameters &parameters) const;
BaseFileWizard *create(QWidget *parent, const WizardDialogParameters &parameters) const;
GeneratedFiles generateFiles(const QWizard *w, QString *errorMessage) const;
virtual GeneratedFiles generateFilesFromPath(const QString &path, const QString &name,
QString *errorMessage) const = 0;
......
......@@ -55,6 +55,7 @@ SOURCES += mainwindow.cpp \
coreplugin.cpp \
variablemanager.cpp \
modemanager.cpp \
basefilewizard.cpp \
basefilewizardfactory.cpp \
generatedfile.cpp \
plugindialog.cpp \
......@@ -158,6 +159,7 @@ HEADERS += mainwindow.h \
coreplugin.h \
variablemanager.h \
modemanager.h \
basefilewizard.h \
basefilewizardfactory.h \
generatedfile.h \
plugindialog.h \
......
......@@ -28,6 +28,7 @@ QtcPlugin {
Group {
name: "General"
files: [
"basefilewizard.cpp", "basefilewizard.h",
"basefilewizardfactory.cpp", "basefilewizardfactory.h",
"core.qrc",
"core_global.h",
......
......@@ -111,7 +111,7 @@ void ClassNamePage::slotValidChanged()
}
CppClassWizardDialog::CppClassWizardDialog(QWidget *parent) :
Utils::Wizard(parent),
Core::BaseFileWizard(parent),
m_classNamePage(new ClassNamePage(this))
{
setWindowTitle(tr("C++ Class Wizard"));
......@@ -153,7 +153,7 @@ QString CppClassWizard::headerSuffix() const
return preferredSuffix(QLatin1String(Constants::CPP_HEADER_MIMETYPE));
}
QWizard *CppClassWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
Core::BaseFileWizard *CppClassWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
{
CppClassWizardDialog *wizard = new CppClassWizardDialog(parent);
foreach (QWizardPage *p, parameters.extensionPages())
......
......@@ -30,6 +30,7 @@
#ifndef CPPCLASSWIZARD_H
#define CPPCLASSWIZARD_H
#include <coreplugin/basefilewizard.h>
#include <coreplugin/basefilewizardfactory.h>
#include <utils/wizard.h>
......@@ -72,7 +73,7 @@ struct CppClassWizardParameters
int classType;
};
class CppClassWizardDialog : public Utils::Wizard
class CppClassWizardDialog : public Core::BaseFileWizard
{
Q_OBJECT
......@@ -95,7 +96,7 @@ public:
CppClassWizard();
private:
QWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::BaseFileWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::GeneratedFiles generateFiles(const QWizard *w,
QString *errorMessage) const;
......
......@@ -60,7 +60,7 @@ QString FormClassWizard::formSuffix() const
return preferredSuffix(QLatin1String(Constants::FORM_MIMETYPE));
}
QWizard *FormClassWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
Core::BaseFileWizard *FormClassWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
{
FormClassWizardDialog *wizardDialog = new FormClassWizardDialog(parameters.extensionPages(),
parent);
......
......@@ -49,7 +49,7 @@ public:
QString formSuffix() const;
private:
QWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::BaseFileWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::GeneratedFiles generateFiles(const QWizard *w, QString *errorMessage) const;
};
......
......@@ -44,7 +44,7 @@ namespace Internal {
// ----------------- FormClassWizardDialog
FormClassWizardDialog::FormClassWizardDialog(const WizardPageList &extensionPages,
QWidget *parent) :
Utils::Wizard(parent),
Core::BaseFileWizard(parent),
m_formPage(new FormTemplateWizardPage),
m_classPage(new FormClassWizardPage)
{
......
......@@ -30,7 +30,7 @@
#ifndef FORMCLASSWIZARDDIALOG_H
#define FORMCLASSWIZARDDIALOG_H
#include <utils/wizard.h>
#include <coreplugin/basefilewizard.h>
namespace Designer {
......@@ -41,7 +41,7 @@ namespace Internal {
class FormClassWizardPage;
class FormTemplateWizardPage;
class FormClassWizardDialog : public Utils::Wizard
class FormClassWizardDialog : public Core::BaseFileWizard
{
Q_OBJECT
......
......@@ -42,7 +42,7 @@ FormWizard::FormWizard()
addRequiredFeature(Core::Id(QtSupport::Constants::FEATURE_QWIDGETS));
}
QWizard *FormWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
Core::BaseFileWizard *FormWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
{
FormFileWizardDialog *wizardDialog = new FormFileWizardDialog(parameters.extensionPages(),
parent);
......
......@@ -43,7 +43,7 @@ public:
FormWizard();
private:
QWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::BaseFileWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::GeneratedFiles generateFiles(const QWizard *w, QString *errorMessage) const;
};
......
......@@ -45,8 +45,8 @@ namespace Internal {
// ----------------- FormWizardDialog
FormWizardDialog::FormWizardDialog(const WizardPageList &extensionPages,
QWidget *parent)
: Utils::Wizard(parent),
QWidget *parent) :
Core::BaseFileWizard(parent),
m_formPage(new FormTemplateWizardPage)
{
init(extensionPages);
......
......@@ -30,7 +30,7 @@
#ifndef FORMWIZARDDIALOG_H
#define FORMWIZARDDIALOG_H
#include <utils/wizard.h>
#include <coreplugin/basefilewizard.h>
namespace Utils { class FileWizardPage; }
......@@ -42,7 +42,7 @@ class FormTemplateWizardPage;
// Single-Page Wizard for new forms offering all types known to Qt Designer.
// To be used for Mode "CreateNewEditor" [not currently used]
class FormWizardDialog : public Utils::Wizard
class FormWizardDialog : public Core::BaseFileWizard
{
Q_OBJECT
......
......@@ -59,8 +59,8 @@ static const char *const ConfigFileTemplate =
//
//////////////////////////////////////////////////////////////////////////////
GenericProjectWizardDialog::GenericProjectWizardDialog(QWidget *parent)
: Utils::Wizard(parent)
GenericProjectWizardDialog::GenericProjectWizardDialog(QWidget *parent) :
Core::BaseFileWizard(parent)
{
setWindowTitle(tr("Import Existing Project"));
......@@ -132,7 +132,7 @@ GenericProjectWizard::GenericProjectWizard()
setFlags(Core::IWizardFactory::PlatformIndependent);
}
QWizard *GenericProjectWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
Core::BaseFileWizard *GenericProjectWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
{
GenericProjectWizardDialog *wizard = new GenericProjectWizardDialog(parent);
......
......@@ -30,22 +30,21 @@
#ifndef GENERICPROJECTWIZARD_H
#define GENERICPROJECTWIZARD_H
#include <coreplugin/basefilewizard.h>
#include <coreplugin/basefilewizardfactory.h>
#include <utils/wizard.h>
namespace Utils { class FileWizardPage; }
namespace GenericProjectManager {
namespace Internal {
class FilesSelectionWizardPage;
class GenericProjectWizardDialog : public Utils::Wizard
class GenericProjectWizardDialog : public Core::BaseFileWizard
{
Q_OBJECT
public:
GenericProjectWizardDialog(QWidget *parent = 0);
explicit GenericProjectWizardDialog(QWidget *parent = 0);
QString path() const;
void setPath(const QString &path);
......@@ -66,7 +65,7 @@ public:
GenericProjectWizard();
protected:
QWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::BaseFileWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::GeneratedFiles generateFiles(const QWizard *w, QString *errorMessage) const;
bool postGenerateFiles(const QWizard *w, const Core::GeneratedFiles &l, QString *errorMessage);
};
......
......@@ -30,7 +30,8 @@
#include "glslfilewizard.h"
#include "glsleditorconstants.h"
#include <utils/filewizarddialog.h>
#include <coreplugin/basefilewizard.h>
#include <utils/qtcassert.h>
#include <QFileInfo>
......@@ -38,18 +39,6 @@
#include <QWizard>
#include <QPushButton>
namespace {
class GLSLFileWizardDialog : public Utils::FileWizardDialog
{
Q_OBJECT
public:
GLSLFileWizardDialog(QWidget *parent = 0)
: Utils::FileWizardDialog(parent)
{
}
};
} // anonymous namespace
using namespace GLSLEditor;
GLSLFileWizard::GLSLFileWizard(ShaderType shaderType)
......@@ -61,9 +50,9 @@ GLSLFileWizard::GLSLFileWizard(ShaderType shaderType)
Core::GeneratedFiles GLSLFileWizard::generateFiles(const QWizard *w,
QString * /*errorMessage*/) const
{
const GLSLFileWizardDialog *wizardDialog = qobject_cast<const GLSLFileWizardDialog *>(w);
const QString path = wizardDialog->path();
const QString name = wizardDialog->fileName();
const Core::BaseFileWizard *wizard = qobject_cast<const Core::BaseFileWizard *>(w);
const QString path = wizard->path();
const QString name = wizard->fileName();
const QString fileName = Core::BaseFileWizardFactory::buildFileName(path, name, preferredSuffix(m_shaderType));
......@@ -127,14 +116,14 @@ QString GLSLFileWizard::fileContents(const QString &, ShaderType shaderType) con
return contents;
}
QWizard *GLSLFileWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
Core::BaseFileWizard *GLSLFileWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
{
GLSLFileWizardDialog *wizardDialog = new GLSLFileWizardDialog(parent);
wizardDialog->setWindowTitle(tr("New %1").arg(displayName()));
wizardDialog->setPath(parameters.defaultPath());
Core::BaseFileWizard *wizard = new Core::BaseFileWizard(parent);
wizard->setWindowTitle(tr("New %1").arg(displayName()));
wizard->setPath(parameters.defaultPath());
foreach (QWizardPage *p, parameters.extensionPages())
BaseFileWizardFactory::applyExtensionPageShortTitle(wizardDialog, wizardDialog->addPage(p));
return wizardDialog;
BaseFileWizardFactory::applyExtensionPageShortTitle(wizard, wizard->addPage(p));
return wizard;
}
QString GLSLFileWizard::preferredSuffix(ShaderType shaderType) const
......@@ -152,5 +141,3 @@ QString GLSLFileWizard::preferredSuffix(ShaderType shaderType) const
return QLatin1String("glsl");
}
}
#include "glslfilewizard.moc"
......@@ -52,7 +52,7 @@ public:
private:
QString fileContents(const QString &baseName, ShaderType shaderType) const;
QWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::BaseFileWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::GeneratedFiles generateFiles(const QWizard *w,
QString *errorMessage) const;
......
......@@ -65,7 +65,7 @@ BaseProjectWizardDialogPrivate::BaseProjectWizardDialogPrivate(Utils::ProjectInt
BaseProjectWizardDialog::BaseProjectWizardDialog(QWidget *parent,
const Core::WizardDialogParameters &parameters) :
Utils::Wizard(parent),
Core::BaseFileWizard(parent),
d(new BaseProjectWizardDialogPrivate(new Utils::ProjectIntroPage))
{
setPath(parameters.defaultPath());
......@@ -74,11 +74,10 @@ BaseProjectWizardDialog::BaseProjectWizardDialog(QWidget *parent,
init();
}
BaseProjectWizardDialog::BaseProjectWizardDialog(Utils::ProjectIntroPage *introPage,
int introId,
BaseProjectWizardDialog::BaseProjectWizardDialog(Utils::ProjectIntroPage *introPage, int introId,
QWidget *parent,
const Core::WizardDialogParameters &parameters) :
Utils::Wizard(parent),
Core::BaseFileWizard(parent),
d(new BaseProjectWizardDialogPrivate(introPage, introId))
{
setPath(parameters.defaultPath());
......
......@@ -31,8 +31,9 @@
#define BASEPROJECTWIZARDDIALOG_H
#include "projectexplorer_export.h"
#include <coreplugin/basefilewizard.h>
#include <coreplugin/basefilewizardfactory.h>
#include <utils/wizard.h>
namespace Utils { class ProjectIntroPage; }
......@@ -41,13 +42,12 @@ namespace ProjectExplorer {
struct BaseProjectWizardDialogPrivate;
// Documentation inside.
class PROJECTEXPLORER_EXPORT BaseProjectWizardDialog : public Utils::Wizard
class PROJECTEXPLORER_EXPORT BaseProjectWizardDialog : public Core::BaseFileWizard
{
Q_OBJECT
protected:
explicit BaseProjectWizardDialog(Utils::ProjectIntroPage *introPage,
int introId,
explicit BaseProjectWizardDialog(Utils::ProjectIntroPage *introPage, int introId,
QWidget *parent, const Core::WizardDialogParameters &parameters);
public:
......
......@@ -135,7 +135,7 @@ static inline void addWizardPage(Utils::Wizard *w, QWizardPage *p, int id)
}
// Initialize a wizard with a custom file page.
void CustomWizard::initWizardDialog(Utils::Wizard *wizard, const QString &defaultPath,
void CustomWizard::initWizardDialog(Core::BaseFileWizard *wizard, const QString &defaultPath,
const WizardPageList &extensionPages) const
{
QTC_ASSERT(!parameters().isNull(), return);
......@@ -152,10 +152,10 @@ void CustomWizard::initWizardDialog(Utils::Wizard *wizard, const QString &defaul
qDebug() << "initWizardDialog" << wizard << wizard->pageIds();
}
QWizard *CustomWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
Core::BaseFileWizard *CustomWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
{
QTC_ASSERT(!d->m_parameters.isNull(), return 0);
Utils::Wizard *wizard = new Utils::Wizard(parent);
Core::BaseFileWizard *wizard = new Core::BaseFileWizard(parent);
initWizardDialog(wizard, parameters.defaultPath(), parameters.extensionPages());
return wizard;
}
......@@ -502,7 +502,7 @@ CustomProjectWizard::CustomProjectWizard()
initProjectWizardDialog() needs to be called.
*/
QWizard *CustomProjectWizard::create(QWidget *parent,
Core::BaseFileWizard *CustomProjectWizard::create(QWidget *parent,
const Core::WizardDialogParameters &parameters) const
{
BaseProjectWizardDialog *projectDialog = new BaseProjectWizardDialog(parent, parameters);
......
......@@ -96,7 +96,7 @@ public:
// Can be reimplemented to create custom wizards. initWizardDialog() needs to be
// called.
QWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::BaseFileWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::GeneratedFiles generateFiles(const QWizard *w, QString *errorMessage) const;
......@@ -111,7 +111,7 @@ protected:
typedef QSharedPointer<Internal::CustomWizardParameters> CustomWizardParametersPtr;
typedef QSharedPointer<Internal::CustomWizardContext> CustomWizardContextPtr;
void initWizardDialog(Utils::Wizard *w, const QString &defaultPath,
void initWizardDialog(Core::BaseFileWizard *w, const QString &defaultPath,
const WizardPageList &extensionPages) const;
// generate files in path
......@@ -143,7 +143,7 @@ public:
static bool postGenerateOpen(const Core::GeneratedFiles &l, QString *errorMessage = 0);
protected:
QWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::BaseFileWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::GeneratedFiles generateFiles(const QWizard *w, QString *errorMessage) const;
......
......@@ -55,7 +55,7 @@ ClassWizard::ClassWizard()
setDescription(ClassWizard::tr(Constants::EN_PY_CLASS_DESCRIPTION));
}
QWizard *ClassWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
Core::BaseFileWizard *ClassWizard::create(QWidget *parent, const Core::WizardDialogParameters &parameters) const
{
ClassWizardDialog *wizard = new ClassWizardDialog(parent);
foreach (QWizardPage *p, parameters.extensionPages())
......
......@@ -49,7 +49,7 @@ public:
ClassWizard();
private:
QWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::BaseFileWizard *create(QWidget *parent, const Core::WizardDialogParameters &parameters) const;
Core::GeneratedFiles generateFiles(const QWizard *w,
QString *errorMessage) const;
......
......@@ -36,9 +36,9 @@
namespace PythonEditor {
namespace Internal {
ClassWizardDialog::ClassWizardDialog(QWidget *parent)
: Utils::Wizard(parent)
, m_classNamePage(new ClassNamePage(this))
ClassWizardDialog::ClassWizardDialog(QWidget *parent) :
Core::BaseFileWizard(parent),
m_classNamePage(new ClassNamePage(this))
{
setWindowTitle(tr("Python Class Wizard"));
const int classNameId = addPage(m_classNamePage.data());
......
......@@ -30,7 +30,8 @@
#ifndef PYTHONEDITOR_CLASSWIZARDDIALOG_H
#define PYTHONEDITOR_CLASSWIZARDDIALOG_H
#include <utils/wizard.h>
#include <coreplugin/basefilewizard.h>
#include <utils/newclasswidget.h>
#include <QScopedPointer>
#include <QVariantMap>
......@@ -50,7 +51,7 @@ public:
Utils::NewClassWidget::ClassType classType;
};
class ClassWizardDialog : public Utils::Wizard
class ClassWizardDialog : public Core::BaseFileWizard
{
Q_OBJECT
public:
......
......@@ -34,7 +34,7 @@
#include "pythonfilewizard.h"
#include "../pythoneditorconstants.h"