From 4950c433f10aa481691c64d95b962791d724a42a Mon Sep 17 00:00:00 2001 From: Ruben Undheim Date: Sun, 2 Sep 2018 01:07:06 +0200 Subject: Import openems_0.0.35+dfsg.1.orig.tar.bz2 [dgit import orig openems_0.0.35+dfsg.1.orig.tar.bz2] --- QCSXCAD/QCSPrimEditor.cpp | 746 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 746 insertions(+) create mode 100644 QCSXCAD/QCSPrimEditor.cpp (limited to 'QCSXCAD/QCSPrimEditor.cpp') diff --git a/QCSXCAD/QCSPrimEditor.cpp b/QCSXCAD/QCSPrimEditor.cpp new file mode 100644 index 0000000..63b4896 --- /dev/null +++ b/QCSXCAD/QCSPrimEditor.cpp @@ -0,0 +1,746 @@ +/* +* Copyright (C) 2008,2009,2010 Thorsten Liebig (Thorsten.Liebig@gmx.de) +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License as published +* by the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, see . +*/ + +#include +#include +#include +#include +#include + +#include "QCSPrimEditor.h" +#include "QCSXCAD_Global.h" + +#include "CSPrimPoint.h" +#include "CSPrimBox.h" +#include "CSPrimMultiBox.h" +#include "CSPrimSphere.h" +#include "CSPrimSphericalShell.h" +#include "CSPrimCylinder.h" +#include "CSPrimCylindricalShell.h" +#include "CSPrimPolygon.h" +#include "CSPrimLinPoly.h" +#include "CSPrimRotPoly.h" +#include "CSPrimCurve.h" +#include "CSPrimWire.h" +#include "CSPrimUserDefined.h" + +QCSPrimEditor::QCSPrimEditor(ContinuousStructure *CS, CSPrimitives* prim, QWidget* parent) : QDialog(parent) +{ + clCS=CS; + CSPrim=prim; + + MainLayout = new QVBoxLayout(); + + switch (CSPrim->GetType()) + { + case CSPrimitives::BOX: + CSPrimEdit = new QCSPrimBoxLayout(CSPrim->ToBox()); + setWindowTitle(tr("Box Editor")); + break; + case CSPrimitives::MULTIBOX: + CSPrimEdit = new QCSPrimMultiBoxLayout(CSPrim->ToMultiBox()); + setWindowTitle(tr("Multi-Box Editor")); + break; + case CSPrimitives::SPHERE: + CSPrimEdit = new QCSPrimSphereLayout(CSPrim->ToSphere()); + setWindowTitle(tr("Sphere Editor")); + break; + case CSPrimitives::CYLINDER: + CSPrimEdit = new QCSPrimCylinderLayout(CSPrim->ToCylinder()); + setWindowTitle(tr("Cylinder Editor")); + break; + case CSPrimitives::CYLINDRICALSHELL: + CSPrimEdit = new QCSPrimCylindricalShellLayout(CSPrim->ToCylindricalShell()); + setWindowTitle(tr("CylindricalShell Editor")); + break; + case CSPrimitives::POLYGON: + CSPrimEdit = new QCSPrimPolygonLayout(CSPrim->ToPolygon()); + setWindowTitle(tr("Polygon Editor")); + break; + case CSPrimitives::USERDEFINED: + CSPrimEdit = new QCSPrimUserDefinedLayout(CSPrim->ToUserDefined()); + setWindowTitle(tr("User Defined Primitive Editor")); + break; + default: + setWindowTitle(tr("default Editor")); + CSPrimEdit = new QCSPrimitiveLayout(CSPrim); + break; + }; + + MainLayout->addWidget(BuildGeneral()); + + QGroupBox* gb = new QGroupBox(tr("Geometrical Properties")); + gb->setLayout(CSPrimEdit); + + MainLayout->addWidget(gb); + + MainLayout->addStretch(); + + MainLayout->addLayout(BuildButtons()); + + + setLayout(MainLayout); + + setAttribute(Qt::WA_DeleteOnClose, true); + setWindowModality(Qt::ApplicationModal); +} + +QCSPrimEditor::~QCSPrimEditor() +{ +} + +void QCSPrimEditor::Reset() +{ + PrioSpinBox->setValue(CSPrim->GetPriority()); + UpdatePropertyCB(); + CSPrimEdit->GetValues(); +} + +void QCSPrimEditor::Save() +{ + CSPrim->SetPriority(PrioSpinBox->value()); + CSProperties* prop = clCS->GetProperty((unsigned int)PropertiesComboBox->currentIndex()); + if (prop==NULL) + { + std::cerr << __func__ << ": Error, property invalid!" << std::endl; + reject(); + return; + } + if (prop!=CSPrim->GetProperty()) + prop->AddPrimitive(CSPrim); + CSPrimEdit->SetValues(); + accept(); +} + +void QCSPrimEditor::Cancel() +{ + reject(); +} + +QGroupBox* QCSPrimEditor::BuildGeneral() +{ + QGroupBox* box= new QGroupBox("General"); + QGridLayout* grid = new QGridLayout(); + + grid->addWidget(new QLabel(QString(tr("ID: %1")).arg(CSPrim->GetID())),0,0); + + grid->addWidget(new QLabel(tr("Priority: ")),0,1); + PrioSpinBox = new QSpinBox(); + PrioSpinBox->setRange(-1,1000); + PrioSpinBox->setValue(CSPrim->GetPriority()); + PrioSpinBox->setEnabled(QCSX_Settings.GetEdit()); + grid->addWidget(PrioSpinBox,0,2); + PropertiesComboBox = new QComboBox(); + PropertiesComboBox->setEnabled(QCSX_Settings.GetEdit()); + + UpdatePropertyCB(); + + grid->addWidget(new QLabel(QString(tr("Choose Property: "))),1,0); + grid->addWidget(PropertiesComboBox,1,1,1,2); + + box->setLayout(grid); + + return box; +} + +QLayout* QCSPrimEditor::BuildButtons() +{ + QHBoxLayout* lay = new QHBoxLayout(); + + QPushButton* ok = new QPushButton(tr("Ok")); + QObject::connect(ok,SIGNAL(clicked()),this,SLOT(Save())); + lay->addWidget(ok); + if (QCSX_Settings.GetEdit()) + { + QPushButton* reset = new QPushButton(tr("Reset")); + QObject::connect(reset,SIGNAL(clicked()),this,SLOT(Reset())); + lay->addWidget(reset); + QPushButton* cancel = new QPushButton(tr("Cancel")); + QObject::connect(cancel,SIGNAL(clicked()),this,SLOT(Cancel())); + lay->addWidget(cancel); + } + + lay->addStretch(); + return lay; +} + +void QCSPrimEditor::UpdatePropertyCB() +{ + PropertiesComboBox->clear(); + for (size_t i=0;iGetQtyProperties();++i) + { + QString str; + CSProperties* prop=clCS->GetProperty(i); + if (prop==NULL) break; + str=QString(prop->GetName().c_str()); + switch (prop->GetType()) + { + case CSProperties::UNKNOWN: + str+=tr(" (Unknown)"); + break; + case CSProperties::MATERIAL: + str+=tr(" (Material)"); + break; + case CSProperties::METAL: + str+=tr(" (Metal)"); + break; + case CSProperties::EXCITATION: + str+=tr(" (Excitation)"); + break; + case CSProperties::PROBEBOX: + str+=tr(" (Charge-Box)"); + break; + case CSProperties::RESBOX: + str+=tr(" (Res-Box)"); + break; + case CSProperties::DUMPBOX: + str+=tr(" (Dump-Box)"); + break; + }; + PropertiesComboBox->addItem(str); + } + + CSProperties* prop=CSPrim->GetProperty(); + if (prop==NULL) PropertiesComboBox->setCurrentIndex(0); + else PropertiesComboBox->setCurrentIndex(prop->GetID()); +} + +QCSPrimitiveLayout::QCSPrimitiveLayout(CSPrimitives *prim, QWidget *parent) : QGridLayout(parent) +{ + clPrim = prim; +} + +QCSPrimitiveLayout::~QCSPrimitiveLayout() +{ +} + +void QCSPrimitiveLayout::SetValues() +{ +} + +void QCSPrimitiveLayout::GetValues() +{ +} + + +QCSPrimBoxLayout::QCSPrimBoxLayout(CSPrimBox* prim, QWidget *parent) : QCSPrimitiveLayout(prim, parent) +{ + clBox=prim; + + addWidget(new QLabel(tr("1. Point")),0,0,1,6); + addWidget(new QLabel("X:"),1,0); + Lines[0]=new QLineEdit(); + addWidget(Lines[0],1,1); + addWidget(new QLabel("Y:"),1,2); + Lines[2]=new QLineEdit(); + addWidget(Lines[2],1,3); + addWidget(new QLabel("Z:"),1,4); + Lines[4]=new QLineEdit(); + addWidget(Lines[4],1,5); + + addWidget(new QLabel(tr("2. Point")),2,0,1,6); + addWidget(new QLabel("X:"),3,0); + Lines[1]=new QLineEdit();addWidget(Lines[1],3,1); + addWidget(new QLabel("Y:"),3,2); + Lines[3]=new QLineEdit();addWidget(Lines[3],3,3); + addWidget(new QLabel("Z:"),3,4); + Lines[5]=new QLineEdit();addWidget(Lines[5],3,5); + + for (int i=0;i<6;++i) + Lines[i]->setEnabled(QCSX_Settings.GetEdit()); + + GetValues(); +} + +QCSPrimBoxLayout::~QCSPrimBoxLayout() +{ +} + +void QCSPrimBoxLayout::SetValues() +{ + bool bOk; + double dVal; + QString line; + for (size_t i=0; i< 6; ++i) + { + line=Lines[i]->text(); + dVal=line.toDouble(&bOk); + if (bOk) clBox->SetCoord(i,dVal); + else clBox->SetCoord(i,line.toStdString()); + } +} + +void QCSPrimBoxLayout::GetValues() +{ + ParameterScalar* ps; + for (size_t i=0; i< 6; ++i) + { + ps=clBox->GetCoordPS(i); + if (ps->GetMode()) Lines[i]->setText(ps->GetString().c_str()); + else Lines[i]->setText(QString("%1").arg(ps->GetValue())); + } +} + +QCSPrimSphereLayout::QCSPrimSphereLayout(CSPrimSphere* prim, QWidget *parent) : QCSPrimitiveLayout(prim, parent) +{ + clSphere=prim; + + addWidget(new QLabel(tr("Center Point")),0,0,1,6); + addWidget(new QLabel("X:"),1,0); + Lines[0]=new QLineEdit();addWidget(Lines[0],1,1); + addWidget(new QLabel("Y:"),1,2); + Lines[1]=new QLineEdit();addWidget(Lines[1],1,3); + addWidget(new QLabel("Z:"),1,4); + Lines[2]=new QLineEdit();addWidget(Lines[2],1,5); + + addWidget(new QLabel(tr("Radius")),2,0,1,2); + Lines[3]=new QLineEdit();addWidget(Lines[3],2,3,1,4); + + for (int i=0;i<4;++i) + Lines[i]->setEnabled(QCSX_Settings.GetEdit()); + + GetValues(); +} + +QCSPrimSphereLayout::~QCSPrimSphereLayout() +{ +} + +void QCSPrimSphereLayout::SetValues() +{ + bool bOk; + double dVal; + QString line; + for (size_t i=0; i< 3; ++i) + { + line=Lines[i]->text(); + dVal=line.toDouble(&bOk); + if (bOk) clSphere->SetCoord(i,dVal); + else clSphere->SetCoord(i,line.toLatin1().data()); + } + + ParameterScalar* ps=clSphere->GetRadiusPS(); + line=Lines[3]->text(); + dVal=line.toDouble(&bOk); + if (bOk) ps->SetValue(dVal); + else ps->SetValue(line.toLatin1().data()); + +} + +void QCSPrimSphereLayout::GetValues() +{ + ParameterScalar* ps; + for (size_t i=0; i< 3; ++i) + { + ps=clSphere->GetCoordPS(i); + if (ps->GetMode()) Lines[i]->setText(ps->GetString().c_str()); + else Lines[i]->setText(QString("%1").arg(ps->GetValue())); + } + + ps=clSphere->GetRadiusPS(); + if (ps->GetMode()) Lines[3]->setText(ps->GetString().c_str()); + else Lines[3]->setText(QString("%1").arg(ps->GetValue())); +} + +//****Cylinder +QCSPrimCylinderLayout::QCSPrimCylinderLayout(CSPrimCylinder* prim, QWidget *parent) : QCSPrimitiveLayout(prim, parent) +{ + clCylinder=prim; + + addWidget(new QLabel(tr("Start Point")),0,0,1,6); + addWidget(new QLabel("X:"),1,0); + Lines[0]=new QLineEdit();addWidget(Lines[0],1,1); + addWidget(new QLabel("Y:"),1,2); + Lines[2]=new QLineEdit();addWidget(Lines[2],1,3); + addWidget(new QLabel("Z:"),1,4); + Lines[4]=new QLineEdit();addWidget(Lines[4],1,5); + + addWidget(new QLabel(tr("End Point")),2,0,1,6); + addWidget(new QLabel("X:"),3,0); + Lines[1]=new QLineEdit();addWidget(Lines[1],3,1); + addWidget(new QLabel("Y:"),3,2); + Lines[3]=new QLineEdit();addWidget(Lines[3],3,3); + addWidget(new QLabel("Z:"),3,4); + Lines[5]=new QLineEdit();addWidget(Lines[5],3,5); + + addWidget(new QLabel(tr("Radius")),4,0,1,2); + Lines[6]=new QLineEdit();addWidget(Lines[6],4,3,1,4); + + for (int i=0;i<7;++i) + Lines[i]->setEnabled(QCSX_Settings.GetEdit()); + + GetValues(); +} + +QCSPrimCylinderLayout::~QCSPrimCylinderLayout() +{ +} + +void QCSPrimCylinderLayout::SetValues() +{ + bool bOk; + double dVal; + QString line; + for (size_t i=0; i< 6; ++i) + { + line=Lines[i]->text(); + dVal=line.toDouble(&bOk); + if (bOk) clCylinder->SetCoord(i,dVal); + else clCylinder->SetCoord(i,line.toLatin1().data()); + } + + ParameterScalar* ps=clCylinder->GetRadiusPS(); + line=Lines[6]->text(); + dVal=line.toDouble(&bOk); + if (bOk) ps->SetValue(dVal); + else ps->SetValue(line.toLatin1().data()); + +} + +void QCSPrimCylinderLayout::GetValues() +{ + ParameterScalar* ps; + for (size_t i=0; i< 6; ++i) + { + ps=clCylinder->GetCoordPS(i); + if (ps->GetMode()) Lines[i]->setText(ps->GetString().c_str()); + else Lines[i]->setText(QString("%1").arg(ps->GetValue())); + } + ps=clCylinder->GetRadiusPS(); + if (ps->GetMode()) Lines[6]->setText(ps->GetString().c_str()); + else Lines[6]->setText(QString("%1").arg(ps->GetValue())); +} + +//****CylindricalShell +QCSPrimCylindricalShellLayout::QCSPrimCylindricalShellLayout(CSPrimCylindricalShell* prim, QWidget *parent) : QCSPrimCylinderLayout(prim, parent) +{ + clCylindricalShell=prim; + + addWidget(new QLabel(tr("ShellWidth")),5,0,1,2); + m_ShellWidth=new QLineEdit();addWidget(m_ShellWidth,5,3,1,4); + + for (int i=0;i<8;++i) + m_ShellWidth->setEnabled(QCSX_Settings.GetEdit()); + + GetValues(); +} + +QCSPrimCylindricalShellLayout::~QCSPrimCylindricalShellLayout() +{ +} + +void QCSPrimCylindricalShellLayout::SetValues() +{ + QCSPrimCylinderLayout::SetValues(); + + bool bOk; + double dVal; + QString line; + + ParameterScalar* ps = clCylindricalShell->GetShellWidthPS(); + line = m_ShellWidth->text(); + dVal = line.toDouble(&bOk); + if (bOk) + ps->SetValue(dVal); + else + ps->SetValue(line.toLatin1().constData()); +} + +void QCSPrimCylindricalShellLayout::GetValues() +{ + QCSPrimCylinderLayout::GetValues(); + + ParameterScalar* ps = clCylindricalShell->GetShellWidthPS(); + if (ps->GetMode()) + m_ShellWidth->setText(ps->GetString().c_str()); + else + m_ShellWidth->setText(QString("%1").arg(ps->GetValue())); +} + +/*****************MultiBox*****/ +QCSPrimMultiBoxLayout::QCSPrimMultiBoxLayout(CSPrimMultiBox* prim, QWidget *parent) : QCSPrimitiveLayout(prim, parent) +{ + clMultiBox=prim; + + QPushButton *addButton = new QPushButton("Add Box"); + QObject::connect(addButton,SIGNAL(clicked()),this,SLOT(NewBox())); + addWidget(addButton,0,0); + addButton->setEnabled(QCSX_Settings.GetEdit()); + + QPushButton *editButton = new QPushButton("Edit Box"); + QObject::connect(editButton,SIGNAL(clicked()),this,SLOT(EditBox())); + addWidget(editButton,0,1); + editButton->setEnabled(QCSX_Settings.GetEdit()); + + QPushButton *deleteButton = new QPushButton("Delete Box"); + QObject::connect(deleteButton,SIGNAL(clicked()),this,SLOT(DeleteBox())); + addWidget(deleteButton,0,2); + deleteButton->setEnabled(QCSX_Settings.GetEdit()); + + qBoxList = new QListWidget(); + addWidget(qBoxList,1,0,1,3); + for (unsigned int i=0;iGetQtyBoxes();++i) + { + qBoxList->addItem(tr("Box #%1").arg(i)); + } + qBoxList->setEnabled(QCSX_Settings.GetEdit()); + + GetValues(); +} + +QCSPrimMultiBoxLayout::~QCSPrimMultiBoxLayout() +{ +} + +void QCSPrimMultiBoxLayout::SetValues() +{ + + +} + +void QCSPrimMultiBoxLayout::GetValues() +{ + +} + +void QCSPrimMultiBoxLayout::NewBox(QListWidgetItem* item) +{ + UNUSED(item); +// unsigned int nr=qBoxList->count() +// clMultiBox->ClearOverlap(); +// qBoxList->addItem(tr("Box #%1").arg(nr)); +// if (item==NULL) clMultiBox->AddBox(); +// else clMultiBox->AddBox(qBoxList->row(item)); +} + +void QCSPrimMultiBoxLayout::DeleteBox(QListWidgetItem* item) +{ + UNUSED(item); +} + +void QCSPrimMultiBoxLayout::EditBox(QListWidgetItem* item) +{ + UNUSED(item); +} + +//***********************************************************************************// +QCSPrimPolygonLayout::QCSPrimPolygonLayout(CSPrimPolygon* prim, QWidget *parent) : QCSPrimitiveLayout(prim, parent) +{ + clPoly=prim; + + addWidget(new QLabel(tr("Polygon Plane")),0,0); + NormVec = new QComboBox(); + NormVec->addItem(tr("yz-plane")); + NormVec->addItem(tr("zx-plane")); + NormVec->addItem(tr("xy-plane")); + QObject::connect(NormVec,SIGNAL(currentIndexChanged(int)),this,SLOT(NormVecChanged())); + addWidget(NormVec,0,1); + NormVec->setEnabled(QCSX_Settings.GetEdit()); + + addWidget(new QLabel(tr("Polygon Elevation")),1,0); + Elevation = new QLineEdit();; + addWidget(Elevation,1,1); + Elevation->setEnabled(QCSX_Settings.GetEdit()); + + QGroupBox* gb = new QGroupBox(tr("Polygon Vertices")); + QFormLayout* gbl = new QFormLayout(); + gb->setLayout(gbl); + addWidget(gb,2,0,1,2); + + CoordLineX = new QLineEdit(); + gbl->addRow(tr("X_1"),CoordLineX); + CoordLineX->setEnabled(QCSX_Settings.GetEdit()); + CoordLineY = new QLineEdit(); + gbl->addRow(tr("X_2"),CoordLineY); + CoordLineY->setEnabled(QCSX_Settings.GetEdit()); + + GetValues(); +} + +QCSPrimPolygonLayout::~QCSPrimPolygonLayout() +{ +} + +void QCSPrimPolygonLayout::SetValues() +{ + int ind = NormVec->currentIndex(); + clPoly->SetNormDir(ind); + ParameterScalar* ps; + bool bOk; + double dVal; + QString line; + + ps=clPoly->GetElevationPS(); + line=Elevation->text(); + dVal=line.toDouble(&bOk); + if (bOk) ps->SetValue(dVal); + else ps->SetValue(line.toStdString()); + + clPoly->ClearCoords(); + + QStringList strListX = CoordLineX->text().split(",",QString::SkipEmptyParts); + QStringList strListY = CoordLineY->text().split(",",QString::SkipEmptyParts); + + for (int i=0; (iAddCoord(dVal); + else clPoly->AddCoord(line.toStdString()); + + dVal=x2.toDouble(&bOk); + if (bOk) clPoly->AddCoord(dVal); + else clPoly->AddCoord(line.toStdString()); + } +} + +void QCSPrimPolygonLayout::GetValues() +{ + NormVec->setCurrentIndex(clPoly->GetNormDir()); + ParameterScalar* ps; + ps=clPoly->GetElevationPS(); + if (ps->GetMode()) Elevation->setText(ps->GetString().c_str()); + else Elevation->setText(QString("%1").arg(ps->GetValue())); + + QStringList strListX; + QStringList strListY; + + for (size_t i=0; iGetQtyCoords(); ++i) + { + ps=clPoly->GetCoordPS(2*i); + if (ps) + { + if (ps->GetMode()) strListX.append(ps->GetString().c_str()); + else strListX.append(QString("%1").arg(ps->GetValue())); + } + + ps=clPoly->GetCoordPS(2*i+1); + if (ps) + { + if (ps->GetMode()) strListY.append(ps->GetString().c_str()); + else strListY.append(QString("%1").arg(ps->GetValue())); + } + } + CoordLineX->setText(strListX.join(", ")); + CoordLineY->setText(strListY.join(", ")); +} + +void QCSPrimPolygonLayout::NormVecChanged() +{ +// QStringList headers; +// switch (NormVec->currentIndex()) +// { +// case 0: +// headers << "x" << "y"; +// break; +// case 1: +// headers << "y" << "z"; +// break; +// case 2: +// headers << "z" << "x"; +// break; +// default: +// headers << "x" << "y"; +// break; +// } +// CoordTable->setHorizontalHeaderLabels(headers); +} + +//***********************************************************************************// +QCSPrimUserDefinedLayout::QCSPrimUserDefinedLayout(CSPrimUserDefined* prim, QWidget *parent) : QCSPrimitiveLayout(prim, parent) +{ + clUserDef=prim; + + int row=0; + addWidget(new QLabel(tr("Choose Coordinate System")),row++,0); + CoordSystem = new QComboBox(); + CoordSystem->addItem("Cartesian Coord. System (x,y,z)"); + CoordSystem->addItem("Cartesian & Cylindrical Coord. System (x,y,z,r,a)"); + CoordSystem->addItem("Cartesian & Spherical Coord. System (x,y,z,r,a,t)"); + addWidget(CoordSystem,row++,0); + CoordSystem->setEnabled(QCSX_Settings.GetEdit()); + + QGroupBox* SysShiftGrp = new QGroupBox(tr("Shift Coordinate System")); + addWidget(SysShiftGrp,row++,0); + + QGridLayout* lay = new QGridLayout; + SysShiftGrp->setLayout(lay); + + lay->addWidget(new QLabel(tr("X-Shift:")),0,0); + CoordShift[0]=new QLineEdit(); + lay->addWidget(CoordShift[0],0,1); + lay->addWidget(new QLabel(tr("Y-Shift:")),1,0); + CoordShift[1]=new QLineEdit(); + lay->addWidget(CoordShift[1],1,1); + lay->addWidget(new QLabel(tr("Z-Shift:")),2,0); + CoordShift[2]=new QLineEdit(); + lay->addWidget(CoordShift[2],2,1); + for (int i=0;i<3;++i) + CoordShift[i]->setEnabled(QCSX_Settings.GetEdit()); + + addWidget(new QLabel(tr("Define Bool-Function for this Primitive in chosen Coord. System:")),row++,0); + FunctionLine = new QLineEdit(); + addWidget(FunctionLine,row++,0); + FunctionLine->setEnabled(QCSX_Settings.GetEdit()); + + GetValues(); +} + +QCSPrimUserDefinedLayout::~QCSPrimUserDefinedLayout() +{ +} + +void QCSPrimUserDefinedLayout::SetValues() +{ + clUserDef->SetCoordSystem((CSPrimUserDefined::UserDefinedCoordSystem)CoordSystem->currentIndex()); + clUserDef->SetFunction(FunctionLine->text().toStdString().c_str()); + + bool bOk; + double dVal; + QString line; + ParameterScalar* ps; + for (size_t i=0; i< 3; ++i) + { + ps=clUserDef->GetCoordShiftPS(i); + line=CoordShift[i]->text(); + dVal=line.toDouble(&bOk); + if (bOk) ps->SetValue(dVal); + else ps->SetValue(line.toLatin1().data()); + } +} + +void QCSPrimUserDefinedLayout::GetValues() +{ + CoordSystem->setCurrentIndex(clUserDef->GetCoordSystem()); + FunctionLine->setText(clUserDef->GetFunction()); + + ParameterScalar* ps; + for (size_t i=0; i< 3; ++i) + { + ps=clUserDef->GetCoordShiftPS(i); + if (ps==NULL) return; + if (ps->GetMode()) CoordShift[i]->setText(ps->GetString().c_str()); + else CoordShift[i]->setText(QString("%1").arg(ps->GetValue())); + } +} + + -- cgit v1.2.3