File indexing completed on 2024-04-28 03:51:14
0001 /*. 0002 SPDX-FileCopyrightText: 2007 Vladimir Kuznetsov <ks.vladimir@gmail.com> 0003 SPDX-FileCopyrightText: 2014 Inge Wallin <inge@lysator.liu.se> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "gascreationdialog.h" 0009 0010 #include <float.h> 0011 0012 #include <QDialogButtonBox> 0013 #include <QPushButton> 0014 #include <QRegularExpressionValidator> 0015 #include <QVBoxLayout> 0016 0017 #include <KLocalizedString> 0018 0019 #include <stepcore/gas.h> 0020 0021 #include "gasgraphics.h" 0022 #include "ui_create_gas_particles.h" 0023 0024 0025 GasCreationDialog::GasCreationDialog(GasMenuHandler* handler, StepCore::Gas *gas, 0026 QWidget *parent) 0027 : QDialog(parent) 0028 , _gas(gas) 0029 , _handler(handler) 0030 { 0031 setWindowTitle(i18nc("@title:window", "Create Gas Particles")); 0032 QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok|QDialogButtonBox::Cancel); 0033 QWidget *mainWidget = new QWidget(this); 0034 QVBoxLayout *mainLayout = new QVBoxLayout; 0035 setLayout(mainLayout); 0036 mainLayout->addWidget(mainWidget); 0037 QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok); 0038 okButton->setDefault(true); 0039 okButton->setShortcut(Qt::CTRL | Qt::Key_Return); 0040 connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); 0041 connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); 0042 //PORTING SCRIPT: WARNING mainLayout->addWidget(buttonBox) must be last item in layout. Please move it. 0043 mainLayout->addWidget(buttonBox); 0044 0045 // Create the actual UI. 0046 _ui = new Ui::WidgetCreateGasParticles; 0047 _ui->setupUi(mainWidget); 0048 0049 // Create validators for all input fields. 0050 _ui->lineEditMass->setValidator( 0051 new QDoubleValidator(0, HUGE_VAL, DBL_DIG, 0052 _ui->lineEditMass)); 0053 _ui->lineEditCount->setValidator( 0054 new QIntValidator(0, INT_MAX, 0055 _ui->lineEditCount)); 0056 _ui->lineEditConcentration->setValidator( 0057 new QDoubleValidator(0, HUGE_VAL, DBL_DIG, 0058 _ui->lineEditConcentration)); 0059 _ui->lineEditTemperature->setValidator( 0060 new QDoubleValidator(0, HUGE_VAL, DBL_DIG, 0061 _ui->lineEditTemperature)); 0062 _ui->lineEditMeanVelocity->setValidator( 0063 new QRegularExpressionValidator(QRegularExpression("^\\([+-]?\\d+(\\.\\d*)?([eE]\\d*)?,[+-]?\\d+(\\.\\d*)?([eE]\\d*)?\\)$"), 0064 _ui->lineEditMeanVelocity)); 0065 0066 _ui->lineEditVolume->setText(QString::number(_gas->rectVolume())); 0067 } 0068 0069 0070 Ui::WidgetCreateGasParticles *GasCreationDialog::ui() 0071 { 0072 return _ui; 0073 } 0074 0075 #include "moc_gascreationdialog.cpp"