Commit b79c4a37 authored by Friedemann Kleint's avatar Friedemann Kleint

Remove duplicated Qt 4 private headers used for building the Qt Designer plugin.

As of Qt 5, the Qt Designer integration no longer relies on
private Qt Designer headers.

Change-Id: Ib2909e856232491e9067ccc9cad6df86e9da086b
Reviewed-by: default avatarhjk <hjk@theqtcompany.com>
parent 7ebc031a
......@@ -45,11 +45,3 @@ designer's internal file watcher updates the changes to qrc files silently.
A call to setResourceEditingEnabled(false) removes the edit resources action
form resource browser in designer
Building
--------
The plugin accesses some private headers of Qt Designer 4.5.
Copies of them are located in qt_private to achieve a clean build
from a standard Qt distribution. The script syncqtheader.sh
can be used to update them.
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing
**
** 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 The Qt Company. For licensing terms and
** conditions see http://www.qt.io/terms-conditions. For further information
** use the contact form at http://www.qt.io/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 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists for the convenience
// of Qt Designer. This header
// file may change from version to version without notice, or even be removed.
//
// We mean it.
//
#ifndef ABSTRACTNEWFORMWIDGET_H
#define ABSTRACTNEWFORMWIDGET_H
#include <sdk_global.h>
#include <QWidget>
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
class QDesignerFormEditorInterface;
class QDESIGNER_SDK_EXPORT QDesignerNewFormWidgetInterface : public QWidget
{
Q_DISABLE_COPY(QDesignerNewFormWidgetInterface)
Q_OBJECT
public:
explicit QDesignerNewFormWidgetInterface(QWidget *parent = 0);
virtual ~QDesignerNewFormWidgetInterface();
virtual bool hasCurrentTemplate() const = 0;
virtual QString currentTemplate(QString *errorMessage = 0) = 0;
static QDesignerNewFormWidgetInterface *createNewFormWidget(QDesignerFormEditorInterface *core, QWidget *parent = 0);
Q_SIGNALS:
void templateActivated();
void currentTemplateChanged(bool templateSelected);
};
QT_END_NAMESPACE
QT_END_HEADER
#endif // ABSTRACTNEWFORMWIDGET_H
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing
**
** 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 The Qt Company. For licensing terms and
** conditions see http://www.qt.io/terms-conditions. For further information
** use the contact form at http://www.qt.io/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 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists for the convenience
// of Qt Designer. This header
// file may change from version to version without notice, or even be removed.
//
// We mean it.
//
#ifndef ABSTRACTOPTIONSPAGE_P_H
#define ABSTRACTOPTIONSPAGE_P_H
#include <sdk_global.h>
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
class QString;
class QWidget;
class QDESIGNER_SDK_EXPORT QDesignerOptionsPageInterface
{
public:
virtual ~QDesignerOptionsPageInterface() {}
virtual QString name() const = 0;
virtual QWidget *createPage(QWidget *parent) = 0;
virtual void apply() = 0;
virtual void finish() = 0;
};
QT_END_NAMESPACE
QT_END_HEADER
#endif // ABSTRACTOPTIONSPAGE_P_H
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing
**
** 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 The Qt Company. For licensing terms and
** conditions see http://www.qt.io/terms-conditions. For further information
** use the contact form at http://www.qt.io/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 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists for the convenience
// of Qt Designer. This header
// file may change from version to version without notice, or even be removed.
//
// We mean it.
//
#ifndef ABSTRACTSETTINGS_P_H
#define ABSTRACTSETTINGS_P_H
#include <sdk_global.h>
#include <QVariant>
QT_BEGIN_NAMESPACE
class QString;
/*!
To be implemented by IDEs that want to control the way designer retrieves/stores its settings.
*/
class QDESIGNER_SDK_EXPORT QDesignerSettingsInterface
{
public:
virtual ~QDesignerSettingsInterface() {}
virtual void beginGroup(const QString &prefix) = 0;
virtual void endGroup() = 0;
virtual bool contains(const QString &key) const = 0;
virtual void setValue(const QString &key, const QVariant &value) = 0;
virtual QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const = 0;
virtual void remove(const QString &key) = 0;
};
QT_END_NAMESPACE
#endif // ABSTRACTSETTINGS_P_H
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing
**
** 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 The Qt Company. For licensing terms and
** conditions see http://www.qt.io/terms-conditions. For further information
** use the contact form at http://www.qt.io/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 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists for the convenience
// of Qt Designer. This header
// file may change from version to version without notice, or even be removed.
//
// We mean it.
//
#ifndef FORMWINDOWBASE_H
#define FORMWINDOWBASE_H
#include "shared_global_p.h"
#include <QDesignerFormWindowInterface>
#include <QVariantMap>
#include <QList>
QT_BEGIN_NAMESPACE
class QDesignerDnDItemInterface;
class QMenu;
class QtResourceSet;
class QDesignerPropertySheet;
namespace qdesigner_internal {
class QEditorFormBuilder;
class DeviceProfile;
class Grid;
class DesignerPixmapCache;
class DesignerIconCache;
class FormWindowBasePrivate;
class QDESIGNER_SHARED_EXPORT FormWindowBase: public QDesignerFormWindowInterface
{
Q_OBJECT
public:
enum HighlightMode { Restore, Highlight };
enum SaveResourcesBehaviour { SaveAll, SaveOnlyUsedQrcFiles, DontSaveQrcFiles };
explicit FormWindowBase(QDesignerFormEditorInterface *core, QWidget *parent = 0, Qt::WindowFlags flags = 0);
virtual ~FormWindowBase();
QVariantMap formData();
void setFormData(const QVariantMap &vm);
// Return contents without warnings. Should be 'contents(bool quiet)'
QString fileContents() const;
// Return the widget containing the form. This is used to
// apply embedded design settings to that are inherited (for example font).
// These are meant to be applied to the form only and not to the other editors
// in the widget stack.
virtual QWidget *formContainer() const = 0;
// Deprecated
virtual QPoint grid() const;
// Deprecated
virtual void setGrid(const QPoint &grid);
virtual bool hasFeature(Feature f) const;
virtual Feature features() const;
virtual void setFeatures(Feature f);
const Grid &designerGrid() const;
void setDesignerGrid(const Grid& grid);
bool hasFormGrid() const;
void setHasFormGrid(bool b);
bool gridVisible() const;
SaveResourcesBehaviour saveResourcesBehaviour() const;
void setSaveResourcesBehaviour(SaveResourcesBehaviour behaviour);
static const Grid &defaultDesignerGrid();
static void setDefaultDesignerGrid(const Grid& grid);
// Overwrite to initialize and return a full popup menu for a managed widget
virtual QMenu *initializePopupMenu(QWidget *managedWidget);
// Helper to create a basic popup menu from task menu extensions (internal/public)
static QMenu *createExtensionTaskMenu(QDesignerFormWindowInterface *fw, QObject *o, bool trailingSeparator = true);
virtual bool dropWidgets(const QList<QDesignerDnDItemInterface*> &item_list, QWidget *target,
const QPoint &global_mouse_pos) = 0;
// Helper to find the widget at the mouse position with some flags.
enum WidgetUnderMouseMode { FindSingleSelectionDropTarget, FindMultiSelectionDropTarget };
QWidget *widgetUnderMouse(const QPoint &formPos, WidgetUnderMouseMode m);
virtual QWidget *widgetAt(const QPoint &pos) = 0;
virtual QWidget *findContainer(QWidget *w, bool excludeLayout) const = 0;
void deleteWidgetList(const QWidgetList &widget_list);
virtual void highlightWidget(QWidget *w, const QPoint &pos, HighlightMode mode = Highlight) = 0;
enum PasteMode { PasteAll, PasteActionsOnly };
virtual void paste(PasteMode pasteMode) = 0;
// Factory method to create a form builder
virtual QEditorFormBuilder *createFormBuilder() = 0;
virtual bool blockSelectionChanged(bool blocked) = 0;
virtual void emitSelectionChanged() = 0;
DesignerPixmapCache *pixmapCache() const;
DesignerIconCache *iconCache() const;
QtResourceSet *resourceSet() const;
void setResourceSet(QtResourceSet *resourceSet);
void addReloadableProperty(QDesignerPropertySheet *sheet, int index);
void removeReloadableProperty(QDesignerPropertySheet *sheet, int index);
void addReloadablePropertySheet(QDesignerPropertySheet *sheet, QObject *object);
void removeReloadablePropertySheet(QDesignerPropertySheet *sheet);
void reloadProperties();
void emitWidgetRemoved(QWidget *w);
void emitObjectRemoved(QObject *o);
DeviceProfile deviceProfile() const;
QString styleName() const;
QString deviceProfileName() const;
enum LineTerminatorMode {
LFLineTerminator,
CRLFLineTerminator,
NativeLineTerminator =
#if defined (Q_OS_WIN)
CRLFLineTerminator
#else
LFLineTerminator
#endif
};
void setLineTerminatorMode(LineTerminatorMode mode);
LineTerminatorMode lineTerminatorMode() const;
// Connect the 'activated' (doubleclicked) signal of the form window to a
// slot triggering the default action (of the task menu)
static void setupDefaultAction(QDesignerFormWindowInterface *fw);
public slots:
void resourceSetActivated(QtResourceSet *resourceSet, bool resourceSetChanged);
private slots:
void triggerDefaultAction(QWidget *w);
private:
void syncGridFeature();
FormWindowBasePrivate *m_d;
};
} // namespace qdesigner_internal
QT_END_NAMESPACE
#endif // FORMWINDOWBASE_H
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing
**
** 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 The Qt Company. For licensing terms and
** conditions see http://www.qt.io/terms-conditions. For further information
** use the contact form at http://www.qt.io/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 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists for the convenience
// of Qt Designer. This header
// file may change from version to version without notice, or even be removed.
//
// We mean it.
//
#ifndef ICONLOADER_H
#define ICONLOADER_H
#include "shared_global_p.h"
QT_BEGIN_NAMESPACE
class QString;
class QIcon;
namespace qdesigner_internal {
QDESIGNER_SHARED_EXPORT QIcon createIconSet(const QString &name);
QDESIGNER_SHARED_EXPORT QIcon emptyIcon();
} // namespace qdesigner_internal
QT_END_NAMESPACE
#endif // ICONLOADER_H
/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing
**
** 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 The Qt Company. For licensing terms and
** conditions see http://www.qt.io/terms-conditions. For further information
** use the contact form at http://www.qt.io/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 or version 3 as published by the Free
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
** following information to ensure the GNU Lesser General Public License
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, The Qt Company gives you certain additional
** rights. These rights are described in The Qt Company LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
****************************************************************************/
//
// W A R N I N G
// -------------
//
// This file is not part of the Qt API. It exists for the convenience
// of Qt Designer. This header
// file may change from version to version without notice, or even be removed.
//
// We mean it.
//
#ifndef PLUGINMANAGER_H
#define PLUGINMANAGER_H
#include "shared_global_p.h"
#include "shared_enums_p.h"
#include <QSharedDataPointer>
#include <QMap>
#include <QPair>
#include <QStringList>
QT_BEGIN_NAMESPACE
class QDesignerFormEditorInterface;
class QDesignerCustomWidgetInterface;
class QDesignerPluginManagerPrivate;
class QDesignerCustomWidgetSharedData;
/* Information contained in the Dom XML of a custom widget. */
class QDESIGNER_SHARED_EXPORT QDesignerCustomWidgetData {
public:
// StringPropertyType: validation mode and translatable flag.
typedef QPair<qdesigner_internal::TextPropertyValidationMode, bool> StringPropertyType;
explicit QDesignerCustomWidgetData(const QString &pluginPath = QString());
enum ParseResult { ParseOk, ParseWarning, ParseError };
ParseResult parseXml(const QString &xml, const QString &name, QString *errorMessage);
QDesignerCustomWidgetData(const QDesignerCustomWidgetData&);
QDesignerCustomWidgetData& operator=(const QDesignerCustomWidgetData&);
~QDesignerCustomWidgetData();
bool isNull() const;
QString pluginPath() const;
// Data as parsed from the widget's domXML().
QString xmlClassName() const;
// Optional. The language the plugin is supposed to be used with.
QString xmlLanguage() const;
// Optional. method used to add pages to a container with a container extension
QString xmlAddPageMethod() const;
// Optional. Base class
QString xmlExtends() const;
// Optional. The name to be used in the widget box.
QString xmlDisplayName() const;
// Type of a string property
bool xmlStringPropertyType(const QString &name, StringPropertyType *type) const;
private:
QSharedDataPointer<QDesignerCustomWidgetSharedData> m_d;
};
class QDESIGNER_SHARED_EXPORT QDesignerPluginManager: public QObject
{
Q_OBJECT
public:
typedef QList<QDesignerCustomWidgetInterface*> CustomWidgetList;
explicit QDesignerPluginManager(QDesignerFormEditorInterface *core);
virtual ~QDesignerPluginManager();
QDesignerFormEditorInterface *core() const;
QObject *instance(const QString &plugin) const;
QStringList registeredPlugins() const;
QStringList findPlugins(const QString &path);
QStringList pluginPaths() const;
void setPluginPaths(const QStringList &plugin_paths);
QStringList disabledPlugins() const;
void setDisabledPlugins(const QStringList &disabled_plugins);
QStringList failedPlugins() const;
QString failureReason(const QString &pluginName) const;
QObjectList instances() const;
CustomWidgetList registeredCustomWidgets() const;
QDesignerCustomWidgetData customWidgetData(QDesignerCustomWidgetInterface *w) const;
QDesignerCustomWidgetData customWidgetData(const QString &className) const;
bool registerNewPlugins();
public slots:
bool syncSettings();
void ensureInitialized();
private:
void updateRegisteredPlugins();
void registerPath(const QString &path);
void registerPlugin(const QString &plugin);
private:
static QStringList defaultPluginPaths();
QDesignerPluginManagerPrivate *m_d;