void table_widget_delegate::setEditorData(QWidget *editor, const QModelIndex &index) const { if (_column_datas.contains(index.column())) { setWidgetData(index, editor, index.model()->data(index, Qt::DisplayRole)); } else { QStyledItemDelegate::setEditorData(editor, index); } }
void saveGeometryState(const T* widget) { setWidgetData(widget->objectName() + "Geometry", widget->saveGeometry()); setWidgetData(widget->objectName() + "State", widget->saveState()); }
FilterWidget::FilterWidget(TQueryMap opts, QList<Attr*> list, Keeper *keeper, QWidget *parent) : QWidget(parent), keeper(keeper), attrList(list), parentWidget(parent), opts(opts) { innerWidget = new QWidget(this); scrollArea = new QScrollArea(this); scrollArea->setWidget( innerWidget ); scrollArea->setWidgetResizable( true ); innerLayout = new QGridLayout( innerWidget ); innerLayout->setSpacing(2); innerLayout->setMargin(2); QWidget *w = 0; int row = 0; for( int i = 0; i < attrList.size(); i++ ) { QApplication::processEvents(); Attr *a = list.at(i); w = getAttrWidget( a, innerWidget ); if ( !w ) continue; QCheckBox *box = new QCheckBox( a->getTitle(), innerWidget); if ( opts.contains(a->getName()) ) { box->setChecked(true); setWidgetData(a, w, opts[a->getName()]); } else { w->setEnabled(false); } widgetMap.insert( a->getName(), w ); connect(box, SIGNAL(toggled(bool)), w, SLOT(setEnabled(bool))); innerLayout->addWidget( box, row++, 0 ); innerLayout->addWidget( w, row++, 0); } filterButton = new QPushButton(tr("Filter"), innerWidget); filterButton->setIcon(QIcon(":/icons/magnifier.png")); clearButton = new QPushButton(tr("Clear"), innerWidget); clearButton->setIcon(QIcon(":/icons/cancel.png")); connect(filterButton, SIGNAL(clicked()), this, SLOT(filterButton_clicked())); connect(clearButton, SIGNAL(clicked()), this, SLOT(clearButton_clicked())); QBoxLayout *hlayout = new QBoxLayout(QBoxLayout::LeftToRight); hlayout->addWidget(filterButton); hlayout->addWidget(clearButton); hlayout->addItem(new QSpacerItem(10, 10 )); innerLayout->addLayout(hlayout, row++, 0); innerLayout->addItem( new QSpacerItem(20, 1200, QSizePolicy::Maximum, QSizePolicy::Maximum), row, 0); QGridLayout *glayout = new QGridLayout(this); glayout->addWidget(scrollArea, 0, 0); glayout->setSpacing(2); glayout->setMargin(2); setLayout(glayout); }