Beispiel #1
0
void LeadDetails::setDataInternal(const QMap<QString, QString> &data)
{
    Q_UNUSED(data);
    fillComboBox(mUi->salutation, KDCRMFields::salutation());
    fillComboBox(mUi->lead_source, KDCRMFields::leadSource());
    fillComboBox(mUi->status, KDCRMFields::status());
}
Beispiel #2
0
static void onInitDialog(HWND hWnd, LPSTR lpsz) 
{
  hWndDirPicker = hWnd;
  lpszStringToReturn = lpsz;
  
  hIconDrives[0] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVEFLOPPY));
  hIconDrives[1] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVEHARD));
  hIconDrives[2] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVENETWORK));
  hIconDrives[3] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVECDROM));
  hIconDrives[4] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_DRIVERAM));

  hIconFolders[0] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_FOLDERCLOSED));
  hIconFolders[1] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_FOLDEROPEN));
  hIconFolders[2] = LoadIcon(hInst, MAKEINTRESOURCE(ID_ICON_OPENSELECT));
  
  if(lpsz[0] == '\0') 
    _getcwd(lpsz, _MAX_PATH);
  else if(lpsz[lstrlen(lpsz) - 1] == ':')
    lstrcat(lpsz, "\\");

  int ret = _chdir(lpsz);
  if(ret == -1) 
  {
    char szText[_MAX_PATH + 80];
    sprintf(szText, "The specified directory %s\ncannot be found", lpsz);
    MessageBox(GetParent(hWnd), szText, "Choose Directory", MB_ICONEXCLAMATION|MB_OK);
    _getcwd(lpsz, _MAX_PATH);
  }
  if((lpsz[0] == '\\') && (lpsz[1] == '\\'))
    fillUNCRootArray(lpsz);
  fillListBox(hWnd, lpsz);
  fillComboBox(hWnd);
}
Beispiel #3
0
 void MenuList::onContentChanged()
 {
     if (mIsInitialized)
     {
         WinAPI::ComboBox_Clear(handle());
         fillComboBox();
     }
     // else: the init will take care of the initial fill
 }
LidWatcherSettings::LidWatcherSettings(QWidget *parent) :
    QWidget(parent),
    mSettings(),
    mUi(new Ui::LidWatcherSettings)
{
    mUi->setupUi(this);

    fillComboBox(mUi->onBatteryActionComboBox);
    fillComboBox(mUi->onAcActionComboBox);
    fillComboBox(mUi->extMonOnBatteryActionComboBox);
    fillComboBox(mUi->extMonOnAcActionComboBox);

    connect(mUi->lidWatcherSettingsGroupBox, SIGNAL(clicked()), this, SLOT(saveSettings()));
    connect(mUi->onBatteryActionComboBox, SIGNAL(activated(int)), this, SLOT(saveSettings()));
    connect(mUi->onAcActionComboBox, SIGNAL(activated(int)), this, SLOT(saveSettings()));
    connect(mUi->extMonOnBatteryActionComboBox, SIGNAL(activated(int)), this, SLOT(saveSettings()));
    connect(mUi->extMonOnAcActionComboBox, SIGNAL(activated(int)), this, SLOT(saveSettings()));
    connect(mUi->extMonGroupBox, SIGNAL(clicked()), this, SLOT(saveSettings()));
}
Beispiel #5
0
void OpportunityDetails::setDataInternal(const QMap<QString, QString> &) const
{
    fillComboBox(mUi->opportunity_type, KDCRMFields::opportunityType());
    fillComboBox(mUi->lead_source, KDCRMFields::leadSource());
    fillComboBox(mUi->sales_stage, KDCRMFields::salesStage());

    const QString baseUrl = resourceBaseUrl();
    const QString oppId = id();
    if (!baseUrl.isEmpty() && !oppId.isEmpty()) {
        const QString url = baseUrl + "?action=DetailView&module=Opportunities&record=" + oppId;
        mUi->urllabel->setText(QString("<a href=\"%1\">Open Opportunity in Web Browser</a>").arg(url));
    } else {
        mUi->urllabel->clear();
    }

    const int notes = oppId.isEmpty() ? 0 : mNotesRepository->notesForOpportunity(oppId).count() + mNotesRepository->emailsForOpportunity(oppId).count();
    mUi->viewNotesButton->setEnabled(notes > 0);
    const QString buttonText = (notes == 0) ? i18n("View Notes") : i18np("View 1 Note", "View %1 Notes", notes);
    mUi->viewNotesButton->setText(buttonText);
}
RemoteCaptureDialog::RemoteCaptureDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::RemoteCaptureDialog)
{
    ui->setupUi(this);

    fillComboBox();
    connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(apply_remote()));
    connect(this, SIGNAL(remoteAdded(GList *, remote_options*)), parent, SIGNAL(remoteAdded(GList *, remote_options*)));
    connect(ui->hostCombo, SIGNAL(currentIndexChanged(QString)), this, SLOT(hostChanged(QString)));
}
Beispiel #7
0
void RunDialog::on_editButton_clicked()
{
    activateConfiguration();
    Configuration* pConfig = Configuration::getConfig();
    pConfig->setString("contigFileName", ui->contigFileName->text().toStdString());

    SettingsDialog settingsDialog(this);
    settingsDialog.exec();

    if(settingsDialog.result() == QDialog::Accepted) {
        fillComboBox();
        int index = ui->configurationComboBox->findText(QString::fromStdString(pConfig->getName()));
        ui->configurationComboBox->setCurrentIndex(index);
    }
}
Beispiel #8
0
void KstViewFitsDialog::updateViewFitsDialog() {
/* xxx
  if (_comboBoxFits->listBox()->isVisible()) {
    QTimer::singleShot(250, this, SLOT(updateViewFitsDialog()));
  } else {
*/
    QString old;
    if (_comboBoxFits->count() > 0) {
      int idx;

      idx = _comboBoxFits->currentIndex();
      old = _comboBoxFits->itemText(idx);
    }
    fillComboBox(old);
// xxx  }
}
Beispiel #9
0
RunDialog::RunDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::RunDialog), _pRun(NULL)
{
    ui->setupUi(this);

    Configuration* pConfig = Configuration::getConfig();
    string contigFileName = pConfig->getString("contigFileName");
    if(!contigFileName.empty()) {
        ui->contigFileName->setText(QString::fromStdString(contigFileName));
        ui->runButton->setEnabled(true);
    }

    ui->runName->setText(QString().fromStdString(pConfig->getString("outputDirectory")));
    fillComboBox();
}
DocumentPropertiesDialog::DocumentPropertiesDialog (QWidget *parent, Qt::WindowFlags f) :
  QDialog(parent, f),
  ui(new Ui::DocumentPropertiesDialog)
{
  ui->setupUi(this);
  setAttribute ( Qt::WA_DeleteOnClose );  

  initialActions();
  fillComboBox();

  piModel = new QStringListModel( this );
  ui->listViewPI->setModel ( piModel );

  connect ( ui->listViewPI->selectionModel(), SIGNAL( currentChanged (QModelIndex, QModelIndex) ), this, SLOT( indexChanged (QModelIndex, QModelIndex) ) );
  connect ( ui->pushButtonPIAdd, SIGNAL ( clicked () ), this, SLOT ( piAdd () ) );
  connect ( ui->pushButtonPIRemove, SIGNAL ( clicked () ), this, SLOT ( piRemove () ) );
  connect ( ui->lineEditPITarget, SIGNAL ( textEdited (QString) ), this, SLOT (piTargetChanged(QString)) );
  connect ( ui->lineEditPIData, SIGNAL ( textEdited (QString) ), this, SLOT (piDataChanged(QString)) );

  ui->groupBoxPIEdit->setVisible ( ui->pushButtonPIEditToggle->isChecked() );
}
Beispiel #11
0
QWidget *ProblemWidget::createControlsGeneral()
{
    // problem
    txtName = new QLineEdit("");

    // fill combobox
    fillComboBox();

    // general
    QGridLayout *layoutGeneral = new QGridLayout();
    layoutGeneral->setColumnMinimumWidth(0, minWidth);
    layoutGeneral->setColumnStretch(1, 1);
    layoutGeneral->addWidget(new QLabel(tr("Linear solver:")), 1, 0);

    QGroupBox *grpGeneral = new QGroupBox(tr("General"));
    grpGeneral->setLayout(layoutGeneral);

    // both
    QVBoxLayout *layoutPanel = new QVBoxLayout();
    layoutPanel->addWidget(grpGeneral);
    layoutPanel->addStretch();

    // name
    QGridLayout *layoutName = new QGridLayout();
    layoutName->addWidget(new QLabel(tr("Name:")), 0, 0);
    layoutName->addWidget(txtName, 0, 1);

    QVBoxLayout *layoutProblem = new QVBoxLayout();
    layoutProblem->addLayout(layoutName);
    layoutProblem->addLayout(layoutPanel);
    layoutProblem->addStretch();

    QWidget *widMain = new QWidget();
    widMain->setLayout(layoutProblem);

    return widMain;
}
Beispiel #12
0
QLayout* SceneLabelDialog::createContent()
{
    logMessage("DSceneLabel::createContent()");

    txtPointX = new ValueLineEdit();
    txtPointY = new ValueLineEdit();
    connect(txtPointX, SIGNAL(evaluated(bool)), this, SLOT(evaluated(bool)));
    connect(txtPointY, SIGNAL(evaluated(bool)), this, SLOT(evaluated(bool)));
    cmbMaterial = new QComboBox();
    connect(cmbMaterial, SIGNAL(currentIndexChanged(int)), this, SLOT(doMaterialChanged(int)));
    btnMaterial = new QPushButton(icon("three-dots"), "");
    btnMaterial->setMaximumSize(btnMaterial->sizeHint());
    connect(btnMaterial, SIGNAL(clicked()), this, SLOT(doMaterialClicked()));
    txtArea = new ValueLineEdit();
    txtArea->setMinimum(0.0);
    connect(txtArea, SIGNAL(evaluated(bool)), this, SLOT(evaluated(bool)));
    txtPolynomialOrder = new QSpinBox(this);
    txtPolynomialOrder->setMinimum(0);
    txtPolynomialOrder->setMaximum(10);

    // coordinates must be greater then or equal to 0 (axisymmetric case)
    if (Util::scene()->problemInfo()->problemType == ProblemType_Axisymmetric)
        txtPointX->setMinimum(0.0);

    // coordinates
    QFormLayout *layoutCoordinates = new QFormLayout();
    layoutCoordinates->addRow(Util::scene()->problemInfo()->labelX() + " (m):", txtPointX);
    layoutCoordinates->addRow(Util::scene()->problemInfo()->labelY() + " (m):", txtPointY);

    QGroupBox *grpCoordinates = new QGroupBox(tr("Coordinates"));
    grpCoordinates->setLayout(layoutCoordinates);

    // marker
    QHBoxLayout *layoutMaterial = new QHBoxLayout();
    layoutMaterial->addWidget(cmbMaterial);
    layoutMaterial->addWidget(btnMaterial);

    // order
    chkPolynomialOrder = new QCheckBox();
    connect(chkPolynomialOrder, SIGNAL(stateChanged(int)), this, SLOT(doPolynomialOrder(int)));

    QHBoxLayout *layoutPolynomialOrder = new QHBoxLayout();
    layoutPolynomialOrder->addWidget(chkPolynomialOrder);
    layoutPolynomialOrder->addWidget(txtPolynomialOrder);
    layoutPolynomialOrder->addWidget(new QLabel(tr("Global order is %1.").arg(Util::scene()->problemInfo()->polynomialOrder)));

    // area
    chkArea = new QCheckBox();
    connect(chkArea, SIGNAL(stateChanged(int)), this, SLOT(doArea(int)));

    QHBoxLayout *layoutArea = new QHBoxLayout();
    layoutArea->addWidget(chkArea);
    layoutArea->addWidget(txtArea);

    // mesh
    QFormLayout *layoutMeshParameters = new QFormLayout();
    layoutMeshParameters->addRow(tr("Triangle area (m):"), layoutArea);
    layoutMeshParameters->addRow(tr("Polynomial order (-):"), layoutPolynomialOrder);

    QGroupBox *grpMeshParameters = new QGroupBox(tr("Mesh parameters"));
    grpMeshParameters->setLayout(layoutMeshParameters);

    QFormLayout *layout = new QFormLayout();
    layout->addRow(tr("Material:"), layoutMaterial);
    layout->addRow(grpCoordinates);
    layout->addRow(grpMeshParameters);

    fillComboBox();

    return layout;
}
Beispiel #13
0
QLayout* SceneEdgeDialog::createContent()
{
    logMessage("DSceneEdge::createContent()");

    cmbNodeStart = new QComboBox();
    cmbNodeEnd = new QComboBox();
    connect(cmbNodeStart, SIGNAL(currentIndexChanged(int)), this, SLOT(doNodeChanged()));
    connect(cmbNodeEnd, SIGNAL(currentIndexChanged(int)), this, SLOT(doNodeChanged()));
    cmbBoundary = new QComboBox();
    connect(cmbBoundary, SIGNAL(currentIndexChanged(int)), this, SLOT(doBoundaryChanged(int)));
    btnBoundary = new QPushButton(icon("three-dots"), "");
    btnBoundary->setMaximumSize(btnBoundary->sizeHint());
    connect(btnBoundary, SIGNAL(clicked()), this, SLOT(doBoundaryClicked()));
    txtAngle = new ValueLineEdit();
    txtAngle->setMinimum(0.0);
    txtAngle->setMaximum(90.0);
    connect(txtAngle, SIGNAL(evaluated(bool)), this, SLOT(evaluated(bool)));
    txtRefineTowardsEdge = new QSpinBox(this);
    txtRefineTowardsEdge->setMinimum(0);
    txtRefineTowardsEdge->setMaximum(10);
    lblLength = new QLabel();

    // coordinates
    QFormLayout *layoutCoordinates = new QFormLayout();
    layoutCoordinates->addRow(tr("Start point:"), cmbNodeStart);
    layoutCoordinates->addRow(tr("End point:"), cmbNodeEnd);
    layoutCoordinates->addRow(tr("Angle (deg.):"), txtAngle);

    QGroupBox *grpCoordinates = new QGroupBox(tr("Coordinates"));
    grpCoordinates->setLayout(layoutCoordinates);

    // marker
    QHBoxLayout *layoutBoundary = new QHBoxLayout();
    layoutBoundary->addWidget(cmbBoundary);
    layoutBoundary->addWidget(btnBoundary);

    // refine towards edge
    chkRefineTowardsEdge = new QCheckBox();
    connect(chkRefineTowardsEdge, SIGNAL(stateChanged(int)), this, SLOT(doRefineTowardsEdge(int)));

    QHBoxLayout *layoutRefineTowardsEdge = new QHBoxLayout();
    layoutRefineTowardsEdge->addStretch(1);
    layoutRefineTowardsEdge->addWidget(chkRefineTowardsEdge);
    layoutRefineTowardsEdge->addWidget(txtRefineTowardsEdge);

    // mesh
    QFormLayout *layoutMeshParameters = new QFormLayout();
    layoutMeshParameters->addRow(tr("Refine towards edge:"), layoutRefineTowardsEdge);

    QGroupBox *grpMeshParameters = new QGroupBox(tr("Mesh parameters"));
    grpMeshParameters->setLayout(layoutMeshParameters);

    // layout
    QFormLayout *layout = new QFormLayout();
    layout->addRow(tr("Boundary condition:"), layoutBoundary);
    layout->addRow(grpCoordinates);
    layout->addRow(grpMeshParameters);
    layout->addRow(tr("Length:"), lblLength);

    fillComboBox();

    return layout;
}
Beispiel #14
0
void CampaignDetails::setDataInternal(const QMap<QString, QString> &)
{
    fillComboBox(mUi->status, KDCRMFields::status());
    fillComboBox(mUi->campaign_type, KDCRMFields::campaignType());
}
Beispiel #15
0
void KstViewFitsDialog::showViewFitsDialog(const QString& fit) {
  fillComboBox(fit);
}
Beispiel #16
0
void QtVoxOxCallBarFrame::setCUserProfile(CUserProfile* cUserProfile) {
	_cUserProfile = cUserProfile;
	fillComboBox();
	fillCompletionList();
}
Beispiel #17
0
 bool MenuList::init()
 {
     fillComboBox();
     return Super::init();
 }
Beispiel #18
0
QWidget *ProblemDialog::createControlsGeneral()
{
    logMessage("ProblemDialog::createControlsGeneral()");

    // equations
    lblEquationPixmap = new QLabel("");
    lblEquationPixmap->setMinimumHeight(50);

    // problem
    cmbProblemType = new QComboBox();
    cmbPhysicField = new QComboBox();
    txtName = new QLineEdit("");
    dtmDate = new QDateTimeEdit();
    dtmDate->setDisplayFormat("dd.MM.yyyy");
    dtmDate->setCalendarPopup(true);
    cmbAdaptivityType = new QComboBox();
    txtAdaptivitySteps = new QSpinBox(this);
    txtAdaptivitySteps->setMinimum(1);
    txtAdaptivitySteps->setMaximum(100);
    txtAdaptivityTolerance = new SLineEditDouble(1, true);
    txtAdaptivityTolerance->setBottom(0.0);
    cmbMatrixSolver = new QComboBox();

    // mesh
    txtNumberOfRefinements = new QSpinBox(this);
    txtNumberOfRefinements->setMinimum(0);
    txtNumberOfRefinements->setMaximum(5);
    txtPolynomialOrder = new QSpinBox(this);
    txtPolynomialOrder->setMinimum(1);
    txtPolynomialOrder->setMaximum(10);
    cmbMeshType = new QComboBox();

    // harmonic
    txtFrequency = new SLineEditDouble();

    // transient
    cmbAnalysisType = new QComboBox();
    txtTransientTimeStep = new ValueLineEdit();
    txtTransientTimeTotal = new ValueLineEdit();
    txtTransientInitialCondition = new ValueLineEdit();
    lblTransientSteps = new QLabel("0");

    // linearity
    cmbLinearityType = new QComboBox();
    txtLinearityNonlinearitySteps = new QSpinBox(this);
    txtLinearityNonlinearitySteps->setMinimum(1);
    txtLinearityNonlinearitySteps->setMaximum(100);
    txtLinearityNonlinearityTolerance = new SLineEditDouble(1);

    connect(txtTransientTimeStep, SIGNAL(editingFinished()), this, SLOT(doTransientChanged()));
    connect(txtTransientTimeTotal, SIGNAL(editingFinished()), this, SLOT(doTransientChanged()));

    connect(cmbPhysicField, SIGNAL(currentIndexChanged(int)), this, SLOT(doPhysicFieldChanged(int)));
    connect(cmbAdaptivityType, SIGNAL(currentIndexChanged(int)), this, SLOT(doAdaptivityChanged(int)));
    connect(cmbAnalysisType, SIGNAL(currentIndexChanged(int)), this, SLOT(doAnalysisTypeChanged(int)));
    connect(cmbLinearityType, SIGNAL(currentIndexChanged(int)), this, SLOT(doLinearityTypeChanged(int)));
    fillComboBox();

    int minWidth = 130;

    // table
    QGridLayout *layoutTable = new QGridLayout();
    layoutTable->setColumnMinimumWidth(0, minWidth);
    layoutTable->setColumnStretch(1, 1);
    layoutTable->addWidget(new QLabel(tr("Date:")), 2, 0);
    layoutTable->addWidget(dtmDate, 2, 1);
    layoutTable->addWidget(new QLabel(tr("Physic field:")), 3, 0);
    layoutTable->addWidget(cmbPhysicField, 3, 1);
    layoutTable->addWidget(new QLabel(tr("Problem type:")), 4, 0);
    layoutTable->addWidget(cmbProblemType, 4, 1);
    layoutTable->addWidget(new QLabel(tr("Type of analysis:")), 5, 0);
    layoutTable->addWidget(cmbAnalysisType, 5, 1);
    layoutTable->addWidget(new QLabel(tr("Adaptivity:")), 6, 0);
    layoutTable->addWidget(cmbAdaptivityType, 6, 1);
    layoutTable->addWidget(new QLabel(tr("Linearity:")), 7, 0);
    layoutTable->addWidget(cmbLinearityType, 7, 1);
    layoutTable->addWidget(new QLabel(tr("Linear solver:")), 8, 0);
    layoutTable->addWidget(cmbMatrixSolver, 8, 1);

    // harmonic analysis
    QGridLayout *layoutHarmonicAnalysis = new QGridLayout();
    layoutHarmonicAnalysis->setColumnMinimumWidth(0, minWidth);
    layoutHarmonicAnalysis->addWidget(new QLabel(tr("Frequency (Hz):")), 0, 0);
    layoutHarmonicAnalysis->addWidget(txtFrequency, 0, 1);

    QGroupBox *grpHarmonicAnalysis = new QGroupBox(tr("Harmonic analysis"));
    grpHarmonicAnalysis->setLayout(layoutHarmonicAnalysis);

    // harmonic analysis
    QGridLayout *layoutTransientAnalysis = new QGridLayout();
    layoutTransientAnalysis->setColumnMinimumWidth(0, minWidth);
    layoutTransientAnalysis->setColumnStretch(1, 1);
    layoutTransientAnalysis->addWidget(new QLabel(tr("Time step (s):")), 0, 0);
    layoutTransientAnalysis->addWidget(txtTransientTimeStep, 0, 1);
    layoutTransientAnalysis->addWidget(new QLabel(tr("Total time (s):")), 1, 0);
    layoutTransientAnalysis->addWidget(txtTransientTimeTotal, 1, 1);
    layoutTransientAnalysis->addWidget(new QLabel(tr("Initial condition:")), 2, 0);
    layoutTransientAnalysis->addWidget(txtTransientInitialCondition, 2, 1);
    layoutTransientAnalysis->addWidget(new QLabel(tr("Steps:")), 3, 0);
    layoutTransientAnalysis->addWidget(lblTransientSteps, 3, 1);

    QGroupBox *grpTransientAnalysis = new QGroupBox(tr("Transient analysis"));
    grpTransientAnalysis->setLayout(layoutTransientAnalysis);

    // harmonic analysis
    QGridLayout *layoutMesh = new QGridLayout();
    layoutMesh->setColumnMinimumWidth(0, minWidth);
    layoutMesh->setColumnStretch(1, 1);
    layoutMesh->addWidget(new QLabel(tr("Mesh type:")), 0, 0);
    layoutMesh->addWidget(cmbMeshType, 0, 1);
    layoutMesh->addWidget(new QLabel(tr("Number of refinements:")), 1, 0);
    layoutMesh->addWidget(txtNumberOfRefinements, 1, 1);
    layoutMesh->addWidget(new QLabel(tr("Polynomial order:")), 2, 0);
    layoutMesh->addWidget(txtPolynomialOrder, 2, 1);

    QGroupBox *grpMesh = new QGroupBox(tr("Mesh parameters"));
    grpMesh->setLayout(layoutMesh);

    // adaptivity
    QGridLayout *layoutAdaptivity = new QGridLayout();
    layoutAdaptivity->setColumnMinimumWidth(0, minWidth);
    layoutAdaptivity->setColumnStretch(1, 1);
    layoutAdaptivity->addWidget(new QLabel(tr("Adaptivity steps:")), 0, 0);
    layoutAdaptivity->addWidget(txtAdaptivitySteps, 0, 1);
    layoutAdaptivity->addWidget(new QLabel(tr("Adaptivity tolerance (%):")), 1, 0);
    layoutAdaptivity->addWidget(txtAdaptivityTolerance, 1, 1);

    QGroupBox *grpAdaptivity = new QGroupBox(tr("Adaptivity"));
    grpAdaptivity->setLayout(layoutAdaptivity);

    // linearity
    QGridLayout *layoutLinearity = new QGridLayout();
    layoutLinearity->setColumnMinimumWidth(0, minWidth);
    layoutLinearity->setColumnStretch(1, 1);
    layoutLinearity->addWidget(new QLabel(tr("Nonlin. tolerance (%):")), 0, 0);
    layoutLinearity->addWidget(txtLinearityNonlinearityTolerance, 0, 1);
    layoutLinearity->addWidget(new QLabel(tr("Nonlin. steps:")), 1, 0);
    layoutLinearity->addWidget(txtLinearityNonlinearitySteps, 1, 1);

    QGroupBox *grpLinearity = new QGroupBox(tr("Linearity"));
    grpLinearity->setLayout(layoutLinearity);
    grpLinearity->setVisible(Util::config()->showExperimentalFeatures);

    // left
    QVBoxLayout *layoutLeft = new QVBoxLayout();
    layoutLeft->addLayout(layoutTable);
    // layoutLeft->addWidget(grpAdaptivity);
    layoutLeft->addStretch();
    // layoutLeft->addWidget(grpLinearity);
    layoutLeft->addWidget(grpMesh);

    // right
    QVBoxLayout *layoutRight = new QVBoxLayout();
    layoutRight->addWidget(grpHarmonicAnalysis);
    layoutRight->addWidget(grpTransientAnalysis);
    // layoutRight->addWidget(grpMesh);
    layoutRight->addWidget(grpAdaptivity);
    layoutRight->addWidget(grpLinearity);
    layoutRight->addStretch();

    // both
    QHBoxLayout *layoutPanel = new QHBoxLayout();
    layoutPanel->addLayout(layoutLeft);
    layoutPanel->addLayout(layoutRight);

    // name
    QGridLayout *layoutName = new QGridLayout();
    layoutName->setColumnMinimumWidth(0, minWidth);
    layoutName->setColumnStretch(1, 1);
    layoutName->addWidget(new QLabel(tr("Name:")), 0, 0);
    layoutName->addWidget(txtName, 0, 1);

    // equation
    QGridLayout *layoutEquation = new QGridLayout();
    layoutEquation->setColumnMinimumWidth(0, minWidth);
    layoutEquation->setColumnStretch(1, 1);
    layoutEquation->addWidget(new QLabel(tr("Equation:")), 0, 0);
    layoutEquation->addWidget(lblEquationPixmap, 0, 1, 1, 1, Qt::AlignLeft);

    QVBoxLayout *layoutProblem = new QVBoxLayout();
    layoutProblem->addLayout(layoutName);
    layoutProblem->addLayout(layoutEquation);
    layoutProblem->addLayout(layoutPanel);

    QWidget *widMain = new QWidget();
    widMain->setLayout(layoutProblem);

    return widMain;
}