summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorSamuel Rødal <samuel.rodal@nokia.com>2011-05-11 12:39:09 +0200
committerSamuel Rødal <samuel.rodal@nokia.com>2011-05-11 12:39:09 +0200
commit5e2b0aa1b344bc93af29d7977aa7e497bfc7a9cf (patch)
treec478b00d1c04166f3c1c163971edb4575b065b13 /tools
parentd1622207ba501b93bd83b88d61a5631d3d0da0cc (diff)
parentfda40e37df1152b5a8c572fe4bc53620bfcbcc45 (diff)
Merge remote branch 'staging/master' into refactor
Conflicts: src/gui/painting/qdrawhelper_p.h src/gui/painting/qgraphicssystemfactory.cpp src/gui/painting/qpainter.cpp src/gui/painting/qunifiedtoolbarsurface_mac.cpp src/gui/painting/qunifiedtoolbarsurface_mac_p.h src/openvg/openvg.pro src/openvg/qpaintengine_vg.cpp src/openvg/qwindowsurface_vg.cpp src/openvg/qwindowsurface_vgegl.cpp src/plugins/platforms/wayland/qwaylanddisplay.cpp src/widgets/graphicsview/qgraphicsscene.cpp
Diffstat (limited to 'tools')
-rw-r--r--tools/configure/configure.pro2
-rw-r--r--tools/configure/configureapp.cpp2
-rw-r--r--tools/uilib/abstractformbuilder.cpp159
-rw-r--r--tools/uilib/abstractformbuilder.h19
-rw-r--r--tools/uilib/formbuilder.cpp63
-rw-r--r--tools/uilib/formbuilder.h5
-rw-r--r--tools/uilib/formbuilderextra.cpp31
-rw-r--r--tools/uilib/formbuilderextra_p.h24
8 files changed, 86 insertions, 219 deletions
diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro
index 81458fc1bd..e45feb801f 100644
--- a/tools/configure/configure.pro
+++ b/tools/configure/configure.pro
@@ -81,6 +81,8 @@ SOURCES = main.cpp configureapp.cpp environment.cpp tools.cpp \
$$QT_SOURCE_TREE/src/corelib/tools/qhash.cpp \
$$QT_SOURCE_TREE/src/corelib/tools/qlist.cpp \
$$QT_SOURCE_TREE/src/corelib/tools/qlocale.cpp \
+ $$QT_SOURCE_TREE/src/corelib/tools/qlocale_win.cpp \
+ $$QT_SOURCE_TREE/src/corelib/tools/qlocale_tools.cpp \
$$QT_SOURCE_TREE/src/corelib/tools/qvector.cpp \
$$QT_SOURCE_TREE/src/corelib/codecs/qutfcodec.cpp \
$$QT_SOURCE_TREE/src/corelib/codecs/qtextcodec.cpp \
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 3f9d97c1ac..5819077658 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -3230,8 +3230,6 @@ void Configure::generateConfigfiles()
if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) {
// These features are not ported to Symbian (yet)
- qconfigList += "QT_NO_CONCURRENT";
- qconfigList += "QT_NO_QFUTURE";
qconfigList += "QT_NO_CRASHHANDLER";
qconfigList += "QT_NO_PRINTER";
qconfigList += "QT_NO_SYSTEMTRAYICON";
diff --git a/tools/uilib/abstractformbuilder.cpp b/tools/uilib/abstractformbuilder.cpp
index ad48031e75..a221b6c748 100644
--- a/tools/uilib/abstractformbuilder.cpp
+++ b/tools/uilib/abstractformbuilder.cpp
@@ -131,9 +131,7 @@ public:
/*!
Constructs a new form builder.*/
-QAbstractFormBuilder::QAbstractFormBuilder() :
- m_defaultMargin(INT_MIN),
- m_defaultSpacing(INT_MIN)
+QAbstractFormBuilder::QAbstractFormBuilder() : d(new QFormBuilderExtra)
{
setResourceBuilder(new QResourceBuilder());
setTextBuilder(new QTextBuilder());
@@ -143,10 +141,8 @@ QAbstractFormBuilder::QAbstractFormBuilder() :
Destroys the form builder.*/
QAbstractFormBuilder::~QAbstractFormBuilder()
{
- QFormBuilderExtra::removeInstance(this);
}
-
/*!
\fn QWidget *QAbstractFormBuilder::load(QIODevice *device, QWidget *parent)
@@ -195,11 +191,10 @@ QWidget *QAbstractFormBuilder::create(DomUI *ui, QWidget *parentWidget)
{
typedef QFormBuilderExtra::ButtonGroupHash ButtonGroupHash;
- QFormBuilderExtra *formBuilderPrivate = QFormBuilderExtra::instance(this);
- formBuilderPrivate->clear();
+ d->clear();
if (const DomLayoutDefault *def = ui->elementLayoutDefault()) {
- m_defaultMargin = def->hasAttributeMargin() ? def->attributeMargin() : INT_MIN;
- m_defaultSpacing = def->hasAttributeSpacing() ? def->attributeSpacing() : INT_MIN;
+ d->m_defaultMargin = def->hasAttributeMargin() ? def->attributeMargin() : INT_MIN;
+ d->m_defaultSpacing = def->hasAttributeSpacing() ? def->attributeSpacing() : INT_MIN;
}
DomWidget *ui_widget = ui->elementWidget();
@@ -209,11 +204,11 @@ QWidget *QAbstractFormBuilder::create(DomUI *ui, QWidget *parentWidget)
initialize(ui);
if (const DomButtonGroups *domButtonGroups = ui->elementButtonGroups())
- formBuilderPrivate->registerButtonGroups(domButtonGroups);
+ d->registerButtonGroups(domButtonGroups);
if (QWidget *widget = create(ui_widget, parentWidget)) {
// Reparent button groups that were actually created to main container for them to be found in the signal/slot part
- const ButtonGroupHash &buttonGroups = formBuilderPrivate->buttonGroups();
+ const ButtonGroupHash &buttonGroups = d->buttonGroups();
if (!buttonGroups.empty()) {
const ButtonGroupHash::const_iterator cend = buttonGroups.constEnd();
for (ButtonGroupHash::const_iterator it = buttonGroups.constBegin(); it != cend; ++it)
@@ -223,12 +218,12 @@ QWidget *QAbstractFormBuilder::create(DomUI *ui, QWidget *parentWidget)
createConnections(ui->elementConnections(), widget);
createResources(ui->elementResources()); // maybe this should go first, before create()...
applyTabStops(widget, ui->elementTabStops());
- formBuilderPrivate->applyInternalProperties();
+ d->applyInternalProperties();
reset();
- formBuilderPrivate->clear();
+ d->clear();
return widget;
}
- formBuilderPrivate->clear();
+ d->clear();
return 0;
}
@@ -249,10 +244,9 @@ void QAbstractFormBuilder::initialize(const DomUI *ui)
if (domCustomWidgets) {
const DomCustomWidgetList customWidgets = domCustomWidgets->elementCustomWidget();
if (!customWidgets.empty()) {
- QFormBuilderExtra *formBuilderPrivate = QFormBuilderExtra::instance(this);
const DomCustomWidgetList::const_iterator cend = customWidgets.constEnd();
for (DomCustomWidgetList::const_iterator it = customWidgets.constBegin(); it != cend; ++it)
- formBuilderPrivate->storeCustomWidgetData((*it)->elementClass(), *it);
+ d->storeCustomWidgetData((*it)->elementClass(), *it);
}
}
}
@@ -303,9 +297,9 @@ QWidget *QAbstractFormBuilder::create(DomWidget *ui_widget, QWidget *parentWidge
sep->setSeparator(true);
w->addAction(sep);
addMenuAction(sep);
- } else if (QAction *a = m_actions.value(name)) {
+ } else if (QAction *a = d->m_actions.value(name)) {
w->addAction(a);
- } else if (QActionGroup *g = m_actionGroups.value(name)) {
+ } else if (QActionGroup *g = d->m_actionGroups.value(name)) {
w->addActions(g->actions());
} else if (QMenu *menu = w->findChild<QMenu*>(name)) {
w->addAction(menu->menuAction());
@@ -317,9 +311,8 @@ QWidget *QAbstractFormBuilder::create(DomWidget *ui_widget, QWidget *parentWidge
loadExtraInfo(ui_widget, w, parentWidget);
#ifndef QT_FORMBUILDER_NO_SCRIPT
QString scriptErrorMessage;
- QFormBuilderExtra *extra = QFormBuilderExtra::instance(this);
- extra->formScriptRunner().run(ui_widget,
- extra->customWidgetScript(ui_widget->attributeClass()),
+ d->formScriptRunner().run(ui_widget,
+ d->customWidgetScript(ui_widget->attributeClass()),
w, children, &scriptErrorMessage);
#endif
addItem(ui_widget, w, parentWidget);
@@ -354,7 +347,7 @@ QAction *QAbstractFormBuilder::create(DomAction *ui_action, QObject *parent)
if (!a)
return 0;
- m_actions.insert(ui_action->attributeName(), a);
+ d->m_actions.insert(ui_action->attributeName(), a);
applyProperties(a, ui_action->elementProperty());
return a;
}
@@ -367,7 +360,7 @@ QActionGroup *QAbstractFormBuilder::create(DomActionGroup *ui_action_group, QObj
QActionGroup *a = createActionGroup(parent, ui_action_group->attributeName());
if (!a)
return 0;
- m_actionGroups.insert(ui_action_group->attributeName(), a);
+ d->m_actionGroups.insert(ui_action_group->attributeName(), a);
applyProperties(a, ui_action_group->elementProperty());
foreach (DomAction *ui_action, ui_action_group->elementAction()) {
@@ -412,7 +405,7 @@ bool QAbstractFormBuilder::addItem(DomWidget *ui_widget, QWidget *widget, QWidge
return true;
// Check special cases. First: Custom container
const QString className = QLatin1String(parentWidget->metaObject()->className());
- const QString addPageMethod = QFormBuilderExtra::instance(this)->customWidgetAddPageMethod(className);
+ const QString addPageMethod = d->customWidgetAddPageMethod(className);
if (!addPageMethod.isEmpty()) {
// If this fails ( non-existent or non-slot), use ContainerExtension in Designer, else it can't be helped
return QMetaObject::invokeMethod(parentWidget, addPageMethod.toUtf8().constData(), Qt::DirectConnection, Q_ARG(QWidget*, widget));
@@ -934,14 +927,12 @@ void QAbstractFormBuilder::applyProperties(QObject *o, const QList<DomProperty*>
if (properties.empty())
return;
- QFormBuilderExtra *fb = QFormBuilderExtra::instance(this);
-
const DomPropertyList::const_iterator cend = properties.constEnd();
for (DomPropertyList::const_iterator it = properties.constBegin(); it != cend; ++it) {
const QVariant v = toVariant(o->metaObject(), *it);
if (!v.isNull()) {
const QString attributeName = (*it)->attributeName();
- if (!fb->applyPropertyInternally(o, attributeName, v))
+ if (!d->applyPropertyInternally(o, attributeName, v))
o->setProperty(attributeName.toUtf8(), v);
}
}
@@ -956,7 +947,7 @@ void QAbstractFormBuilder::applyProperties(QObject *o, const QList<DomProperty*>
bool QAbstractFormBuilder::applyPropertyInternally(QObject *o, const QString &propertyName, const QVariant &value)
{
- return QFormBuilderExtra::instance(this)->applyPropertyInternally(o,propertyName, value);
+ return d->applyPropertyInternally(o,propertyName, value);
}
/*!
@@ -1240,7 +1231,7 @@ void QAbstractFormBuilder::save(QIODevice *dev, QWidget *widget)
ui->write(writer);
writer.writeEndDocument();
- m_laidout.clear();
+ d->m_laidout.clear();
delete ui;
}
@@ -1340,7 +1331,7 @@ DomWidget *QAbstractFormBuilder::createDom(QWidget *widget, DomWidget *ui_parent
foreach (QObject *obj, children) {
if (QWidget *childWidget = qobject_cast<QWidget*>(obj)) {
- if (m_laidout.contains(childWidget) || recursive == false)
+ if (d->m_laidout.contains(childWidget) || recursive == false)
continue;
if (QMenu *menu = qobject_cast<QMenu *>(childWidget)) {
@@ -1546,7 +1537,7 @@ DomLayoutItem *QAbstractFormBuilder::createDom(QLayoutItem *item, DomLayout *ui_
if (item->widget()) {
ui_item->setElementWidget(createDom(item->widget(), ui_parentWidget));
- m_laidout.insert(item->widget(), true);
+ d->m_laidout.insert(item->widget(), true);
} else if (item->layout()) {
ui_item->setElementLayout(createDom(item->layout(), ui_layout, ui_parentWidget));
} else if (item->spacerItem()) {
@@ -2230,21 +2221,6 @@ void QAbstractFormBuilder::saveComboBoxExtraInfo(QComboBox *comboBox, DomWidget
ui_widget->setElementItem(ui_items);
}
-// Return the buttongroups assigned to a button except the internal one
-// (with empty object name) used by Q3ButtonGroup.
-static inline const QButtonGroup *formButtonGroup(const QAbstractButton *widget)
-{
- const QButtonGroup *buttonGroup = widget->group();
- if (!buttonGroup)
- return 0;
- if (buttonGroup->objectName().isEmpty()) {
- if (const QWidget *parent = widget->parentWidget())
- if (!qstrcmp(parent->metaObject()->className(), "Q3ButtonGroup"))
- return 0;
- }
- return buttonGroup;
-}
-
/*!
\internal
\since 4.5
@@ -2253,7 +2229,7 @@ static inline const QButtonGroup *formButtonGroup(const QAbstractButton *widget)
void QAbstractFormBuilder::saveButtonExtraInfo(const QAbstractButton *widget, DomWidget *ui_widget, DomWidget *)
{
typedef QList<DomProperty*> DomPropertyList;
- if (const QButtonGroup *buttonGroup = formButtonGroup(widget)) {
+ if (const QButtonGroup *buttonGroup = widget->group()) {
DomPropertyList attributes = ui_widget->elementAttribute();
DomString *domString = new DomString();
domString->setText(buttonGroup->objectName());
@@ -2335,7 +2311,7 @@ void QAbstractFormBuilder::saveItemViewExtraInfo(const QAbstractItemView *itemVi
void QAbstractFormBuilder::setResourceBuilder(QResourceBuilder *builder)
{
- QFormBuilderExtra::instance(this)->setResourceBuilder(builder);
+ d->setResourceBuilder(builder);
}
/*!
@@ -2345,7 +2321,7 @@ void QAbstractFormBuilder::setResourceBuilder(QResourceBuilder *builder)
QResourceBuilder *QAbstractFormBuilder::resourceBuilder() const
{
- return QFormBuilderExtra::instance(this)->resourceBuilder();
+ return d->resourceBuilder();
}
/*!
@@ -2355,7 +2331,7 @@ QResourceBuilder *QAbstractFormBuilder::resourceBuilder() const
void QAbstractFormBuilder::setTextBuilder(QTextBuilder *builder)
{
- QFormBuilderExtra::instance(this)->setTextBuilder(builder);
+ d->setTextBuilder(builder);
}
/*!
@@ -2365,7 +2341,7 @@ void QAbstractFormBuilder::setTextBuilder(QTextBuilder *builder)
QTextBuilder *QAbstractFormBuilder::textBuilder() const
{
- return QFormBuilderExtra::instance(this)->textBuilder();
+ return d->textBuilder();
}
/*!
@@ -2629,8 +2605,7 @@ void QAbstractFormBuilder::loadButtonExtraInfo(const DomWidget *ui_widget, QAbst
if (groupName.isEmpty())
return;
// Find entry
- QFormBuilderExtra *extra = QFormBuilderExtra::instance(this);
- ButtonGroupHash &buttonGroups = extra->buttonGroups();
+ ButtonGroupHash &buttonGroups = d->buttonGroups();
ButtonGroupHash::iterator it = buttonGroups.find(groupName);
if (it == buttonGroups.end()) {
#ifdef QFORMINTERNAL_NAMESPACE // Suppress the warning when copying in Designer
@@ -2763,74 +2738,12 @@ void QAbstractFormBuilder::loadExtraInfo(DomWidget *ui_widget, QWidget *widget,
}
/*!
- \internal
-*/
-QIcon QAbstractFormBuilder::nameToIcon(const QString &filePath, const QString &qrcPath)
-{
- Q_UNUSED(filePath)
- Q_UNUSED(qrcPath)
- qWarning() << "QAbstractFormBuilder::nameToIcon() is obsoleted";
- return QIcon();
-}
-
-/*!
- \internal
-*/
-QString QAbstractFormBuilder::iconToFilePath(const QIcon &pm) const
-{
- Q_UNUSED(pm)
- qWarning() << "QAbstractFormBuilder::iconToFilePath() is obsoleted";
- return QString();
-}
-
-/*!
- \internal
-*/
-QString QAbstractFormBuilder::iconToQrcPath(const QIcon &pm) const
-{
- Q_UNUSED(pm)
- qWarning() << "QAbstractFormBuilder::iconToQrcPath() is obsoleted";
- return QString();
-}
-
-/*!
- \internal
-*/
-QPixmap QAbstractFormBuilder::nameToPixmap(const QString &filePath, const QString &qrcPath)
-{
- Q_UNUSED(filePath)
- Q_UNUSED(qrcPath)
- qWarning() << "QAbstractFormBuilder::nameToPixmap() is obsoleted";
- return QPixmap();
-}
-
-/*!
- \internal
-*/
-QString QAbstractFormBuilder::pixmapToFilePath(const QPixmap &pm) const
-{
- Q_UNUSED(pm)
- qWarning() << "QAbstractFormBuilder::pixmapToFilePath() is obsoleted";
- return QString();
-}
-
-/*!
- \internal
-*/
-QString QAbstractFormBuilder::pixmapToQrcPath(const QPixmap &pm) const
-{
- Q_UNUSED(pm)
- qWarning() << "QAbstractFormBuilder::pixmapToQrcPath() is obsoleted";
- return QString();
-}
-
-/*!
Returns the current working directory of the form builder.
\sa setWorkingDirectory() */
QDir QAbstractFormBuilder::workingDirectory() const
{
- return m_workingDirectory;
+ return d->m_workingDirectory;
}
/*!
@@ -2840,7 +2753,7 @@ QDir QAbstractFormBuilder::workingDirectory() const
\sa workingDirectory()*/
void QAbstractFormBuilder::setWorkingDirectory(const QDir &directory)
{
- m_workingDirectory = directory;
+ d->m_workingDirectory = directory;
}
/*!
@@ -2914,11 +2827,11 @@ void QAbstractFormBuilder::addMenuAction(QAction *action)
*/
void QAbstractFormBuilder::reset()
{
- m_laidout.clear();
- m_actions.clear();
- m_actionGroups.clear();
- m_defaultMargin = INT_MIN;
- m_defaultSpacing = INT_MIN;
+ d->m_laidout.clear();
+ d->m_actions.clear();
+ d->m_actionGroups.clear();
+ d->m_defaultMargin = INT_MIN;
+ d->m_defaultSpacing = INT_MIN;
}
/*!
@@ -3131,7 +3044,7 @@ QPixmap QAbstractFormBuilder::domPropertyToPixmap(const DomProperty* p)
#ifndef QT_FORMBUILDER_NO_SCRIPT
QFormScriptRunner *QAbstractFormBuilder::formScriptRunner() const
{
- return &(QFormBuilderExtra::instance(this)->formScriptRunner());
+ return &(d->formScriptRunner());
}
#endif
diff --git a/tools/uilib/abstractformbuilder.h b/tools/uilib/abstractformbuilder.h
index 14f3ffa66c..9d53e2d4b7 100644
--- a/tools/uilib/abstractformbuilder.h
+++ b/tools/uilib/abstractformbuilder.h
@@ -47,6 +47,7 @@
#include <QtCore/QList>
#include <QtCore/QHash>
#include <QtCore/QDir>
+#include <QtCore/QScopedPointer>
#include <QtWidgets/QSizePolicy>
#include <QtGui/QPalette>
@@ -105,6 +106,7 @@ class DomResourcePixmap;
class QResourceBuilder;
class QTextBuilder;
+class QFormBuilderExtra;
#ifndef QT_FORMBUILDER_NO_SCRIPT
class QFormScriptRunner;
@@ -186,13 +188,6 @@ protected:
virtual void layoutInfo(DomLayout *layout, QObject *parent, int *margin, int *spacing);
- virtual QIcon nameToIcon(const QString &filePath, const QString &qrcPath);
- virtual QString iconToFilePath(const QIcon &pm) const;
- virtual QString iconToQrcPath(const QIcon &pm) const;
- virtual QPixmap nameToPixmap(const QString &filePath, const QString &qrcPath);
- virtual QString pixmapToFilePath(const QPixmap &pm) const;
- virtual QString pixmapToQrcPath(const QPixmap &pm) const;
-
void loadListWidgetExtraInfo(DomWidget *ui_widget, QListWidget *listWidget, QWidget *parentWidget);
void loadTreeWidgetExtraInfo(DomWidget *ui_widget, QTreeWidget *treeWidget, QWidget *parentWidget);
void loadTableWidgetExtraInfo(DomWidget *ui_widget, QTableWidget *tableWidget, QWidget *parentWidget);
@@ -259,13 +254,6 @@ protected:
QPixmap domPropertyToPixmap(const DomResourcePixmap* p);
QPixmap domPropertyToPixmap(const DomProperty* p);
- QHash<QObject*, bool> m_laidout;
- QHash<QString, QAction*> m_actions;
- QHash<QString, QActionGroup*> m_actionGroups;
- int m_defaultMargin;
- int m_defaultSpacing;
- QDir m_workingDirectory;
-
private:
//
// utils
@@ -277,6 +265,9 @@ private:
friend QDESIGNER_UILIB_EXPORT DomProperty *variantToDomProperty(QAbstractFormBuilder *abstractFormBuilder, const QMetaObject *meta, const QString &propertyName, const QVariant &value);
friend QDESIGNER_UILIB_EXPORT QVariant domPropertyToVariant(QAbstractFormBuilder *abstractFormBuilder,const QMetaObject *meta, const DomProperty *property);
+
+protected:
+ QScopedPointer<QFormBuilderExtra> d;
};
#ifdef QFORMINTERNAL_NAMESPACE
diff --git a/tools/uilib/formbuilder.cpp b/tools/uilib/formbuilder.cpp
index ee5452561f..67d3a8db95 100644
--- a/tools/uilib/formbuilder.cpp
+++ b/tools/uilib/formbuilder.cpp
@@ -105,7 +105,7 @@ namespace QFormInternal {
Constructs a new form builder.
*/
-QFormBuilder::QFormBuilder() : QAbstractFormBuilder()
+QFormBuilder::QFormBuilder()
{
}
@@ -121,12 +121,11 @@ QFormBuilder::~QFormBuilder()
*/
QWidget *QFormBuilder::create(DomWidget *ui_widget, QWidget *parentWidget)
{
- QFormBuilderExtra *fb = QFormBuilderExtra::instance(this);
- if (!fb->parentWidgetIsSet())
- fb->setParentWidget(parentWidget);
+ if (!d->parentWidgetIsSet())
+ d->setParentWidget(parentWidget);
// Is this a QLayoutWidget with a margin of 0: Not a known page-based
// container and no method for adding pages registered.
- fb->setProcessingLayoutWidget(false);
+ d->setProcessingLayoutWidget(false);
if (ui_widget->attributeClass() == QFormBuilderStrings::instance().qWidgetClass && !ui_widget->hasAttributeNative()
&& parentWidget
#ifndef QT_NO_MAINWINDOW
@@ -152,8 +151,8 @@ QWidget *QFormBuilder::create(DomWidget *ui_widget, QWidget *parentWidget)
#endif
) {
const QString parentClassName = QLatin1String(parentWidget->metaObject()->className());
- if (!fb->isCustomWidgetContainer(parentClassName))
- fb->setProcessingLayoutWidget(true);
+ if (!d->isCustomWidgetContainer(parentClassName))
+ d->setProcessingLayoutWidget(true);
}
return QAbstractFormBuilder::create(ui_widget, parentWidget);
}
@@ -213,14 +212,13 @@ QWidget *QFormBuilder::createWidget(const QString &widgetName, QWidget *parentWi
break;
// try with a registered custom widget
- QDesignerCustomWidgetInterface *factory = m_customWidgets.value(widgetName);
+ QDesignerCustomWidgetInterface *factory = d->m_customWidgets.value(widgetName);
if (factory != 0)
w = factory->createWidget(parentWidget);
} while(false);
- QFormBuilderExtra *fb = QFormBuilderExtra::instance(this);
if (w == 0) { // Attempt to instantiate base class of promoted/custom widgets
- const QString baseClassName = fb->customWidgetBaseClass(widgetName);
+ const QString baseClassName = d->customWidgetBaseClass(widgetName);
if (!baseClassName.isEmpty()) {
qWarning() << QCoreApplication::translate("QFormBuilder", "QFormBuilder was unable to create a custom widget of the class '%1'; defaulting to base class '%2'.").arg(widgetName, baseClassName);
return createWidget(baseClassName, parentWidget, name);
@@ -271,23 +269,6 @@ QLayout *QFormBuilder::createLayout(const QString &layoutName, QObject *parent,
if (l) {
l->setObjectName(name);
- if (parentLayout) {
- QWidget *w = qobject_cast<QWidget *>(parentLayout->parent());
- if (w && w->inherits("Q3GroupBox")) {
- l->setContentsMargins(w->style()->pixelMetric(QStyle::PM_LayoutLeftMargin),
- w->style()->pixelMetric(QStyle::PM_LayoutTopMargin),
- w->style()->pixelMetric(QStyle::PM_LayoutRightMargin),
- w->style()->pixelMetric(QStyle::PM_LayoutBottomMargin));
- QGridLayout *grid = qobject_cast<QGridLayout *>(l);
- if (grid) {
- grid->setHorizontalSpacing(-1);
- grid->setVerticalSpacing(-1);
- } else {
- l->setSpacing(-1);
- }
- l->setAlignment(Qt::AlignTop);
- }
- }
} else {
qWarning() << QCoreApplication::translate("QFormBuilder", "The layout type `%1' is not supported.").arg(layoutName);
}
@@ -375,10 +356,9 @@ QWidget *QFormBuilder::create(DomUI *ui, QWidget *parentWidget)
*/
QLayout *QFormBuilder::create(DomLayout *ui_layout, QLayout *layout, QWidget *parentWidget)
{
- QFormBuilderExtra *fb = QFormBuilderExtra::instance(this);
// Is this a temporary layout widget used to represent QLayout hierarchies in Designer?
// Set its margins to 0.
- bool layoutWidget = fb->processingLayoutWidget();
+ bool layoutWidget = d->processingLayoutWidget();
QLayout *l = QAbstractFormBuilder::create(ui_layout, layout, parentWidget);
if (layoutWidget) {
const QFormBuilderStrings &strings = QFormBuilderStrings::instance();
@@ -399,7 +379,7 @@ QLayout *QFormBuilder::create(DomLayout *ui_layout, QLayout *layout, QWidget *pa
bottom = prop->elementNumber();
l->setContentsMargins(left, top, right, bottom);
- fb->setProcessingLayoutWidget(false);
+ d->setProcessingLayoutWidget(false);
}
return l;
}
@@ -435,7 +415,7 @@ QActionGroup *QFormBuilder::create(DomActionGroup *ui_action_group, QObject *par
*/
QStringList QFormBuilder::pluginPaths() const
{
- return m_pluginPaths;
+ return d->m_pluginPaths;
}
/*!
@@ -446,7 +426,7 @@ QStringList QFormBuilder::pluginPaths() const
*/
void QFormBuilder::clearPluginPaths()
{
- m_pluginPaths.clear();
+ d->m_pluginPaths.clear();
updateCustomWidgets();
}
@@ -459,7 +439,7 @@ void QFormBuilder::clearPluginPaths()
*/
void QFormBuilder::addPluginPath(const QString &pluginPath)
{
- m_pluginPaths.append(pluginPath);
+ d->m_pluginPaths.append(pluginPath);
updateCustomWidgets();
}
@@ -470,7 +450,7 @@ void QFormBuilder::addPluginPath(const QString &pluginPath)
*/
void QFormBuilder::setPluginPath(const QStringList &pluginPaths)
{
- m_pluginPaths = pluginPaths;
+ d->m_pluginPaths = pluginPaths;
updateCustomWidgets();
}
@@ -493,9 +473,9 @@ static void insertPlugins(QObject *o, QMap<QString, QDesignerCustomWidgetInterfa
*/
void QFormBuilder::updateCustomWidgets()
{
- m_customWidgets.clear();
+ d->m_customWidgets.clear();
- foreach (const QString &path, m_pluginPaths) {
+ foreach (const QString &path, d->m_pluginPaths) {
const QDir dir(path);
const QStringList candidates = dir.entryList(QDir::Files);
@@ -509,14 +489,14 @@ void QFormBuilder::updateCustomWidgets()
QPluginLoader loader(loaderPath);
if (loader.load())
- insertPlugins(loader.instance(), &m_customWidgets);
+ insertPlugins(loader.instance(), &d->m_customWidgets);
}
}
// Check statically linked plugins
const QObjectList staticPlugins = QPluginLoader::staticInstances();
if (!staticPlugins.empty())
foreach (QObject *o, staticPlugins)
- insertPlugins(o, &m_customWidgets);
+ insertPlugins(o, &d->m_customWidgets);
}
/*!
@@ -526,7 +506,7 @@ void QFormBuilder::updateCustomWidgets()
*/
QList<QDesignerCustomWidgetInterface*> QFormBuilder::customWidgets() const
{
- return m_customWidgets.values();
+ return d->m_customWidgets.values();
}
/*!
@@ -540,7 +520,6 @@ void QFormBuilder::applyProperties(QObject *o, const QList<DomProperty*> &proper
if (properties.empty())
return;
- QFormBuilderExtra *fb = QFormBuilderExtra::instance(this);
const QFormBuilderStrings &strings = QFormBuilderStrings::instance();
const DomPropertyList::const_iterator cend = properties.constEnd();
@@ -551,10 +530,10 @@ void QFormBuilder::applyProperties(QObject *o, const QList<DomProperty*> &proper
const QString attributeName = (*it)->attributeName();
const bool isWidget = o->isWidgetType();
- if (isWidget && o->parent() == fb->parentWidget() && attributeName == strings.geometryProperty) {
+ if (isWidget && o->parent() == d->parentWidget() && attributeName == strings.geometryProperty) {
// apply only the size part of a geometry for the root widget
static_cast<QWidget*>(o)->resize(qvariant_cast<QRect>(v).size());
- } else if (fb->applyPropertyInternally(o, attributeName, v)) {
+ } else if (d->applyPropertyInternally(o, attributeName, v)) {
} else if (isWidget && !qstrcmp("QFrame", o->metaObject()->className ()) && attributeName == strings.orientationProperty) {
// ### special-casing for Line (QFrame) -- try to fix me
o->setProperty("frameShape", v); // v is of QFrame::Shape enum
diff --git a/tools/uilib/formbuilder.h b/tools/uilib/formbuilder.h
index 1d3dc5a395..6c0820c214 100644
--- a/tools/uilib/formbuilder.h
+++ b/tools/uilib/formbuilder.h
@@ -45,9 +45,6 @@
#include "uilib_global.h"
#include "abstractformbuilder.h"
-#include <QtCore/QStringList>
-#include <QtCore/QMap>
-
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -100,8 +97,6 @@ protected:
static QWidget *widgetByName(QWidget *topLevel, const QString &name);
private:
- QStringList m_pluginPaths;
- QMap<QString, QDesignerCustomWidgetInterface*> m_customWidgets;
};
#ifdef QFORMINTERNAL_NAMESPACE
diff --git a/tools/uilib/formbuilderextra.cpp b/tools/uilib/formbuilderextra.cpp
index 75118a1a8b..bca0c595e5 100644
--- a/tools/uilib/formbuilderextra.cpp
+++ b/tools/uilib/formbuilderextra.cpp
@@ -55,6 +55,8 @@
#include <QtCore/QStringList>
#include <QtCore/QCoreApplication>
+#include <limits.h>
+
QT_BEGIN_NAMESPACE
#ifdef QFORMINTERNAL_NAMESPACE
@@ -83,6 +85,8 @@ QFormBuilderExtra::CustomWidgetData::CustomWidgetData(const DomCustomWidget *dcw
}
QFormBuilderExtra::QFormBuilderExtra() :
+ m_defaultMargin(INT_MIN),
+ m_defaultSpacing(INT_MIN),
m_layoutWidget(false),
m_resourceBuilder(0),
m_textBuilder(0)
@@ -217,33 +221,6 @@ bool QFormBuilderExtra::isCustomWidgetContainer(const QString &className) const
return false;
}
-namespace {
- typedef QHash<const QAbstractFormBuilder *, QFormBuilderExtra *> FormBuilderPrivateHash;
-}
-
-Q_GLOBAL_STATIC(FormBuilderPrivateHash, g_FormBuilderPrivateHash)
-
-QFormBuilderExtra *QFormBuilderExtra::instance(const QAbstractFormBuilder *afb)
-{
- FormBuilderPrivateHash &fbHash = *g_FormBuilderPrivateHash();
-
- FormBuilderPrivateHash::iterator it = fbHash.find(afb);
- if (it == fbHash.end())
- it = fbHash.insert(afb, new QFormBuilderExtra);
- return it.value();
-}
-
-void QFormBuilderExtra::removeInstance(const QAbstractFormBuilder *afb)
-{
- FormBuilderPrivateHash &fbHash = *g_FormBuilderPrivateHash();
-
- FormBuilderPrivateHash::iterator it = fbHash.find(afb);
- if (it != fbHash.end()) {
- delete it.value();
- fbHash.erase(it);
- }
-}
-
void QFormBuilderExtra::setProcessingLayoutWidget(bool processing)
{
m_layoutWidget = processing;
diff --git a/tools/uilib/formbuilderextra_p.h b/tools/uilib/formbuilderextra_p.h
index cac882b8d8..a5e2029391 100644
--- a/tools/uilib/formbuilderextra_p.h
+++ b/tools/uilib/formbuilderextra_p.h
@@ -61,19 +61,23 @@
#include <QtCore/QHash>
#include <QtCore/QPointer>
-#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QMap>
+#include <QtCore/QDir>
QT_BEGIN_NAMESPACE
+class QDesignerCustomWidgetInterface;
class QObject;
class QVariant;
class QWidget;
class QObject;
class QLabel;
class QButtonGroup;
-
class QBoxLayout;
class QGridLayout;
+class QAction;
+class QActionGroup;
#ifdef QFORMINTERNAL_NAMESPACE
namespace QFormInternal
@@ -90,9 +94,10 @@ class QTextBuilder;
class QDESIGNER_UILIB_EXPORT QFormBuilderExtra
{
+public:
QFormBuilderExtra();
~QFormBuilderExtra();
-public:
+
struct CustomWidgetData {
CustomWidgetData();
explicit CustomWidgetData(const DomCustomWidget *dc);
@@ -130,9 +135,6 @@ public:
void setTextBuilder(QTextBuilder *builder);
QTextBuilder *textBuilder() const;
- static QFormBuilderExtra *instance(const QAbstractFormBuilder *afb);
- static void removeInstance(const QAbstractFormBuilder *afb);
-
void storeCustomWidgetData(const QString &className, const DomCustomWidget *d);
QString customWidgetAddPageMethod(const QString &className) const;
QString customWidgetBaseClass(const QString &className) const;
@@ -169,6 +171,16 @@ public:
static bool setGridLayoutColumnMinimumWidth(const QString &, QGridLayout *);
static void clearGridLayoutColumnMinimumWidth(QGridLayout *);
+ QStringList m_pluginPaths;
+ QMap<QString, QDesignerCustomWidgetInterface*> m_customWidgets;
+
+ QHash<QObject*, bool> m_laidout;
+ QHash<QString, QAction*> m_actions;
+ QHash<QString, QActionGroup*> m_actionGroups;
+ int m_defaultMargin;
+ int m_defaultSpacing;
+ QDir m_workingDirectory;
+
private:
void clearResourceBuilder();
void clearTextBuilder();