void EditParams::addParam(QWidget* parent, QGridLayout* layout, const ppk_proto_param* pparam) { if(!layout) { qDebug("EditParams::addParam: Tried to add a param to a NULL tab widget !\n"); return; } QAbstractFormField* field=abstractFormFieldFromParamProto(parent, pparam); if(field) { field->setFieldName(QString::fromUtf8(pparam->name)); field->setHelpText(QString::fromUtf8(pparam->help_text)); int line=layout->rowCount(); QSizePolicy sizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); sizePolicy.setHorizontalStretch(0); sizePolicy.setVerticalStretch(0); field->widget()->setSizePolicy(sizePolicy); field->widget()->setToolTip(QString::fromUtf8(pparam->help_text)); if(field->layout()!=NULL) { layout->addLayout(field->layout(), line, 1, 1, 1); } else { sizePolicy.setHeightForWidth(field->widget()->sizePolicy().hasHeightForWidth()); layout->addWidget(field->widget(), line, 1, 1, 1); } QLabel* nameParamLbl = new QLabel(createNameString(pparam), parent); nameParamLbl->setToolTip(QString::fromUtf8(pparam->help_text)); nameParamLbl->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed); layout->addWidget(nameParamLbl, line, 0, 1, 1); QPushButton* helpParamBtn = new QPushButton(tr("?"), parent); helpParamBtn->setObjectName(QString::fromUtf8("helpParamBtn")); QSizePolicy sizePolicy1(QSizePolicy::Maximum, QSizePolicy::Fixed); sizePolicy1.setHorizontalStretch(0); sizePolicy1.setVerticalStretch(0); sizePolicy1.setHeightForWidth(helpParamBtn->sizePolicy().hasHeightForWidth()); helpParamBtn->setSizePolicy(sizePolicy1); helpParamBtn->setMaximumSize(QSize(40, 16777215)); helpParamBtn->setToolTip(QString::fromUtf8(pparam->help_text)); layout->addWidget(helpParamBtn, line, 2, 1, 1); QDialogButtonBox* rstParamBtn = new QDialogButtonBox(parent); rstParamBtn->setObjectName(QString::fromUtf8("rstParamBtn")); sizePolicy1.setHeightForWidth(rstParamBtn->sizePolicy().hasHeightForWidth()); rstParamBtn->setSizePolicy(sizePolicy1); rstParamBtn->setStandardButtons(QDialogButtonBox::Reset); rstParamBtn->setToolTip(tr("Reset to the default value")); layout->addWidget(rstParamBtn, line, 3, 1, 1); //Add the field to the field vector fields.push_back(field); connect(helpParamBtn, SIGNAL(clicked()), field, SLOT(showHelpText())); connect(rstParamBtn, SIGNAL(clicked(QAbstractButton*)), field, SLOT(reset())); } }