Fixes: Ship Qt Designer private Headers

Task: 205821
Details: Added script to copy them over, swapping license headers, added directory qt_private.
This commit is contained in:
Friedemann Kleint
2009-01-27 11:19:41 +01:00
parent 1143636775
commit 6cf47088fa
18 changed files with 1155 additions and 10 deletions

View File

@@ -5,6 +5,7 @@ Including cpp.pri in designer.pro enables them and defines
CPP_ENABLED. CPP_ENABLED.
Resource handling: Resource handling:
------------------
When the editor is opened for the ui file we remember the internal qrc list When the editor is opened for the ui file we remember the internal qrc list
read from the ui file (m_originalUiQrcPaths). In next step (a call to read from the ui file (m_originalUiQrcPaths). In next step (a call to
@@ -35,3 +36,11 @@ designer's internal file watcher updates the changes to qrc files silently.
A call to setResourceEditingEnabled(false) removes the edit resources action A call to setResourceEditingEnabled(false) removes the edit resources action
form resource browser in designer 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.

View File

@@ -48,11 +48,11 @@
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <QtDesigner/QDesignerFormEditorPluginInterface> #include <QtDesigner/QDesignerFormEditorPluginInterface>
#include <QtDesigner/private/pluginmanager_p.h> #include <qt_private/pluginmanager_p.h>
#include <QtDesigner/private/iconloader_p.h> // createIconSet #include <qt_private/iconloader_p.h> // createIconSet
#include <QtDesigner/private/qdesigner_formwindowmanager_p.h> #include <qt_private/qdesigner_formwindowmanager_p.h>
#include <QtDesigner/private/formwindowbase_p.h> #include <qt_private/formwindowbase_p.h>
#include <QtDesigner/QDesignerFormEditorInterface> #include <QtDesigner/QDesignerFormEditorInterface>
#include <QtDesigner/QDesignerComponents> #include <QtDesigner/QDesignerComponents>

View File

@@ -34,7 +34,7 @@
#include "formtemplatewizardpage.h" #include "formtemplatewizardpage.h"
#include "formeditorw.h" #include "formeditorw.h"
#include <QtDesigner/private/abstractnewformwidget_p.h> #include <qt_private/abstractnewformwidget_p.h>
#include <QtCore/QDebug> #include <QtCore/QDebug>
#include <QtCore/QXmlStreamReader> #include <QtCore/QXmlStreamReader>

View File

@@ -45,8 +45,8 @@
#include <QtDesigner/QDesignerFormWindowInterface> #include <QtDesigner/QDesignerFormWindowInterface>
#include <QtDesigner/QDesignerFormEditorInterface> #include <QtDesigner/QDesignerFormEditorInterface>
#include <QtDesigner/QDesignerFormWindowManagerInterface> #include <QtDesigner/QDesignerFormWindowManagerInterface>
#include <QtDesigner/private/formwindowbase_p.h> #include <qt_private/formwindowbase_p.h>
#include <QtDesigner/private/qtresourcemodel_p.h> #include <qt_private/qtresourcemodel_p.h>
#include <QtCore/QFile> #include <QtCore/QFile>
#include <QtCore/QDir> #include <QtCore/QDir>

View File

@@ -0,0 +1,80 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.3, included in the file GPL_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 <QtDesigner/sdk_global.h>
#include <QtGui/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

View File

@@ -0,0 +1,71 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.3, included in the file GPL_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 <QtDesigner/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

View File

@@ -0,0 +1,79 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.3, included in the file GPL_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 <QtDesigner/sdk_global.h>
#include <QVariant>
QT_BEGIN_HEADER
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
QT_END_HEADER
#endif // ABSTRACTSETTINGS_P_H

View File

@@ -0,0 +1,194 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.3, included in the file GPL_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 <QtDesigner/QDesignerFormWindowInterface>
#include <QtCore/QVariantMap>
#include <QtCore/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 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

View File

@@ -0,0 +1,64 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.3, included in the file GPL_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

View File

@@ -0,0 +1,143 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.3, included in the file GPL_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 <QtCore/QSharedDataPointer>
#include <QtCore/QMap>
#include <QtCore/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:
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;
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;
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;
};
QT_END_NAMESPACE
#endif // PLUGINMANAGER_H

View File

@@ -0,0 +1,90 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.3, included in the file GPL_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 QDESIGNER_FORMWINDOMANAGER_H
#define QDESIGNER_FORMWINDOMANAGER_H
#include "shared_global_p.h"
#include <QtDesigner/QDesignerFormWindowManagerInterface>
QT_BEGIN_NAMESPACE
namespace qdesigner_internal {
class PreviewManager;
//
// Convenience methods to manage form previews (ultimately forwarded to PreviewManager).
//
class QDESIGNER_SHARED_EXPORT QDesignerFormWindowManager
: public QDesignerFormWindowManagerInterface
{
Q_OBJECT
public:
explicit QDesignerFormWindowManager(QObject *parent = 0);
virtual ~QDesignerFormWindowManager();
virtual QAction *actionDefaultPreview() const;
virtual QActionGroup *actionGroupPreviewInStyle() const;
virtual QAction *actionShowFormWindowSettingsDialog() const;
virtual QPixmap createPreviewPixmap(QString *errorMessage) = 0;
virtual PreviewManager *previewManager() const = 0;
Q_SIGNALS:
void formWindowSettingsChanged(QDesignerFormWindowInterface *fw);
public Q_SLOTS:
virtual void closeAllPreviews() = 0;
private:
void *m_unused;
};
} // namespace qdesigner_internal
QT_END_NAMESPACE
#endif // QDESIGNER_FORMWINDOMANAGER_H

View File

@@ -0,0 +1,142 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.3, included in the file GPL_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 QDESIGNER_INTEGRATION_H
#define QDESIGNER_INTEGRATION_H
#include "shared_global_p.h"
#include <QtDesigner/QDesignerIntegrationInterface>
#include <QtCore/QObject>
QT_BEGIN_NAMESPACE
class QDesignerFormEditorInterface;
class QDesignerFormWindowInterface;
class QDesignerResourceBrowserInterface;
class QVariant;
class QWidget;
namespace qdesigner_internal {
struct Selection;
class QDesignerIntegrationPrivate;
class QDESIGNER_SHARED_EXPORT QDesignerIntegration: public QDesignerIntegrationInterface
{
Q_OBJECT
public:
explicit QDesignerIntegration(QDesignerFormEditorInterface *core, QObject *parent = 0);
virtual ~QDesignerIntegration();
static void requestHelp(const QDesignerFormEditorInterface *core, const QString &manual, const QString &document);
virtual QWidget *containerWindow(QWidget *widget) const;
// Load plugins into widget database and factory.
static void initializePlugins(QDesignerFormEditorInterface *formEditor);
void emitObjectNameChanged(QDesignerFormWindowInterface *formWindow, QObject *object,
const QString &newName, const QString &oldName);
void emitNavigateToSlot(const QString &objectName, const QString &signalSignature, const QStringList &parameterNames);
void emitNavigateToSlot(const QString &slotSignature);
// Create a resource browser specific to integration. Language integration takes precedence
virtual QDesignerResourceBrowserInterface *createResourceBrowser(QWidget *parent = 0);
enum ResourceFileWatcherBehaviour {
NoWatcher,
ReloadSilently,
PromptAndReload
};
ResourceFileWatcherBehaviour resourceFileWatcherBehaviour() const;
bool isResourceEditingEnabled() const;
bool isSlotNavigationEnabled() const;
protected:
void setResourceFileWatcherBehaviour(ResourceFileWatcherBehaviour behaviour); // PromptAndReload by default
void setResourceEditingEnabled(bool enable); // true by default
void setSlotNavigationEnabled(bool enable); // false by default
signals:
void propertyChanged(QDesignerFormWindowInterface *formWindow, const QString &name, const QVariant &value);
void objectNameChanged(QDesignerFormWindowInterface *formWindow, QObject *object, const QString &newName, const QString &oldName);
void helpRequested(const QString &manual, const QString &document);
void navigateToSlot(const QString &objectName, const QString &signalSignature, const QStringList &parameterNames);
void navigateToSlot(const QString &slotSignature);
public slots:
virtual void updateProperty(const QString &name, const QVariant &value, bool enableSubPropertyHandling);
// Additional signals of designer property editor
virtual void resetProperty(const QString &name);
virtual void addDynamicProperty(const QString &name, const QVariant &value);
virtual void removeDynamicProperty(const QString &name);
virtual void updateActiveFormWindow(QDesignerFormWindowInterface *formWindow);
virtual void setupFormWindow(QDesignerFormWindowInterface *formWindow);
virtual void updateSelection();
virtual void updateGeometry();
virtual void activateWidget(QWidget *widget);
void updateCustomWidgetPlugins();
private slots:
void updatePropertyPrivate(const QString &name, const QVariant &value);
private:
void initialize();
void getSelection(Selection &s);
QObject *propertyEditorObject();
QDesignerIntegrationPrivate *m_d;
};
} // namespace qdesigner_internal
QT_END_NAMESPACE
#endif // QDESIGNER_INTEGRATION_H

View File

@@ -0,0 +1,136 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.3, included in the file GPL_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 QTRESOURCEMODEL_H
#define QTRESOURCEMODEL_H
#include "shared_global_p.h"
#include <QtCore/QMap>
#include <QtCore/QObject>
QT_BEGIN_NAMESPACE
class QtResourceModel;
class QDESIGNER_SHARED_EXPORT QtResourceSet // one instance per one form
{
public:
QStringList activeQrcPaths() const;
// activateQrcPaths(): if this QtResourceSet is active it emits resourceSetActivated();
// otherwise only in case if active QtResource set contains one of
// paths which was marked as modified by this resource set, the signal
// is emitted (with reload = true);
// If new path appears on the list it is automatically added to
// loaded list of QtResourceModel. In addition it is marked as modified in case
// QtResourceModel didn't contain the path.
// If some path is removed from that list (and is not used in any other
// resource set) it is automatically unloaded. The removed file can also be
// marked as modified (later when another resource set which contains
// removed path is activated will be reloaded)
void activateQrcPaths(const QStringList &paths, int *errorCount = 0, QString *errorMessages = 0);
bool isModified(const QString &path) const; // for all paths in resource model (redundant here, maybe it should be removed from here)
void setModified(const QString &path); // for all paths in resource model (redundant here, maybe it should be removed from here)
private:
QtResourceSet();
QtResourceSet(QtResourceModel *model);
~QtResourceSet();
friend class QtResourceModel;
class QtResourceSetPrivate *d_ptr;
Q_DECLARE_PRIVATE(QtResourceSet)
Q_DISABLE_COPY(QtResourceSet)
};
class QDESIGNER_SHARED_EXPORT QtResourceModel : public QObject // one instance per whole designer
{
Q_OBJECT
public:
QtResourceModel(QObject *parent = 0);
~QtResourceModel();
QStringList loadedQrcFiles() const;
bool isModified(const QString &path) const; // only for paths which are on loadedQrcFiles() list
void setModified(const QString &path); // only for paths which are on loadedQrcPaths() list
QList<QtResourceSet *> resourceSets() const;
QtResourceSet *currentResourceSet() const;
void setCurrentResourceSet(QtResourceSet *resourceSet, int *errorCount = 0, QString *errorMessages = 0);
QtResourceSet *addResourceSet(const QStringList &paths);
void removeResourceSet(QtResourceSet *resourceSet);
void reload(const QString &path, int *errorCount = 0, QString *errorMessages = 0);
void reload(int *errorCount = 0, QString *errorMessages = 0);
// Contents of the current resource set (content file to qrc path)
QMap<QString, QString> contents() const;
// Find the qrc file belonging to the contained file (from current resource set)
QString qrcPath(const QString &file) const;
void setWatcherEnabled(bool enable);
bool isWatcherEnabled() const;
void setWatcherEnabled(const QString &path, bool enable);
bool isWatcherEnabled(const QString &path);
signals:
void resourceSetActivated(QtResourceSet *resourceSet, bool resourceSetChanged); // resourceSetChanged since last time it was activated!
void qrcFileModifiedExternally(const QString &path);
private:
friend class QtResourceSet;
class QtResourceModelPrivate *d_ptr;
Q_DECLARE_PRIVATE(QtResourceModel)
Q_DISABLE_COPY(QtResourceModel)
Q_PRIVATE_SLOT(d_func(), void slotFileChanged(const QString &))
};
QT_END_NAMESPACE
#endif

View File

@@ -0,0 +1,68 @@
/***************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
**
** Contact: Qt Software Information (qt-info@nokia.com)
**
**
** Non-Open Source Usage
**
** Licensees may use this file in accordance with the Qt Beta Version
** License Agreement, Agreement version 2.2 provided with the Software or,
** alternatively, in accordance with the terms contained in a written
** agreement between you and Nokia.
**
** GNU General Public License Usage
**
** Alternatively, this file may be used under the terms of the GNU General
** Public License versions 2.0 or 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the packaging
** of this file. Please review the following information to ensure GNU
** General Public Licensing requirements will be met:
**
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt GPL Exception
** version 1.3, included in the file GPL_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 SHARED_GLOBAL_H
#define SHARED_GLOBAL_H
#include <QtCore/qglobal.h>
#ifdef QT_DESIGNER_STATIC
#define QDESIGNER_SHARED_EXTERN
#define QDESIGNER_SHARED_IMPORT
#else
#define QDESIGNER_SHARED_EXTERN Q_DECL_EXPORT
#define QDESIGNER_SHARED_IMPORT Q_DECL_IMPORT
#endif
#ifndef QT_NO_SHARED_EXPORT
# ifdef QDESIGNER_SHARED_LIBRARY
# define QDESIGNER_SHARED_EXPORT QDESIGNER_SHARED_EXTERN
# else
# define QDESIGNER_SHARED_EXPORT QDESIGNER_SHARED_IMPORT
# endif
#else
# define QDESIGNER_SHARED_EXPORT
#endif
#endif // SHARED_GLOBAL_H

View File

@@ -34,7 +34,7 @@
#ifndef SETTINGSMANAGER_H #ifndef SETTINGSMANAGER_H
#define SETTINGSMANAGER_H #define SETTINGSMANAGER_H
#include <QtDesigner/private/abstractsettings_p.h> #include <qt_private/abstractsettings_p.h>
#include <QtCore/QSettings> #include <QtCore/QSettings>
namespace Designer { namespace Designer {

View File

@@ -34,7 +34,7 @@
#include "settingspage.h" #include "settingspage.h"
#include <extensionsystem/pluginmanager.h> #include <extensionsystem/pluginmanager.h>
#include <QtDesigner/private/abstractoptionspage_p.h> #include <qt_private/abstractoptionspage_p.h>
using namespace Designer::Internal; using namespace Designer::Internal;

View File

@@ -0,0 +1,69 @@
#!/bin/sh
# **************************************************************************
#
# This file is part of Qt Creator
#
# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
#
# Contact: Qt Software Information (qt-info@nokia.com)
#
#
# Non-Open Source Usage
#
# Licensees may use this file in accordance with the Qt Beta Version
# License Agreement, Agreement version 2.2 provided with the Software or,
# alternatively, in accordance with the terms contained in a written
# agreement between you and Nokia.
#
# GNU General Public License Usage
#
# Alternatively, this file may be used under the terms of the GNU General
# Public License versions 2.0 or 3.0 as published by the Free Software
# Foundation and appearing in the file LICENSE.GPL included in the packaging
# of this file. Please review the following information to ensure GNU
# General Public Licensing requirements will be met:
#
# http://www.fsf.org/licensing/licenses/info/GPLv2.html and
# http://www.gnu.org/copyleft/gpl.html.
#
# In addition, as a special exception, Nokia gives you certain additional
# rights. These rights are described in the Nokia Qt GPL Exception
# version 1.3, included in the file GPL_EXCEPTION.txt in this package.
#
# ***************************************************************************/
# Internal utility script that synchronizes the Qt Designer private headers
# used by the Qt Designer plugin (located in the qt_private) directory
# with the Qt source tree pointed to by the environment variable QTDIR.
REQUIRED_HEADERS="pluginmanager_p.h iconloader_p.h qdesigner_formwindowmanager_p.h formwindowbase_p.h
abstractnewformwidget_p.h qtresourcemodel_p.h abstractoptionspage_p.h
shared_global_p.h abstractsettings_p.h qdesigner_integration_p.h"
echo Using $QTDIR
syncHeader()
{
HDR=$1
# Locate the Designer header: look in lib/shared or SDK
QTHDR=$QTDIR/tools/designer/src/lib/shared/$HDR
if [ ! -f $QTHDR ]
then
QTHDR=$QTDIR/tools/designer/src/lib/sdk/$HDR
fi
echo Syncing $QTHDR
[ -f $QTHDR ] || { echo "$HDR does not exist" ; exit 1 ; }
TARGET=qt_private/$HDR
# Exchange license header
head -n 32 formwindowfile.h > $TARGET || exit 1
tail -n +11 $QTHDR >> $TARGET || exit 1
}
for H in $REQUIRED_HEADERS
do
syncHeader $H
done

View File

@@ -36,7 +36,7 @@
#include <cpptools/cppmodelmanagerinterface.h> #include <cpptools/cppmodelmanagerinterface.h>
#include <QtDesigner/private/qdesigner_integration_p.h> #include <qt_private/qdesigner_integration_p.h>
namespace Designer { namespace Designer {
namespace Internal { namespace Internal {