void LayoutPropertySheet::setProperty(int index, const QVariant &value) { const LayoutPropertyType type = layoutPropertyType(propertyName(index)); if (QLayoutWidget *lw = qobject_cast<QLayoutWidget *>(m_layout->parent())) { switch (type) { case LayoutPropertyLeftMargin: lw->setLayoutLeftMargin(value.toInt()); return; case LayoutPropertyTopMargin: lw->setLayoutTopMargin(value.toInt()); return; case LayoutPropertyRightMargin: lw->setLayoutRightMargin(value.toInt()); return; case LayoutPropertyBottomMargin: lw->setLayoutBottomMargin(value.toInt()); return; case LayoutPropertyMargin: { const int v = value.toInt(); lw->setLayoutLeftMargin(v); lw->setLayoutTopMargin(v); lw->setLayoutRightMargin(v); lw->setLayoutBottomMargin(v); } return; default: break; } } switch (type) { case LayoutPropertyLeftMargin: case LayoutPropertyTopMargin: case LayoutPropertyRightMargin: case LayoutPropertyBottomMargin: setLayoutMargin(m_layout, type, value.toInt()); return; case LayoutPropertyHorizontalSpacing: if (QGridLayout *grid = qobject_cast<QGridLayout *>(m_layout)) { grid->setHorizontalSpacing(value.toInt()); return; } if (QFormLayout *form = qobject_cast<QFormLayout *>(m_layout)) { form->setHorizontalSpacing(value.toInt()); return; } break; case LayoutPropertyVerticalSpacing: if (QGridLayout *grid = qobject_cast<QGridLayout *>(m_layout)) { grid->setVerticalSpacing(value.toInt()); return; } if (QFormLayout *form = qobject_cast<QFormLayout *>(m_layout)) { form->setVerticalSpacing(value.toInt()); return; } break; case LayoutPropertyBoxStretch: // TODO: Remove the regexp check once a proper editor for integer // lists is in place? if (QBoxLayout *box = qobject_cast<QBoxLayout *>(m_layout)) { const QString stretch = value.toString(); if (isIntegerList(stretch)) QFormBuilderExtra::setBoxLayoutStretch(value.toString(), box); } break; case LayoutPropertyGridRowStretch: if (QGridLayout *grid = qobject_cast<QGridLayout *>(m_layout)) { const QString stretch = value.toString(); if (isIntegerList(stretch)) QFormBuilderExtra::setGridLayoutRowStretch(stretch, grid); } break; case LayoutPropertyGridColumnStretch: if (QGridLayout *grid = qobject_cast<QGridLayout *>(m_layout)) { const QString stretch = value.toString(); if (isIntegerList(stretch)) QFormBuilderExtra::setGridLayoutColumnStretch(value.toString(), grid); } break; case LayoutPropertyGridRowMinimumHeight: if (QGridLayout *grid = qobject_cast<QGridLayout *>(m_layout)) { const QString minSize = value.toString(); if (isIntegerList(minSize)) QFormBuilderExtra::setGridLayoutRowMinimumHeight(minSize, grid); } break; case LayoutPropertyGridColumnMinimumWidth: if (QGridLayout *grid = qobject_cast<QGridLayout *>(m_layout)) { const QString minSize = value.toString(); if (isIntegerList(minSize)) QFormBuilderExtra::setGridLayoutColumnMinimumWidth(minSize, grid); } break; default: break; } QDesignerPropertySheet::setProperty(index, value); }
void LayoutPropertySheet::setProperty(int index, const QVariant &value) { const LayoutPropertyType type = layoutPropertyType(propertyName(index)); if (QLayoutWidget *lw = qobject_cast<QLayoutWidget *>(m_layout->parent())) { switch (type) { case LayoutPropertyLeftMargin: lw->setLayoutLeftMargin(value.toInt()); return; case LayoutPropertyTopMargin: lw->setLayoutTopMargin(value.toInt()); return; case LayoutPropertyRightMargin: lw->setLayoutRightMargin(value.toInt()); return; case LayoutPropertyBottomMargin: lw->setLayoutBottomMargin(value.toInt()); return; case LayoutPropertyMargin: { const int v = value.toInt(); lw->setLayoutLeftMargin(v); lw->setLayoutTopMargin(v); lw->setLayoutRightMargin(v); lw->setLayoutBottomMargin(v); } return; default: break; } } switch (type) { case LayoutPropertyLeftMargin: case LayoutPropertyTopMargin: case LayoutPropertyRightMargin: case LayoutPropertyBottomMargin: setLayoutMargin(m_layout, type, value.toInt()); return; case LayoutPropertyHorizontalSpacing: if (QGridLayout *grid = qobject_cast<QGridLayout *>(m_layout)) { grid->setHorizontalSpacing(value.toInt()); return; } if (QFormLayout *form = qobject_cast<QFormLayout *>(m_layout)) { form->setHorizontalSpacing(value.toInt()); return; } break; case LayoutPropertyVerticalSpacing: if (QGridLayout *grid = qobject_cast<QGridLayout *>(m_layout)) { grid->setVerticalSpacing(value.toInt()); return; } if (QFormLayout *form = qobject_cast<QFormLayout *>(m_layout)) { form->setVerticalSpacing(value.toInt()); return; } break; default: break; } QDesignerPropertySheet::setProperty(index, value); }