mirror of
https://github.com/fralx/LimeReport.git
synced 2025-09-23 08:29:07 +03:00
QtDesigner integration has been added
QtDesigner intergration has been added
This commit is contained in:
109
limereport/dialogdesigner/3rdparty/designer/pluginmanager_p.h
vendored
Normal file
109
limereport/dialogdesigner/3rdparty/designer/pluginmanager_p.h
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** This file is part of the Qt Designer of the Qt Toolkit.
|
||||
**
|
||||
** Commercial Usage
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement 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.
|
||||
**
|
||||
** Qt for Windows(R) Licensees
|
||||
** As a special exception, Nokia, as the sole copyright holder for Qt
|
||||
** Designer, grants users of the Qt/Eclipse Integration plug-in the
|
||||
** right for the Qt/Eclipse Integration to link to functionality
|
||||
** provided by Qt Designer and its related libraries.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
//
|
||||
// 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/QMap>
|
||||
#include <QtCore/QStringList>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
class QDesignerFormEditorInterface;
|
||||
class QDesignerCustomWidgetInterface;
|
||||
class QDesignerPluginManagerPrivate;
|
||||
|
||||
class QDESIGNER_SHARED_EXPORT QDesignerPluginManager: public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
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;
|
||||
|
||||
QList<QObject*> instances() const;
|
||||
QList<QDesignerCustomWidgetInterface*> registeredCustomWidgets() 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
|
126
limereport/dialogdesigner/3rdparty/designer/qdesigner_integration_p.h
vendored
Normal file
126
limereport/dialogdesigner/3rdparty/designer/qdesigner_integration_p.h
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** This file is part of the Qt Designer of the Qt Toolkit.
|
||||
**
|
||||
** Commercial Usage
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement 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.
|
||||
**
|
||||
** Qt for Windows(R) Licensees
|
||||
** As a special exception, Nokia, as the sole copyright holder for Qt
|
||||
** Designer, grants users of the Qt/Eclipse Integration plug-in the
|
||||
** right for the Qt/Eclipse Integration to link to functionality
|
||||
** provided by Qt Designer and its related libraries.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
//
|
||||
// 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);
|
||||
|
||||
// Create a resource browser specific to integration. Language integration takes precedence
|
||||
virtual QDesignerResourceBrowserInterface *createResourceBrowser(QWidget *parent = 0);
|
||||
|
||||
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);
|
||||
|
||||
public slots:
|
||||
virtual void updateProperty(const QString &name, const QVariant &value, bool enableSubPropertyHandling);
|
||||
// Additional signals of designer property editor
|
||||
virtual void updatePropertyComment(const QString &name, const QString &value);
|
||||
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
|
72
limereport/dialogdesigner/3rdparty/designer/shared_global_p.h
vendored
Normal file
72
limereport/dialogdesigner/3rdparty/designer/shared_global_p.h
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** This file is part of the Qt Designer of the Qt Toolkit.
|
||||
**
|
||||
** Commercial Usage
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement 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.
|
||||
**
|
||||
** Qt for Windows(R) Licensees
|
||||
** As a special exception, Nokia, as the sole copyright holder for Qt
|
||||
** Designer, grants users of the Qt/Eclipse Integration plug-in the
|
||||
** right for the Qt/Eclipse Integration to link to functionality
|
||||
** provided by Qt Designer and its related libraries.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
//
|
||||
// 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
|
10
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/README.txt
vendored
Normal file
10
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/README.txt
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
This is a new Designer integration, started on 28.02.2008.
|
||||
|
||||
The reason for it is the introduction of layout caching
|
||||
in Qt 4.4, which unearthed a lot of mainwindow-size related
|
||||
bugs in Designer and all integrations.
|
||||
|
||||
The goal of it is to have a closed layout chain from
|
||||
integration top level to form window.
|
||||
|
||||
Friedemann
|
11
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/designerintegration.pri
vendored
Normal file
11
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/designerintegration.pri
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
INCLUDEPATH *= $$PWD $$PWD/..
|
||||
|
||||
SOURCES += $$PWD/widgethost.cpp \
|
||||
$$PWD/sizehandlerect.cpp \
|
||||
$$PWD/formresizer.cpp
|
||||
|
||||
HEADERS += $$PWD/widgethost.h \
|
||||
$$PWD/sizehandlerect.h \
|
||||
$$PWD/formresizer.h \
|
||||
$$PWD/widgethostconstants.h \
|
||||
$$PWD/../namespace_global.h
|
198
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/formresizer.cpp
vendored
Normal file
198
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/formresizer.cpp
vendored
Normal file
@@ -0,0 +1,198 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#include "formresizer.h"
|
||||
#include "sizehandlerect.h"
|
||||
#include "widgethostconstants.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
#include <QDesignerFormWindowInterface>
|
||||
|
||||
#include <QResizeEvent>
|
||||
#include <QPalette>
|
||||
#include <QLayout>
|
||||
#include <QFrame>
|
||||
#include <QResizeEvent>
|
||||
|
||||
enum { debugFormResizer = 0 };
|
||||
|
||||
using namespace SharedTools::Internal;
|
||||
|
||||
FormResizer::FormResizer(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
m_frame(new QFrame),
|
||||
m_formWindow(0)
|
||||
{
|
||||
// Make the resize grip of a mainwindow form find us as resizable window.
|
||||
setWindowFlags(windowFlags() | Qt::SubWindow);
|
||||
setBackgroundRole(QPalette::Base);
|
||||
|
||||
QVBoxLayout *handleLayout = new QVBoxLayout(this);
|
||||
handleLayout->setMargin(SELECTION_MARGIN);
|
||||
handleLayout->addWidget(m_frame);
|
||||
|
||||
m_frame->setFrameStyle(QFrame::Panel | QFrame::Raised);
|
||||
QVBoxLayout *layout = new QVBoxLayout(m_frame);
|
||||
layout->setMargin(0);
|
||||
// handles
|
||||
m_handles.reserve(SizeHandleRect::Left);
|
||||
for (int i = SizeHandleRect::LeftTop; i <= SizeHandleRect::Left; ++i) {
|
||||
SizeHandleRect *shr = new SizeHandleRect(this, static_cast<SizeHandleRect::Direction>(i), this);
|
||||
connect(shr, SIGNAL(mouseButtonReleased(QRect,QRect)), this, SIGNAL(formWindowSizeChanged(QRect,QRect)));
|
||||
m_handles.push_back(shr);
|
||||
}
|
||||
setState(SelectionHandleActive);
|
||||
updateGeometry();
|
||||
}
|
||||
|
||||
void FormResizer::updateGeometry()
|
||||
{
|
||||
const QRect &geom = m_frame->geometry();
|
||||
|
||||
if (debugFormResizer)
|
||||
qDebug() << "FormResizer::updateGeometry() " << size() << " frame " << geom;
|
||||
|
||||
const int w = SELECTION_HANDLE_SIZE;
|
||||
const int h = SELECTION_HANDLE_SIZE;
|
||||
|
||||
const Handles::iterator hend = m_handles.end();
|
||||
for (Handles::iterator it = m_handles.begin(); it != hend; ++it) {
|
||||
SizeHandleRect *hndl = *it;;
|
||||
switch (hndl->dir()) {
|
||||
case SizeHandleRect::LeftTop:
|
||||
hndl->move(geom.x() - w / 2, geom.y() - h / 2);
|
||||
break;
|
||||
case SizeHandleRect::Top:
|
||||
hndl->move(geom.x() + geom.width() / 2 - w / 2, geom.y() - h / 2);
|
||||
break;
|
||||
case SizeHandleRect::RightTop:
|
||||
hndl->move(geom.x() + geom.width() - w / 2, geom.y() - h / 2);
|
||||
break;
|
||||
case SizeHandleRect::Right:
|
||||
hndl->move(geom.x() + geom.width() - w / 2, geom.y() + geom.height() / 2 - h / 2);
|
||||
break;
|
||||
case SizeHandleRect::RightBottom:
|
||||
hndl->move(geom.x() + geom.width() - w / 2, geom.y() + geom.height() - h / 2);
|
||||
break;
|
||||
case SizeHandleRect::Bottom:
|
||||
hndl->move(geom.x() + geom.width() / 2 - w / 2, geom.y() + geom.height() - h / 2);
|
||||
break;
|
||||
case SizeHandleRect::LeftBottom:
|
||||
hndl->move(geom.x() - w / 2, geom.y() + geom.height() - h / 2);
|
||||
break;
|
||||
case SizeHandleRect::Left:
|
||||
hndl->move(geom.x() - w / 2, geom.y() + geom.height() / 2 - h / 2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FormResizer::update()
|
||||
{
|
||||
const Handles::iterator hend = m_handles.end();
|
||||
for (Handles::iterator it = m_handles.begin(); it != hend; ++it) {
|
||||
(*it)->update();
|
||||
}
|
||||
}
|
||||
|
||||
void FormResizer::setState(SelectionHandleState st)
|
||||
{
|
||||
if (debugFormResizer)
|
||||
qDebug() << "FormResizer::setState " << st;
|
||||
|
||||
const Handles::iterator hend = m_handles.end();
|
||||
for (Handles::iterator it = m_handles.begin(); it != hend; ++it)
|
||||
(*it)->setState(st);
|
||||
}
|
||||
|
||||
void FormResizer::setFormWindow(QDesignerFormWindowInterface *fw)
|
||||
{
|
||||
if (debugFormResizer)
|
||||
qDebug() << "FormResizer::setFormWindow " << fw;
|
||||
QVBoxLayout *layout = qobject_cast<QVBoxLayout *>(m_frame->layout());
|
||||
Q_ASSERT(layout);
|
||||
if (layout->count())
|
||||
delete layout->takeAt(0);
|
||||
m_formWindow = fw;
|
||||
|
||||
if (m_formWindow)
|
||||
layout->addWidget(m_formWindow);
|
||||
mainContainerChanged();
|
||||
connect(fw, SIGNAL(mainContainerChanged(QWidget*)), this, SLOT(mainContainerChanged()));
|
||||
}
|
||||
|
||||
void FormResizer::resizeEvent(QResizeEvent *event)
|
||||
{
|
||||
if (debugFormResizer)
|
||||
qDebug() << ">FormResizer::resizeEvent" << event->size();
|
||||
updateGeometry();
|
||||
QWidget::resizeEvent(event);
|
||||
if (debugFormResizer)
|
||||
qDebug() << "<FormResizer::resizeEvent";
|
||||
}
|
||||
|
||||
QSize FormResizer::decorationSize() const
|
||||
{
|
||||
const int lineWidth = m_frame->lineWidth();
|
||||
const QMargins frameMargins = m_frame->contentsMargins();
|
||||
const int margin = 2* SELECTION_MARGIN;
|
||||
QSize size = QSize( margin, margin );
|
||||
size += QSize( qMax( frameMargins.left(), lineWidth ), qMax( frameMargins.top(), lineWidth ) );
|
||||
size += QSize( qMax( frameMargins.right(), lineWidth ), qMax( frameMargins.bottom(), lineWidth ) );
|
||||
return size;
|
||||
}
|
||||
|
||||
QWidget *FormResizer::mainContainer()
|
||||
{
|
||||
if (m_formWindow)
|
||||
return m_formWindow->mainContainer();
|
||||
return 0;
|
||||
}
|
||||
|
||||
void FormResizer::mainContainerChanged()
|
||||
{
|
||||
const QSize maxWidgetSize = QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);
|
||||
if (const QWidget *mc = mainContainer()) {
|
||||
// Set Maximum size which is not handled via a hint (as opposed to minimum size)
|
||||
const QSize maxWidgetSize = QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX);
|
||||
const QSize formMaxSize = mc->maximumSize();
|
||||
QSize newMaxSize = maxWidgetSize;
|
||||
if (formMaxSize != maxWidgetSize)
|
||||
newMaxSize = formMaxSize + decorationSize();
|
||||
if (debugFormResizer)
|
||||
qDebug() << "FormResizer::mainContainerChanged" << mc << " Size " << mc->size()<< newMaxSize;
|
||||
setMaximumSize(newMaxSize);
|
||||
resize(decorationSize() + mc->size());
|
||||
} else {
|
||||
setMaximumSize(maxWidgetSize);
|
||||
}
|
||||
}
|
99
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/formresizer.h
vendored
Normal file
99
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/formresizer.h
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
**************************************************************************/
|
||||
#ifndef FORMRESIZER_H
|
||||
#define FORMRESIZER_H
|
||||
|
||||
#include "namespace_global.h"
|
||||
|
||||
#include "widgethostconstants.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <QVector>
|
||||
|
||||
QT_FORWARD_DECLARE_CLASS(QDesignerFormWindowInterface)
|
||||
QT_FORWARD_DECLARE_CLASS(QFrame)
|
||||
|
||||
namespace SharedTools {
|
||||
namespace Internal {
|
||||
|
||||
class SizeHandleRect;
|
||||
|
||||
/* A window to embed a form window interface as follows:
|
||||
*
|
||||
* Widget
|
||||
* |
|
||||
* +---+----+
|
||||
* | |
|
||||
* | |
|
||||
* Handles QVBoxLayout [margin: SELECTION_MARGIN]
|
||||
* |
|
||||
* Frame [margin: lineWidth]
|
||||
* |
|
||||
* QVBoxLayout
|
||||
* |
|
||||
* QDesignerFormWindowInterface
|
||||
*
|
||||
* Can be embedded into a QScrollArea. */
|
||||
|
||||
class FormResizer : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
FormResizer(QWidget *parent = 0);
|
||||
|
||||
void updateGeometry();
|
||||
void setState(SelectionHandleState st);
|
||||
void update();
|
||||
|
||||
void setFormWindow(QDesignerFormWindowInterface *fw);
|
||||
|
||||
signals:
|
||||
void formWindowSizeChanged(const QRect &oldGeo, const QRect &newGeo);
|
||||
|
||||
protected:
|
||||
virtual void resizeEvent(QResizeEvent *event);
|
||||
|
||||
private slots:
|
||||
void mainContainerChanged();
|
||||
|
||||
private:
|
||||
QSize decorationSize() const;
|
||||
QWidget *mainContainer();
|
||||
|
||||
QFrame *m_frame;
|
||||
typedef QVector<SizeHandleRect*> Handles;
|
||||
Handles m_handles;
|
||||
QDesignerFormWindowInterface * m_formWindow;
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace SharedTools
|
||||
|
||||
#endif // FORMRESIZER_H
|
188
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/sizehandlerect.cpp
vendored
Normal file
188
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/sizehandlerect.cpp
vendored
Normal file
@@ -0,0 +1,188 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
**************************************************************************/
|
||||
#include "sizehandlerect.h"
|
||||
#include "widgethostconstants.h"
|
||||
|
||||
#include <QDesignerFormWindowInterface>
|
||||
|
||||
#include <QMouseEvent>
|
||||
#include <QPainter>
|
||||
#include <QFrame>
|
||||
#include <QDebug>
|
||||
|
||||
enum { debugSizeHandle = 0 };
|
||||
|
||||
using namespace SharedTools::Internal;
|
||||
|
||||
SizeHandleRect::SizeHandleRect(QWidget *parent, Direction d, QWidget *resizable) :
|
||||
QWidget(parent),
|
||||
m_dir(d),
|
||||
m_resizable(resizable),
|
||||
m_state(SelectionHandleOff)
|
||||
{
|
||||
setBackgroundRole(QPalette::Text);
|
||||
setAutoFillBackground(true);
|
||||
|
||||
setFixedSize(SELECTION_HANDLE_SIZE, SELECTION_HANDLE_SIZE);
|
||||
setMouseTracking(false);
|
||||
updateCursor();
|
||||
}
|
||||
|
||||
void SizeHandleRect::updateCursor()
|
||||
{
|
||||
switch (m_dir) {
|
||||
case Right:
|
||||
case RightTop:
|
||||
setCursor(Qt::SizeHorCursor);
|
||||
return;
|
||||
case RightBottom:
|
||||
setCursor(Qt::SizeFDiagCursor);
|
||||
return;
|
||||
case LeftBottom:
|
||||
case Bottom:
|
||||
setCursor(Qt::SizeVerCursor);
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
setCursor(Qt::ArrowCursor);
|
||||
}
|
||||
|
||||
void SizeHandleRect::paintEvent(QPaintEvent *)
|
||||
{
|
||||
switch (m_state) {
|
||||
case SelectionHandleOff:
|
||||
break;
|
||||
case SelectionHandleInactive: {
|
||||
QPainter p(this);
|
||||
p.setPen(Qt::red);
|
||||
p.drawRect(0, 0, width() - 1, height() - 1);
|
||||
}
|
||||
break;
|
||||
case SelectionHandleActive: {
|
||||
QPainter p(this);
|
||||
p.setPen(Qt::blue);
|
||||
p.drawRect(0, 0, width() - 1, height() - 1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SizeHandleRect::mousePressEvent(QMouseEvent *e)
|
||||
{
|
||||
e->accept();
|
||||
|
||||
if (e->button() != Qt::LeftButton)
|
||||
return;
|
||||
|
||||
m_startSize = m_curSize = m_resizable->size();
|
||||
m_startPos = m_curPos = m_resizable->mapFromGlobal(e->globalPos());
|
||||
if (debugSizeHandle)
|
||||
qDebug() << "SizeHandleRect::mousePressEvent" << m_startSize << m_startPos << m_curPos;
|
||||
|
||||
}
|
||||
|
||||
void SizeHandleRect::mouseMoveEvent(QMouseEvent *e)
|
||||
{
|
||||
if (!(e->buttons() & Qt::LeftButton))
|
||||
return;
|
||||
|
||||
// Try resize with delta against start position.
|
||||
// We don't take little deltas in consecutive move events as this
|
||||
// causes the handle and the mouse cursor to become out of sync
|
||||
// once a min/maxSize limit is hit. When the cursor reenters the valid
|
||||
// areas, it will now snap to it.
|
||||
m_curPos = m_resizable->mapFromGlobal(e->globalPos());
|
||||
QSize delta = QSize(m_curPos.x() - m_startPos.x(), m_curPos.y() - m_startPos.y());
|
||||
switch (m_dir) {
|
||||
case Right:
|
||||
case RightTop: // Only width
|
||||
delta.setHeight(0);
|
||||
break;
|
||||
case RightBottom: // All dimensions
|
||||
break;
|
||||
case LeftBottom:
|
||||
case Bottom: // Only height
|
||||
delta.setWidth(0);
|
||||
break;
|
||||
default:
|
||||
delta = QSize(0, 0);
|
||||
break;
|
||||
}
|
||||
if (delta != QSize(0, 0))
|
||||
tryResize(delta);
|
||||
}
|
||||
|
||||
void SizeHandleRect::mouseReleaseEvent(QMouseEvent *e)
|
||||
{
|
||||
if (e->button() != Qt::LeftButton)
|
||||
return;
|
||||
|
||||
e->accept();
|
||||
if (m_startSize != m_curSize) {
|
||||
const QRect startRect = QRect(0, 0, m_startPos.x(), m_startPos.y());
|
||||
const QRect newRect = QRect(0, 0, m_curPos.x(), m_curPos.y());
|
||||
if (debugSizeHandle)
|
||||
qDebug() << "SizeHandleRect::mouseReleaseEvent" << startRect << newRect;
|
||||
emit mouseButtonReleased(startRect, newRect);
|
||||
}
|
||||
}
|
||||
|
||||
void SizeHandleRect::tryResize(const QSize &delta)
|
||||
{
|
||||
// Try resize with delta against start position
|
||||
QSize newSize = m_startSize + delta;
|
||||
newSize = newSize.expandedTo(m_resizable->minimumSizeHint());
|
||||
newSize = newSize.expandedTo(m_resizable->minimumSize());
|
||||
newSize = newSize.boundedTo(m_resizable->maximumSize());
|
||||
if (newSize == m_resizable->size())
|
||||
return;
|
||||
if (debugSizeHandle)
|
||||
qDebug() << "SizeHandleRect::tryResize by (" << m_startSize << '+' << delta << ')' << newSize;
|
||||
m_resizable->resize(newSize);
|
||||
m_curSize = m_resizable->size();
|
||||
}
|
||||
|
||||
void SizeHandleRect::setState(SelectionHandleState st)
|
||||
{
|
||||
if (st == m_state)
|
||||
return;
|
||||
switch (st) {
|
||||
case SelectionHandleOff:
|
||||
hide();
|
||||
break;
|
||||
case SelectionHandleInactive:
|
||||
case SelectionHandleActive:
|
||||
show();
|
||||
raise();
|
||||
break;
|
||||
}
|
||||
m_state = st;
|
||||
}
|
82
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/sizehandlerect.h
vendored
Normal file
82
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/sizehandlerect.h
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
**************************************************************************/
|
||||
#ifndef SIZEHANDLERECT_H
|
||||
#define SIZEHANDLERECT_H
|
||||
|
||||
#include "namespace_global.h"
|
||||
|
||||
#include "widgethostconstants.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <QPoint>
|
||||
|
||||
namespace SharedTools {
|
||||
namespace Internal {
|
||||
|
||||
class SizeHandleRect : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum Direction { LeftTop, Top, RightTop, Right, RightBottom, Bottom, LeftBottom, Left };
|
||||
|
||||
SizeHandleRect(QWidget *parent, Direction d, QWidget *resizable);
|
||||
|
||||
Direction dir() const { return m_dir; }
|
||||
void updateCursor();
|
||||
void setState(SelectionHandleState st);
|
||||
|
||||
signals:
|
||||
|
||||
void mouseButtonReleased(const QRect &, const QRect &);
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *e);
|
||||
void mousePressEvent(QMouseEvent *e);
|
||||
void mouseMoveEvent(QMouseEvent *e);
|
||||
void mouseReleaseEvent(QMouseEvent *e);
|
||||
|
||||
private:
|
||||
void tryResize(const QSize &delta);
|
||||
|
||||
private:
|
||||
const Direction m_dir;
|
||||
QPoint m_startPos;
|
||||
QPoint m_curPos;
|
||||
QSize m_startSize;
|
||||
QSize m_curSize;
|
||||
QWidget *m_resizable;
|
||||
SelectionHandleState m_state;
|
||||
};
|
||||
|
||||
}
|
||||
} // namespace SharedTools
|
||||
|
||||
|
||||
#endif // SIZEHANDLERECT_H
|
||||
|
111
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/widgethost.cpp
vendored
Normal file
111
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/widgethost.cpp
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#include "widgethost.h"
|
||||
#include "formresizer.h"
|
||||
#include "widgethostconstants.h"
|
||||
|
||||
#include <QDesignerFormWindowInterface>
|
||||
#include <QDesignerFormWindowCursorInterface>
|
||||
|
||||
#include <QPalette>
|
||||
#include <QLayout>
|
||||
#include <QFrame>
|
||||
#include <QResizeEvent>
|
||||
#include <QDebug>
|
||||
|
||||
using namespace SharedTools;
|
||||
|
||||
// ---------- WidgetHost
|
||||
WidgetHost::WidgetHost(QWidget *parent, QDesignerFormWindowInterface *formWindow) :
|
||||
QScrollArea(parent),
|
||||
m_formWindow(0),
|
||||
m_formResizer(new Internal::FormResizer)
|
||||
{
|
||||
setWidget(m_formResizer);
|
||||
// Re-set flag (gets cleared by QScrollArea): Make the resize grip of a mainwindow form find the resizer as resizable window.
|
||||
m_formResizer->setWindowFlags(m_formResizer->windowFlags() | Qt::SubWindow);
|
||||
setFormWindow(formWindow);
|
||||
}
|
||||
|
||||
WidgetHost::~WidgetHost()
|
||||
{
|
||||
if (m_formWindow)
|
||||
delete m_formWindow;
|
||||
}
|
||||
|
||||
void WidgetHost::setFormWindow(QDesignerFormWindowInterface *fw)
|
||||
{
|
||||
m_formWindow = fw;
|
||||
if (!fw)
|
||||
return;
|
||||
|
||||
m_formResizer->setFormWindow(fw);
|
||||
|
||||
setBackgroundRole(QPalette::Base);
|
||||
m_formWindow->setAutoFillBackground(true);
|
||||
m_formWindow->setBackgroundRole(QPalette::Background);
|
||||
|
||||
connect(m_formResizer, SIGNAL(formWindowSizeChanged(QRect, QRect)),
|
||||
this, SLOT(fwSizeWasChanged(QRect, QRect)));
|
||||
connect(m_formWindow, SIGNAL(destroyed(QObject*)), this, SLOT(formWindowDeleted(QObject*)));
|
||||
}
|
||||
|
||||
QSize WidgetHost::formWindowSize() const
|
||||
{
|
||||
if (!m_formWindow || !m_formWindow->mainContainer())
|
||||
return QSize();
|
||||
return m_formWindow->mainContainer()->size();
|
||||
}
|
||||
|
||||
void WidgetHost::fwSizeWasChanged(const QRect &, const QRect &)
|
||||
{
|
||||
// newGeo is the mouse coordinates, thus moving the Right will actually emit wrong height
|
||||
emit formWindowSizeChanged(formWindowSize().width(), formWindowSize().height());
|
||||
}
|
||||
|
||||
void WidgetHost::formWindowDeleted(QObject *object)
|
||||
{
|
||||
if (object == m_formWindow) m_formWindow = 0;
|
||||
}
|
||||
|
||||
void WidgetHost::updateFormWindowSelectionHandles(bool active)
|
||||
{
|
||||
Internal::SelectionHandleState state = Internal::SelectionHandleOff;
|
||||
const QDesignerFormWindowCursorInterface *cursor = m_formWindow->cursor();
|
||||
if (cursor->isWidgetSelected(m_formWindow->mainContainer()))
|
||||
state = active ? Internal::SelectionHandleActive : Internal::SelectionHandleInactive;
|
||||
|
||||
m_formResizer->setState(state);
|
||||
}
|
||||
|
||||
QWidget *WidgetHost::integrationContainer() const
|
||||
{
|
||||
return m_formResizer;
|
||||
}
|
80
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/widgethost.h
vendored
Normal file
80
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/widgethost.h
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef WIDGETHOST_H
|
||||
#define WIDGETHOST_H
|
||||
|
||||
#include "namespace_global.h"
|
||||
|
||||
#include <QScrollArea>
|
||||
|
||||
QT_FORWARD_DECLARE_CLASS(QDesignerFormWindowInterface)
|
||||
|
||||
namespace SharedTools {
|
||||
|
||||
namespace Internal {
|
||||
class FormResizer;
|
||||
}
|
||||
|
||||
/* A scroll area that embeds a Designer form window */
|
||||
|
||||
class WidgetHost : public QScrollArea
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
WidgetHost(QWidget *parent = 0, QDesignerFormWindowInterface *formWindow = 0);
|
||||
virtual ~WidgetHost();
|
||||
// Show handles if active and main container is selected.
|
||||
void updateFormWindowSelectionHandles(bool active);
|
||||
|
||||
inline QDesignerFormWindowInterface *formWindow() const { return m_formWindow; }
|
||||
|
||||
QWidget *integrationContainer() const;
|
||||
|
||||
protected:
|
||||
void setFormWindow(QDesignerFormWindowInterface *fw);
|
||||
|
||||
signals:
|
||||
void formWindowSizeChanged(int, int);
|
||||
|
||||
private slots:
|
||||
void fwSizeWasChanged(const QRect &, const QRect &);
|
||||
void formWindowDeleted(QObject* object);
|
||||
|
||||
private:
|
||||
QSize formWindowSize() const;
|
||||
|
||||
QDesignerFormWindowInterface *m_formWindow;
|
||||
Internal::FormResizer *m_formResizer;
|
||||
QSize m_oldFakeWidgetSize;
|
||||
};
|
||||
|
||||
} // namespace SharedTools
|
||||
|
||||
#endif // WIDGETHOST_H
|
41
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/widgethostconstants.h
vendored
Normal file
41
limereport/dialogdesigner/3rdparty/qtcreator/designerintegrationv2/widgethostconstants.h
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef WIDGETHOST_CONSTANTS_H
|
||||
#define WIDGETHOST_CONSTANTS_H
|
||||
|
||||
namespace SharedTools {
|
||||
namespace Internal {
|
||||
enum { SELECTION_HANDLE_SIZE = 6, SELECTION_MARGIN = 10 };
|
||||
enum SelectionHandleState { SelectionHandleOff, SelectionHandleInactive, SelectionHandleActive };
|
||||
}
|
||||
}
|
||||
|
||||
#endif // WIDGETHOST_CONSTANTS_H
|
||||
|
48
limereport/dialogdesigner/3rdparty/qtcreator/namespace_global.h
vendored
Normal file
48
limereport/dialogdesigner/3rdparty/qtcreator/namespace_global.h
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Qt Software Information (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** 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.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at qt-sales@nokia.com.
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#ifndef NAMESPACE_GLOBAL_H
|
||||
#define NAMESPACE_GLOBAL_H
|
||||
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
#if QT_VERSION < 0x040400
|
||||
# define QT_ADD_NAMESPACE(name) ::name
|
||||
# define QT_USE_NAMESPACE
|
||||
# define QT_BEGIN_NAMESPACE
|
||||
# define QT_END_NAMESPACE
|
||||
# define QT_BEGIN_INCLUDE_NAMESPACE
|
||||
# define QT_END_INCLUDE_NAMESPACE
|
||||
# define QT_BEGIN_MOC_NAMESPACE
|
||||
# define QT_END_MOC_NAMESPACE
|
||||
# define QT_FORWARD_DECLARE_CLASS(name) class name;
|
||||
# define QT_MANGLE_NAMESPACE(name) name
|
||||
#endif
|
||||
|
||||
#endif // NAMESPACE_GLOBAL_H
|
17
limereport/dialogdesigner/dialogdesigner.pri
Normal file
17
limereport/dialogdesigner/dialogdesigner.pri
Normal file
@@ -0,0 +1,17 @@
|
||||
include(../../common.pri)
|
||||
include($$PWD/3rdparty/qtcreator/designerintegrationv2/designerintegration.pri)
|
||||
INCLUDEPATH *= $$PWD/3rdparty/designer
|
||||
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
contains(QT,uitools){
|
||||
DEFINES += HAVE_QTDESIGNER_INTEGRATION
|
||||
}
|
||||
}
|
||||
lessThan(QT_MAJOR_VERSION, 5){
|
||||
contains(CONFIG,uitools){
|
||||
DEFINES += HAVE_QTDESIGNER_INTEGRATION
|
||||
}
|
||||
}
|
||||
QT += designer designercomponents-private
|
||||
|
||||
SOURCES += $$PWD/lrdialogdesigner.cpp
|
||||
HEADERS += $$PWD/lrdialogdesigner.h
|
171
limereport/dialogdesigner/lrdialogdesigner.cpp
Normal file
171
limereport/dialogdesigner/lrdialogdesigner.cpp
Normal file
@@ -0,0 +1,171 @@
|
||||
#include "lrdialogdesigner.h"
|
||||
|
||||
#include <QPluginLoader>
|
||||
|
||||
#include <QDesignerComponents>
|
||||
#include <QDesignerIntegration>
|
||||
#include <abstractobjectinspector.h>
|
||||
|
||||
#include <QDesignerFormEditorInterface>
|
||||
#include <QDesignerFormWindowInterface>
|
||||
#include <QDesignerFormWindowManagerInterface>
|
||||
#include <QDesignerFormEditorPluginInterface>
|
||||
|
||||
#include <QDesignerWidgetBoxInterface>
|
||||
#include <QDesignerActionEditorInterface>
|
||||
#include <QDesignerPropertyEditorInterface>
|
||||
#include <QDesignerObjectInspectorInterface>
|
||||
#include <QDesignerFormEditorInterface>
|
||||
#include "pluginmanager_p.h"
|
||||
//#include <QExtensionManager>
|
||||
|
||||
#include "widgethost.h"
|
||||
|
||||
namespace LimeReport{
|
||||
|
||||
DialogDesigner::DialogDesigner(QObject *parent) : QObject(parent)
|
||||
{
|
||||
QDesignerComponents::initializeResources();
|
||||
m_formEditor = QDesignerComponents::createFormEditor(this);
|
||||
QDesignerComponents::initializePlugins(m_formEditor);
|
||||
QDesignerComponents::createTaskMenu(m_formEditor, this);
|
||||
|
||||
foreach ( QObject* o, QPluginLoader::staticInstances() << m_formEditor->pluginManager()->instances() )
|
||||
{
|
||||
if ( QDesignerFormEditorPluginInterface* fep = qobject_cast<QDesignerFormEditorPluginInterface*>( o ) )
|
||||
{
|
||||
// initialize plugin if needed
|
||||
if ( !fep->isInitialized() )
|
||||
fep->initialize( m_formEditor );
|
||||
|
||||
// set action chackable
|
||||
// fep->action()->setCheckable( true );
|
||||
|
||||
// // add action mode to group
|
||||
// aModes->addAction( fep->action() );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
m_widgetBox = QDesignerComponents::createWidgetBox(m_formEditor, 0);
|
||||
m_widgetBox->setWindowTitle(tr("Widget Box"));
|
||||
m_widgetBox->setObjectName(QLatin1String("WidgetBox"));
|
||||
m_formEditor->setWidgetBox(m_widgetBox);
|
||||
m_formEditor->setTopLevel(m_widgetBox);
|
||||
m_designerToolWindows.append(m_widgetBox);
|
||||
connect(m_widgetBox, SIGNAL(destroyed(QObject*)), this, SLOT(objectDestroyed(QObject*)) );
|
||||
|
||||
m_objectInspector = QDesignerComponents::createObjectInspector(m_formEditor, 0);
|
||||
m_objectInspector->setWindowTitle(tr("Object Inspector"));
|
||||
m_objectInspector->setObjectName(QLatin1String("ObjectInspector"));
|
||||
m_formEditor->setObjectInspector(m_objectInspector);
|
||||
m_designerToolWindows.append(m_objectInspector);
|
||||
connect(m_objectInspector, SIGNAL(destroyed(QObject*)), this, SLOT(objectDestroyed(QObject*)) );
|
||||
|
||||
m_propertyEditor = QDesignerComponents::createPropertyEditor(m_formEditor, 0);
|
||||
m_propertyEditor->setWindowTitle(tr("Property Editor"));
|
||||
m_propertyEditor->setObjectName(QLatin1String("PropertyEditor"));
|
||||
m_formEditor->setPropertyEditor(m_propertyEditor);
|
||||
m_designerToolWindows.append(m_propertyEditor);
|
||||
connect(m_propertyEditor, SIGNAL(destroyed(QObject*)), this, SLOT(objectDestroyed(QObject*)) );
|
||||
|
||||
m_signalSlotEditor = QDesignerComponents::createSignalSlotEditor(m_formEditor, 0);
|
||||
m_signalSlotEditor->setWindowTitle(tr("Signals && Slots Editor"));
|
||||
m_signalSlotEditor->setObjectName(QLatin1String("SignalsAndSlotsEditor"));
|
||||
|
||||
m_designerToolWindows.append(m_signalSlotEditor);
|
||||
connect(m_signalSlotEditor, SIGNAL(destroyed(QObject*)), this, SLOT(objectDestroyed(QObject*)) );
|
||||
|
||||
m_resourcesEditor = QDesignerComponents::createResourceEditor(m_formEditor, 0);
|
||||
m_resourcesEditor->setWindowTitle(tr("Resource Editor"));
|
||||
m_resourcesEditor->setObjectName(QLatin1String("ResourceEditor"));
|
||||
m_designerToolWindows.append(m_resourcesEditor);
|
||||
connect(m_resourcesEditor, SIGNAL(destroyed(QObject*)), this, SLOT(objectDestroyed(QObject*)) );
|
||||
|
||||
m_actionEditor = QDesignerComponents::createActionEditor(m_formEditor, 0);
|
||||
m_actionEditor->setWindowTitle(tr("Action Editor"));
|
||||
m_actionEditor->setObjectName("ActionEditor");
|
||||
m_formEditor->setActionEditor(m_actionEditor);
|
||||
m_designerToolWindows.append(m_actionEditor);
|
||||
connect(m_formEditor, SIGNAL(destroyed(QObject*)), this, SLOT(objectDestroyed(QObject*)) );
|
||||
|
||||
m_designerIntegration = new QDesignerIntegration(m_formEditor,this);
|
||||
m_formEditor->setIntegration(m_designerIntegration);
|
||||
|
||||
}
|
||||
|
||||
DialogDesigner::~DialogDesigner()
|
||||
{
|
||||
for (int i = 0; i<m_designerToolWindows.size();++i){
|
||||
if (m_designerToolWindows[i])
|
||||
delete m_designerToolWindows[i];
|
||||
}
|
||||
|
||||
delete m_designerIntegration;
|
||||
delete m_formEditor;
|
||||
}
|
||||
|
||||
QWidget *DialogDesigner::createFormEditor(const QString &content)
|
||||
{
|
||||
QDesignerFormWindowInterface* wnd = m_formEditor->formWindowManager()->createFormWindow(0, Qt::Window);
|
||||
wnd->setContents(content);
|
||||
m_formEditor->formWindowManager()->setActiveFormWindow(wnd);
|
||||
m_formEditor->objectInspector()->setFormWindow(wnd);
|
||||
wnd->editWidgets();
|
||||
|
||||
SharedTools::WidgetHost *placeholder = new SharedTools::WidgetHost(0,wnd);
|
||||
placeholder->setFrameStyle( QFrame::NoFrame | QFrame::Plain );
|
||||
placeholder->setFocusProxy( wnd );
|
||||
|
||||
return placeholder;
|
||||
|
||||
}
|
||||
|
||||
void DialogDesigner::setActiveEditor(QWidget *widget)
|
||||
{
|
||||
SharedTools::WidgetHost* wh = dynamic_cast<SharedTools::WidgetHost*>(widget);
|
||||
if (wh){
|
||||
m_formEditor->formWindowManager()->setActiveFormWindow(wh->formWindow());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
QWidget* DialogDesigner::widgetBox() const
|
||||
{
|
||||
return m_widgetBox;
|
||||
}
|
||||
|
||||
QWidget* DialogDesigner::actionEditor() const
|
||||
{
|
||||
return m_actionEditor;
|
||||
}
|
||||
|
||||
QWidget* DialogDesigner::propertyEditor() const
|
||||
{
|
||||
return m_propertyEditor;
|
||||
}
|
||||
|
||||
QWidget* DialogDesigner::objectInspector() const
|
||||
{
|
||||
return m_objectInspector;
|
||||
}
|
||||
|
||||
QWidget *DialogDesigner::signalSlotEditor() const
|
||||
{
|
||||
return m_signalSlotEditor;
|
||||
}
|
||||
|
||||
QWidget *DialogDesigner::resourcesEditor() const
|
||||
{
|
||||
return m_resourcesEditor;
|
||||
}
|
||||
|
||||
void DialogDesigner::objectDestroyed(QObject *object)
|
||||
{
|
||||
for ( int i = 0; i<m_designerToolWindows.size();++i){
|
||||
m_designerToolWindows[i] = m_designerToolWindows[i] == object ? 0 : m_designerToolWindows[i];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
48
limereport/dialogdesigner/lrdialogdesigner.h
Normal file
48
limereport/dialogdesigner/lrdialogdesigner.h
Normal file
@@ -0,0 +1,48 @@
|
||||
#ifndef DIALOGDESIGNER_H
|
||||
#define DIALOGDESIGNER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QVector>
|
||||
|
||||
class QDesignerFormEditorInterface;
|
||||
class QDesignerFormWindowInterface;
|
||||
class QDesignerIntegrationInterface;
|
||||
class QDesignerWidgetBoxInterface;
|
||||
class QDesignerActionEditorInterface;
|
||||
class QDesignerPropertyEditorInterface;
|
||||
class QDesignerObjectInspectorInterface;
|
||||
class QDesignerFormWindowManagerInterface;
|
||||
|
||||
namespace LimeReport{
|
||||
|
||||
class DialogDesigner : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DialogDesigner(QObject *parent = 0);
|
||||
~DialogDesigner();
|
||||
QWidget* createFormEditor(const QString& content);
|
||||
void setActiveEditor(QWidget* widget);
|
||||
QWidget* widgetBox() const;
|
||||
QWidget* actionEditor() const;
|
||||
QWidget* propertyEditor() const;
|
||||
QWidget* objectInspector() const;
|
||||
QWidget* signalSlotEditor() const;
|
||||
QWidget* resourcesEditor() const;
|
||||
private slots:
|
||||
void objectDestroyed(QObject* object);
|
||||
private:
|
||||
QDesignerFormEditorInterface* m_formEditor;
|
||||
QDesignerIntegrationInterface* m_designerIntegration;
|
||||
QDesignerWidgetBoxInterface* m_widgetBox;
|
||||
QDesignerActionEditorInterface* m_actionEditor;
|
||||
QDesignerPropertyEditorInterface* m_propertyEditor;
|
||||
QDesignerObjectInspectorInterface* m_objectInspector;
|
||||
QWidget* m_signalSlotEditor;
|
||||
QWidget* m_resourcesEditor;
|
||||
QVector<QWidget*> m_designerToolWindows;
|
||||
};
|
||||
|
||||
} // namespace LimeReport
|
||||
|
||||
#endif // DIALOGDESIGNER_H
|
Reference in New Issue
Block a user