void WidgetHandle::changeGridLayoutItemSpan() { QDesignerLayoutDecorationExtension *deco = qt_extension<QDesignerLayoutDecorationExtension*>(core()->extensionManager(), m_widget->parentWidget()); if (!deco) return; QGridLayout *grid = managedLayoutOf<QGridLayout>(m_formWindow->core(), m_widget); if (!grid) return; const int index = deco->indexOf(m_widget); const QRect info = deco->itemInfo(index); const int top = deco->findItemAt(info.top() - 1, info.left()); const int left = deco->findItemAt(info.top(), info.left() - 1); const int bottom = deco->findItemAt(info.bottom() + 1, info.left()); const int right = deco->findItemAt(info.top(), info.right() + 1); const QPoint pt = m_origGeom.center() - m_widget->geometry().center(); ChangeLayoutItemGeometry *cmd = 0; switch (m_type) { default: break; case WidgetHandle::Top: { if (pt.y() < 0 && info.height() > 1) { cmd = new ChangeLayoutItemGeometry(m_formWindow); cmd->init(m_widget, info.y() + 1, info.x(), info.height() - 1, info.width()); } else if (pt.y() > 0 && top != -1 && grid->itemAt(top)->spacerItem()) { cmd = new ChangeLayoutItemGeometry(m_formWindow); cmd->init(m_widget, info.y() - 1, info.x(), info.height() + 1, info.width()); } } break; case WidgetHandle::Left: { if (pt.x() < 0 && info.width() > 1) { cmd = new ChangeLayoutItemGeometry(m_formWindow); cmd->init(m_widget, info.y(), info.x() + 1, info.height(), info.width() - 1); } else if (pt.x() > 0 && left != -1 && grid->itemAt(left)->spacerItem()) { cmd = new ChangeLayoutItemGeometry(m_formWindow); cmd->init(m_widget, info.y(), info.x() - 1, info.height(), info.width() + 1); } } break; case WidgetHandle::Right: { if (pt.x() > 0 && info.width() > 1) { cmd = new ChangeLayoutItemGeometry(m_formWindow); cmd->init(m_widget, info.y(), info.x(), info.height(), info.width() - 1); } else if (pt.x() < 0 && right != -1 && grid->itemAt(right)->spacerItem()) { cmd = new ChangeLayoutItemGeometry(m_formWindow); cmd->init(m_widget, info.y(), info.x(), info.height(), info.width() + 1); } } break; case WidgetHandle::Bottom: { if (pt.y() > 0 && info.width() > 1) { cmd = new ChangeLayoutItemGeometry(m_formWindow); cmd->init(m_widget, info.y(), info.x(), info.height() - 1, info.width()); } else if (pt.y() < 0 && bottom != -1 && grid->itemAt(bottom)->spacerItem()) { cmd = new ChangeLayoutItemGeometry(m_formWindow); cmd->init(m_widget, info.y(), info.x(), info.height() + 1, info.width()); } } break; } if (cmd != 0) { m_formWindow->commandHistory()->push(cmd); } else { grid->invalidate(); grid->activate(); m_formWindow->clearSelection(false); m_formWindow->selectWidget(m_widget); } }
void QGridLayoutProto::invalidate() { QGridLayout *item = qscriptvalue_cast<QGridLayout*>(thisObject()); if (item) item->invalidate(); }
void ElogEntryI::customEvent(QCustomEvent* event) { KstELOGAttribStruct attrib; ELOGAttribList* pAttribs; QSizePolicy sizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ); QGridLayout* topGrid; QGridLayout* grid; QLabel* label; QLineEdit* lineedit; QCheckBox* checkbox; QComboBox* combobox; QRadioButton* radio; QHButtonGroup* buttonGroup; QString strLabel; unsigned int i; unsigned int j; if( event->type() == KstELOGAttrsEvent ) { pAttribs = (ELOGAttribList*)event->data(); _attribs = *pAttribs; delete _frameWidget; _frameWidget = 0L; topGrid = dynamic_cast<QGridLayout*>(frameAttrs->layout()); if (topGrid) { topGrid->invalidate(); _frameWidget = new QWidget(frameAttrs, "Frame Widget"); if( _frameWidget != NULL ) { setEnabled( TRUE ); topGrid->addWidget(_frameWidget, 0, 0); grid = new QGridLayout(_frameWidget, pAttribs->count(), 2); grid->setMargin(6); grid->setSpacing(5); for( i=0; i<_attribs.count(); i++ ) { attrib = _attribs[i]; strLabel = attrib.attribName; if( attrib.bMandatory ) { strLabel += "*"; } strLabel += ":"; label = new QLabel( strLabel, _frameWidget ); grid->addWidget( label, i, 0, Qt::AlignLeft); switch( attrib.type ) { case AttribTypeText: lineedit = new QLineEdit( _frameWidget ); grid->addWidget( lineedit, i, 1); _attribs[i].pWidget = lineedit; break; case AttribTypeBool: checkbox = new QCheckBox( _frameWidget ); grid->addWidget( checkbox, i, 1); _attribs[i].pWidget = checkbox; break; case AttribTypeCombo: combobox = new QComboBox( _frameWidget ); grid->addWidget( combobox, i, 1); for( j=0; j<attrib.values.count(); j++ ) { combobox->insertItem( attrib.values[j], -1 ); } if( !attrib.bMandatory ) { combobox->insertItem( "", -1 ); } _attribs[i].pWidget = combobox; break; case AttribTypeRadio: buttonGroup = new QHButtonGroup( "", _frameWidget ); buttonGroup->setSizePolicy( sizePolicy ); buttonGroup->setRadioButtonExclusive( TRUE ); buttonGroup->setAlignment( AlignLeft ); buttonGroup->setInsideMargin( 0 ); buttonGroup->setLineWidth( 0 ); grid->addWidget( buttonGroup, i, 1 ); for( j=0; j<attrib.values.count(); j++ ) { radio = new QRadioButton( attrib.values[j], buttonGroup ); if( j == 0 ) { radio->setChecked( TRUE ); } } _attribs[i].pWidget = buttonGroup; break; case AttribTypeCheck: buttonGroup = new QHButtonGroup( "", _frameWidget ); buttonGroup->setSizePolicy( sizePolicy ); buttonGroup->setAlignment( AlignLeft ); buttonGroup->setInsideMargin( 0 ); buttonGroup->setLineWidth( 0 ); grid->addWidget( buttonGroup, i, 1 ); for( j=0; j<attrib.values.count(); j++ ) { checkbox = new QCheckBox( attrib.values[j], buttonGroup ); } _attribs[i].pWidget = buttonGroup; break; } } _frameWidget->show( ); _frameWidget->resize(_frameWidget->sizeHint()); frameAttrs->resize(frameAttrs->sizeHint()); resize(sizeHint()); loadSettings( ); setSettings( ); } } } }