summaryrefslogtreecommitdiffstats
path: root/src/designer/src/components/formeditor/qdesigner_resource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/designer/src/components/formeditor/qdesigner_resource.cpp')
-rw-r--r--src/designer/src/components/formeditor/qdesigner_resource.cpp152
1 files changed, 76 insertions, 76 deletions
diff --git a/src/designer/src/components/formeditor/qdesigner_resource.cpp b/src/designer/src/components/formeditor/qdesigner_resource.cpp
index c840bf35f..dd1144d7c 100644
--- a/src/designer/src/components/formeditor/qdesigner_resource.cpp
+++ b/src/designer/src/components/formeditor/qdesigner_resource.cpp
@@ -108,7 +108,7 @@ Q_DECLARE_METATYPE(QWidgetList)
QT_BEGIN_NAMESPACE
namespace {
- typedef QList<DomProperty*> DomPropertyList;
+ using DomPropertyList = QList<DomProperty *>;
}
static const char *currentUiVersion = "4.0";
@@ -162,9 +162,9 @@ QDesignerResourceBuilder::QDesignerResourceBuilder(QDesignerFormEditorInterface
static inline void setIconPixmap(QIcon::Mode m, QIcon::State s, const QDir &workingDirectory,
QString path, PropertySheetIconValue &icon,
- const QDesignerLanguageExtension *lang = 0)
+ const QDesignerLanguageExtension *lang = nullptr)
{
- if (lang == 0 || !lang->isLanguageResource(path))
+ if (lang == nullptr || !lang->isLanguageResource(path))
path = QFileInfo(workingDirectory, path).absoluteFilePath();
icon.setPixmap(m, s, PropertySheetPixmapValue(path));
}
@@ -176,7 +176,7 @@ QVariant QDesignerResourceBuilder::loadResource(const QDir &workingDirectory, co
PropertySheetPixmapValue pixmap;
DomResourcePixmap *dp = property->elementPixmap();
if (!dp->text().isEmpty()) {
- if (m_lang != 0 && m_lang->isLanguageResource(dp->text())) {
+ if (m_lang != nullptr && m_lang->isLanguageResource(dp->text())) {
pixmap.setPath(dp->text());
} else {
pixmap.setPath(QFileInfo(workingDirectory, dp->text()).absoluteFilePath());
@@ -278,7 +278,7 @@ DomProperty *QDesignerResourceBuilder::saveResource(const QDir &workingDirectory
const QIcon::Mode mode = itPix.key().first;
const QIcon::State state = itPix.key().second;
DomResourcePixmap *rp = new DomResourcePixmap;
- const PropertySheetPixmapValue pix = itPix.value();
+ const PropertySheetPixmapValue &pix = itPix.value();
const PropertySheetPixmapValue::PixmapSource ps = pix.pixmapSource(m_core);
const QString pixPath = pix.path();
rp->setText(ps == PropertySheetPixmapValue::FilePixmap && m_saveRelative ? workingDirectory.relativeFilePath(pixPath) : pixPath);
@@ -319,7 +319,7 @@ DomProperty *QDesignerResourceBuilder::saveResource(const QDir &workingDirectory
}
}
delete p;
- return 0;
+ return nullptr;
}
bool QDesignerResourceBuilder::isResourceType(const QVariant &value) const
@@ -418,14 +418,14 @@ DomProperty *QDesignerTextBuilder::saveText(const QVariant &value) const
}
if (value.canConvert<QString>())
return stringToDomProperty(value.toString());
- return 0;
+ return nullptr;
}
QDesignerResource::QDesignerResource(FormWindow *formWindow) :
QEditorFormBuilder(formWindow->core()),
m_formWindow(formWindow),
m_copyWidget(false),
- m_selected(0),
+ m_selected(nullptr),
m_resourceBuilder(new QDesignerResourceBuilder(m_formWindow->core(), m_formWindow->pixmapCache(), m_formWindow->iconCache()))
{
// Check language unless extension present (Jambi)
@@ -479,7 +479,7 @@ void QDesignerResource::saveDom(DomUI *ui, QWidget *widget)
QAbstractFormBuilder::saveDom(ui, widget);
QDesignerPropertySheetExtension *sheet = qt_extension<QDesignerPropertySheetExtension*>(core()->extensionManager(), widget);
- Q_ASSERT(sheet != 0);
+ Q_ASSERT(sheet != nullptr);
const QVariant classVar = sheet->property(sheet->indexOf(QStringLiteral("objectName")));
QString classStr;
@@ -491,7 +491,7 @@ void QDesignerResource::saveDom(DomUI *ui, QWidget *widget)
for (int index = 0; index < m_formWindow->toolCount(); ++index) {
QDesignerFormWindowToolInterface *tool = m_formWindow->tool(index);
- Q_ASSERT(tool != 0);
+ Q_ASSERT(tool != nullptr);
tool->saveToDom(ui, widget);
}
@@ -512,6 +512,8 @@ void QDesignerResource::saveDom(DomUI *ui, QWidget *widget)
if (m_formWindow->useIdBasedTranslations())
ui->setAttributeIdbasedtr(true);
+ if (!m_formWindow->connectSlotsByName()) // Don't write out if true (default)
+ ui->setAttributeConnectslotsbyname(false);
const QVariantMap designerFormData = m_formWindow->formData();
if (!designerFormData.empty()) {
@@ -633,12 +635,12 @@ QWidget *QDesignerResource::create(DomUI *ui, QWidget *parentWidget)
const QString errorMessage = QApplication::translate("Designer", "This file cannot be read because the extra info extension failed to load.");
core()->dialogGui()->message(parentWidget->window(), QDesignerDialogGuiInterface::FormLoadFailureMessage,
QMessageBox::Warning, messageBoxTitle(), errorMessage, QMessageBox::Ok);
- return 0;
+ return nullptr;
}
}
qdesigner_internal::WidgetFactory *factory = qobject_cast<qdesigner_internal::WidgetFactory*>(core()->widgetFactory());
- Q_ASSERT(factory != 0);
+ Q_ASSERT(factory != nullptr);
QDesignerFormWindowInterface *previousFormWindow = factory->currentFormWindow(m_formWindow);
@@ -646,8 +648,12 @@ QWidget *QDesignerResource::create(DomUI *ui, QWidget *parentWidget)
QDesignerWidgetItemInstaller wii; // Make sure we use QDesignerWidgetItem.
QWidget *mainWidget = QAbstractFormBuilder::create(ui, parentWidget);
- if (m_formWindow)
+ if (m_formWindow) {
m_formWindow->setUseIdBasedTranslations(ui->attributeIdbasedtr());
+ // Default to true unless set.
+ const bool connectSlotsByName = !ui->hasAttributeConnectslotsbyname() || ui->attributeConnectslotsbyname();
+ m_formWindow->setConnectSlotsByName(connectSlotsByName);
+ }
if (mainWidget && m_formWindow) {
m_formWindow->setAuthor(ui->elementAuthor());
@@ -712,7 +718,7 @@ QWidget *QDesignerResource::create(DomUI *ui, QWidget *parentWidget)
// Load tools
for (int index = 0; index < m_formWindow->toolCount(); ++index) {
QDesignerFormWindowToolInterface *tool = m_formWindow->tool(index);
- Q_ASSERT(tool != 0);
+ Q_ASSERT(tool != nullptr);
tool->loadFromDom(ui, mainWidget);
}
}
@@ -786,7 +792,7 @@ QWidget *QDesignerResource::create(DomWidget *ui_widget, QWidget *parentWidget)
QDesignerContainerExtension *container = qt_extension<QDesignerContainerExtension*>(core()->extensionManager(), parentWidget);
- if (container == 0) {
+ if (container == nullptr) {
// generate a QLayoutWidget iff the parent is not an QDesignerContainerExtension.
ui_widget->setAttributeClass(QStringLiteral("QLayoutWidget"));
}
@@ -801,19 +807,15 @@ QWidget *QDesignerResource::create(DomWidget *ui_widget, QWidget *parentWidget)
// restore the actions
ui_widget->setElementAddAction(actionRefs);
- if (w == 0)
- return 0;
+ if (w == nullptr)
+ return nullptr;
// ### generalize using the extension manager
QDesignerMenu *menu = qobject_cast<QDesignerMenu*>(w);
QDesignerMenuBar *menuBar = qobject_cast<QDesignerMenuBar*>(w);
- if (menu) {
- menu->interactive(false);
+ if (menu)
menu->hide();
- } else if (menuBar) {
- menuBar->interactive(false);
- }
for (DomActionRef *ui_action_ref : actionRefs) {
const QString name = ui_action_ref->attributeName();
@@ -832,13 +834,10 @@ QWidget *QDesignerResource::create(DomWidget *ui_widget, QWidget *parentWidget)
}
}
- if (menu) {
- menu->interactive(true);
+ if (menu)
menu->adjustSpecialActions();
- } else if (menuBar) {
- menuBar->interactive(true);
+ else if (menuBar)
menuBar->adjustSpecialActions();
- }
ui_widget->setAttributeClass(className); // fix the class name
applyExtensionDataFromDOM(this, core(), ui_widget, w);
@@ -889,7 +888,7 @@ QLayoutItem *QDesignerResource::create(DomLayoutItem *ui_layoutItem, QLayout *la
core()->metaDataBase()->add(layoutWidget);
if (m_formWindow)
m_formWindow->manageWidget(layoutWidget);
- (void) create(ui_layout, 0, layoutWidget);
+ (void) create(ui_layout, nullptr, layoutWidget);
return new QWidgetItem(layoutWidget);
}
return QAbstractFormBuilder::create(ui_layoutItem, layout, parentWidget);
@@ -1032,7 +1031,7 @@ QWidget *QDesignerResource::createWidget(const QString &widgetName, QWidget *par
QWidget *w = core()->widgetFactory()->createWidget(widgetName, parentWidget);
if (!w)
- return 0;
+ return nullptr;
if (name.isEmpty()) {
QDesignerWidgetDataBaseInterface *db = core()->widgetDataBase();
@@ -1066,13 +1065,13 @@ QWidget *QDesignerResource::createWidget(const QString &widgetName, QWidget *par
QLayout *QDesignerResource::createLayout(const QString &layoutName, QObject *parent, const QString &name)
{
- QWidget *layoutBase = 0;
+ QWidget *layoutBase = nullptr;
QLayout *layout = qobject_cast<QLayout*>(parent);
if (parent->isWidgetType())
layoutBase = static_cast<QWidget*>(parent);
else {
- Q_ASSERT( layout != 0 );
+ Q_ASSERT( layout != nullptr );
layoutBase = layout->parentWidget();
}
@@ -1082,7 +1081,7 @@ QLayout *QDesignerResource::createLayout(const QString &layoutName, QObject *par
layoutType = LayoutInfo::Grid;
}
QLayout *lay = core()->widgetFactory()->createLayout(layoutBase, layout, layoutType);
- if (lay != 0)
+ if (lay != nullptr)
changeObjectName(lay, name);
return lay;
@@ -1093,13 +1092,13 @@ DomWidget *QDesignerResource::createDom(QWidget *widget, DomWidget *ui_parentWid
{
QDesignerMetaDataBaseItemInterface *item = core()->metaDataBase()->item(widget);
if (!item)
- return 0;
+ return nullptr;
if (qobject_cast<Spacer*>(widget) && !m_copyWidget)
- return 0;
+ return nullptr;
const QDesignerWidgetDataBaseInterface *wdb = core()->widgetDataBase();
- QDesignerWidgetDataBaseItemInterface *widgetInfo = 0;
+ QDesignerWidgetDataBaseItemInterface *widgetInfo = nullptr;
const int widgetInfoIndex = wdb->indexOfObject(widget, false);
if (widgetInfoIndex != -1) {
widgetInfo = wdb->item(widgetInfoIndex);
@@ -1108,16 +1107,14 @@ DomWidget *QDesignerResource::createDom(QWidget *widget, DomWidget *ui_parentWid
while (customInfo && customInfo->isCustom()) {
m_usedCustomWidgets.insert(customInfo, true);
const QString extends = customInfo->extends();
- if (extends == customInfo->name()) {
+ if (extends == customInfo->name())
break; // There are faulty files around that have name==extends
- } else {
- const int extendsIndex = wdb->indexOfClassName(customInfo->extends());
- customInfo = extendsIndex != -1 ? wdb->item(extendsIndex) : static_cast<QDesignerWidgetDataBaseItemInterface *>(0);
- }
+ const int extendsIndex = wdb->indexOfClassName(customInfo->extends());
+ customInfo = extendsIndex != -1 ? wdb->item(extendsIndex) : nullptr;
}
}
- DomWidget *w = 0;
+ DomWidget *w = nullptr;
if (QTabWidget *tabWidget = qobject_cast<QTabWidget*>(widget))
w = saveWidget(tabWidget, ui_parentWidget);
@@ -1136,7 +1133,7 @@ DomWidget *QDesignerResource::createDom(QWidget *widget, DomWidget *ui_parentWid
else
w = QAbstractFormBuilder::createDom(widget, ui_parentWidget, recursive);
- Q_ASSERT( w != 0 );
+ Q_ASSERT( w != nullptr );
if (!qobject_cast<QLayoutWidget*>(widget) && w->attributeClass() == QStringLiteral("QWidget")) {
w->setAttributeNative(true);
@@ -1149,7 +1146,7 @@ DomWidget *QDesignerResource::createDom(QWidget *widget, DomWidget *ui_parentWid
w->setAttributeName(widget->objectName());
if (isPromoted( core(), widget)) { // is promoted?
- Q_ASSERT(widgetInfo != 0);
+ Q_ASSERT(widgetInfo != nullptr);
w->setAttributeName(widget->objectName());
w->setAttributeClass(widgetInfo->name());
@@ -1164,7 +1161,7 @@ DomWidget *QDesignerResource::createDom(QWidget *widget, DomWidget *ui_parentWid
break;
}
}
- } else if (widgetInfo != 0 && m_usedCustomWidgets.contains(widgetInfo)) {
+ } else if (widgetInfo != nullptr && m_usedCustomWidgets.contains(widgetInfo)) {
if (widgetInfo->name() != w->attributeClass())
w->setAttributeClass(widgetInfo->name());
}
@@ -1176,26 +1173,26 @@ DomLayout *QDesignerResource::createDom(QLayout *layout, DomLayout *ui_parentLay
{
QDesignerMetaDataBaseItemInterface *item = core()->metaDataBase()->item(layout);
- if (item == 0) {
+ if (item == nullptr) {
layout = layout->findChild<QLayout*>();
// refresh the meta database item
item = core()->metaDataBase()->item(layout);
}
- if (item == 0) {
+ if (item == nullptr) {
// nothing to do.
- return 0;
+ return nullptr;
}
if (qobject_cast<QSplitter*>(layout->parentWidget()) != 0) {
// nothing to do.
- return 0;
+ return nullptr;
}
m_chain.push(layout);
DomLayout *l = QAbstractFormBuilder::createDom(layout, ui_parentLayout, ui_parentWidget);
- Q_ASSERT(l != 0);
+ Q_ASSERT(l != nullptr);
LayoutPropertySheet::stretchAttributesToDom(core(), layout, l);
m_chain.pop();
@@ -1205,11 +1202,11 @@ DomLayout *QDesignerResource::createDom(QLayout *layout, DomLayout *ui_parentLay
DomLayoutItem *QDesignerResource::createDom(QLayoutItem *item, DomLayout *ui_layout, DomWidget *ui_parentWidget)
{
- DomLayoutItem *ui_item = 0;
+ DomLayoutItem *ui_item = nullptr;
if (Spacer *s = qobject_cast<Spacer*>(item->widget())) {
if (!core()->metaDataBase()->item(s))
- return 0;
+ return nullptr;
DomSpacer *spacer = new DomSpacer();
const QString objectName = s->objectName();
@@ -1231,7 +1228,7 @@ DomLayoutItem *QDesignerResource::createDom(QLayoutItem *item, DomLayout *ui_lay
} else if (!item->spacerItem()) { // we use spacer as fake item in the Designer
ui_item = QAbstractFormBuilder::createDom(item, ui_layout, ui_parentWidget);
} else {
- return 0;
+ return nullptr;
}
return ui_item;
}
@@ -1259,7 +1256,7 @@ DomTabStops *QDesignerResource::saveTabStops()
return dom;
}
- return 0;
+ return nullptr;
}
void QDesignerResource::applyTabStops(QWidget *widget, DomTabStops *tabStops)
@@ -1543,7 +1540,7 @@ bool QDesignerResource::checkProperty(QObject *obj, const QString &prop) const
if (prop == QStringLiteral("objectName") || prop == QStringLiteral("spacerName")) // ### don't store the property objectName
return false;
- QWidget *check_widget = 0;
+ QWidget *check_widget = nullptr;
if (obj->isWidgetType())
check_widget = static_cast<QWidget*>(obj);
@@ -1577,19 +1574,20 @@ bool QDesignerResource::checkProperty(QObject *obj, const QString &prop) const
bool QDesignerResource::addItem(DomLayoutItem *ui_item, QLayoutItem *item, QLayout *layout)
{
- if (item->widget() == 0) {
+ if (item->widget() == nullptr) {
return false;
}
QGridLayout *grid = qobject_cast<QGridLayout*>(layout);
QBoxLayout *box = qobject_cast<QBoxLayout*>(layout);
- if (grid != 0) {
+ if (grid != nullptr) {
const int rowSpan = ui_item->hasAttributeRowSpan() ? ui_item->attributeRowSpan() : 1;
const int colSpan = ui_item->hasAttributeColSpan() ? ui_item->attributeColSpan() : 1;
grid->addWidget(item->widget(), ui_item->attributeRow(), ui_item->attributeColumn(), rowSpan, colSpan, item->alignment());
return true;
- } else if (box != 0) {
+ }
+ if (box != nullptr) {
box->addItem(item);
return true;
}
@@ -1686,7 +1684,7 @@ bool QDesignerResource::copy(QIODevice *dev, const FormBuilderClipboard &selecti
DomUI *QDesignerResource::copy(const FormBuilderClipboard &selection)
{
if (selection.empty())
- return 0;
+ return nullptr;
m_copyWidget = true;
@@ -1701,7 +1699,7 @@ DomUI *QDesignerResource::copy(const FormBuilderClipboard &selection)
QWidget *w = selection.m_widgets.at(i);
m_selected = w;
DomWidget *ui_child = createDom(w, ui_widget);
- m_selected = 0;
+ m_selected = nullptr;
if (ui_child)
ui_widget_list.append(ui_child);
}
@@ -1728,7 +1726,7 @@ DomUI *QDesignerResource::copy(const FormBuilderClipboard &selection)
if (!hasItems) {
delete ui_widget;
- return 0;
+ return nullptr;
}
// UI
DomUI *ui = new DomUI();
@@ -1823,7 +1821,7 @@ void QDesignerResource::layoutInfo(DomLayout *layout, QObject *parent, int *marg
DomCustomWidgets *QDesignerResource::saveCustomWidgets()
{
if (m_usedCustomWidgets.isEmpty())
- return 0;
+ return nullptr;
// We would like the list to be in order of the widget database indexes
// to ensure that base classes come first (nice optics)
@@ -1935,7 +1933,7 @@ QList<DomProperty*> QDesignerResource::computeProperties(QObject *object)
DomProperty *QDesignerResource::applyProperStdSetAttribute(QObject *object, const QString &propertyName, DomProperty *property)
{
if (!property)
- return 0;
+ return nullptr;
QExtensionManager *mgr = core()->extensionManager();
if (const QDesignerPropertySheetExtension *sheet = qt_extension<QDesignerPropertySheetExtension*>(mgr, object)) {
@@ -1961,14 +1959,14 @@ static inline bool hasSetter(QDesignerFormEditorInterface *core, QObject *object
DomProperty *QDesignerResource::createProperty(QObject *object, const QString &propertyName, const QVariant &value)
{
if (!checkProperty(object, propertyName)) {
- return 0;
+ return nullptr;
}
if (value.canConvert<PropertySheetFlagValue>()) {
const PropertySheetFlagValue f = qvariant_cast<PropertySheetFlagValue>(value);
const QString flagString = f.metaFlags.toString(f.value, DesignerMetaFlags::FullyQualified);
if (flagString.isEmpty())
- return 0;
+ return nullptr;
DomProperty *p = new DomProperty;
// check if we have a standard cpp set function
@@ -1985,7 +1983,7 @@ DomProperty *QDesignerResource::createProperty(QObject *object, const QString &p
if (!ok)
designerWarning(e.metaEnum.messageToStringFailed(e.value));
if (id.isEmpty())
- return 0;
+ return nullptr;
DomProperty *p = new DomProperty;
// check if we have a standard cpp set function
@@ -2004,7 +2002,8 @@ DomProperty *QDesignerResource::createProperty(QObject *object, const QString &p
p->setAttributeName(propertyName);
return applyProperStdSetAttribute(object, propertyName, p);
- } else if (value.canConvert<PropertySheetStringListValue>()) {
+ }
+ if (value.canConvert<PropertySheetStringListValue>()) {
const PropertySheetStringListValue listValue = qvariant_cast<PropertySheetStringListValue>(value);
DomProperty *p = new DomProperty;
if (!hasSetter(core(), object, propertyName))
@@ -2017,7 +2016,8 @@ DomProperty *QDesignerResource::createProperty(QObject *object, const QString &p
translationParametersToDom(listValue, domStringList);
p->setElementStringList(domStringList);
return applyProperStdSetAttribute(object, propertyName, p);
- } else if (value.canConvert<PropertySheetKeySequenceValue>()) {
+ }
+ if (value.canConvert<PropertySheetKeySequenceValue>()) {
const PropertySheetKeySequenceValue keyVal = qvariant_cast<PropertySheetKeySequenceValue>(value);
DomProperty *p = stringToDomProperty(keyVal.value().toString(), keyVal);
if (!hasSetter(core(), object, propertyName))
@@ -2047,7 +2047,7 @@ QStringList QDesignerResource::mergeWithLoadedPaths(const QStringList &paths) co
void QDesignerResource::createResources(DomResources *resources)
{
QStringList paths;
- if (resources != 0) {
+ if (resources != nullptr) {
const auto &dom_include = resources->elementInclude();
for (DomResource *res : dom_include) {
QString path = QDir::cleanPath(m_formWindow->absoluteDir().absoluteFilePath(res->attributeLocation()));
@@ -2139,18 +2139,18 @@ DomResources *QDesignerResource::saveResources(const QStringList &qrcPaths)
DomAction *QDesignerResource::createDom(QAction *action)
{
if (!core()->metaDataBase()->item(action) || action->menu())
- return 0;
+ return nullptr;
return QAbstractFormBuilder::createDom(action);
}
DomActionGroup *QDesignerResource::createDom(QActionGroup *actionGroup)
{
- if (core()->metaDataBase()->item(actionGroup) != 0) {
+ if (core()->metaDataBase()->item(actionGroup) != nullptr) {
return QAbstractFormBuilder::createDom(actionGroup);
}
- return 0;
+ return nullptr;
}
QAction *QDesignerResource::create(DomAction *ui_action, QObject *parent)
@@ -2160,7 +2160,7 @@ QAction *QDesignerResource::create(DomAction *ui_action, QObject *parent)
return action;
}
- return 0;
+ return nullptr;
}
QActionGroup *QDesignerResource::create(DomActionGroup *ui_action_group, QObject *parent)
@@ -2170,14 +2170,14 @@ QActionGroup *QDesignerResource::create(DomActionGroup *ui_action_group, QObject
return actionGroup;
}
- return 0;
+ return nullptr;
}
DomActionRef *QDesignerResource::createActionRefDom(QAction *action)
{
if (!core()->metaDataBase()->item(action)
|| (!action->isSeparator() && !action->menu() && action->objectName().isEmpty()))
- return 0;
+ return nullptr;
return QAbstractFormBuilder::createActionRefDom(action);
}
@@ -2194,7 +2194,7 @@ QAction *QDesignerResource::createAction(QObject *parent, const QString &name)
return action;
}
- return 0;
+ return nullptr;
}
QActionGroup *QDesignerResource::createActionGroup(QObject *parent, const QString &name)
@@ -2204,7 +2204,7 @@ QActionGroup *QDesignerResource::createActionGroup(QObject *parent, const QStrin
return actionGroup;
}
- return 0;
+ return nullptr;
}
/* Apply the attributes to a widget via property sheet where appropriate,