File size: 4,085 Bytes
a5ffdcd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | #include "lc_dlgtolerance.h"
#include "rs_graphic.h"
#include "ui_lc_dlgtolerance.h"
namespace
{
}
LC_DlgTolerance::LC_DlgTolerance(QWidget* parent, LC_GraphicViewport* viewport, LC_Tolerance* tol, bool isNew)
: LC_EntityPropertiesDlg(parent, QString("DlgTolerance") + (isNew ? "New" : "Edit"), viewport)
, ui(new Ui::LC_DlgTolerance), m_entity{tol}, m_isNew{isNew}{
ui->setupUi(this);
initGeometricCharacterCombobox(ui->cbGeometryTop);
initGeometricCharacterCombobox(ui->cbGeometryBottom);
initModifiersComboBox(ui->cbModToleranceTop);
initModifiersComboBox(ui->cbModToleranceBottom);
initModifiersComboBox(ui->cbModDatum1Top);
initModifiersComboBox(ui->cbModDatum2Top);
initModifiersComboBox(ui->cbModDatum3Top);
initModifiersComboBox(ui->cbModDatum1Bottom);
initModifiersComboBox(ui->cbModDatum2Bottom);
initModifiersComboBox(ui->cbModDatum3Bottom);
ui->cbLayer->setVisible(false);
ui->lLayer->setVisible(false);
ui->wPen->setVisible(false);
if (!isNew){
setEntity(tol);
}
}
LC_DlgTolerance::~LC_DlgTolerance(){
delete ui;
}
void LC_DlgTolerance::setEntity(LC_Tolerance* e) {
QString toleranceString = e->getTextCode();
parseAndSetFields(toleranceString);
RS_Graphic* graphic = e->getGraphic();
if (graphic) {
ui->cbLayer->init(*(graphic->getLayerList()), false, false);
}
RS_Layer* lay = e->getLayer(false);
if (lay) {
ui->cbLayer->setLayer(*lay);
}
ui->wPen->setPen(e, lay, tr("Pen"));
}
void LC_DlgTolerance::initModifiersComboBox(QComboBox* comboBox) const {
comboBox->addItem("", "");
comboBox->addItem(QIcon(":/gdt/modifiers/maximummaterialcondition.lci"), "", "m");
comboBox->addItem(QIcon(":/gdt/modifiers/leastmaterialcondition.lci"), "", "l");
comboBox->addItem(QIcon(":/gdt/modifiers/unilateral.lci"), "", "u");
comboBox->addItem(QIcon(":/gdt/modifiers/projectedtolerancezone.lci"), "", "p");
if (m_showExtendedModifiers) {
comboBox->addItem(QIcon(":/gdt/modifiers/freestate.lci"), "", "f");
comboBox->addItem(QIcon(":/gdt/modifiers/regardlessoffeaturesize.lci"), "", "s");
comboBox->addItem(QIcon(":/gdt/modifiers/tangentplane.lci"), "", "t");
comboBox->addItem(QIcon(":/gdt/modifiers/continuousfeature.lci"), "", "cf");
comboBox->addItem(QIcon(":/gdt/modifiers/statisticaltolerance.lci"), "", "cf");
}
}
void LC_DlgTolerance::initGeometricCharacterCombobox(QComboBox* comboBox) {
comboBox->addItem("", "");
comboBox->addItem(QIcon(":/gdt/chars/position.lci"), "", "p");
comboBox->addItem(QIcon(":/gdt/chars/concentricity.lci"), "", "c");
comboBox->addItem(QIcon(":/gdt/chars/symmetry.lci"), "", "s");
comboBox->addItem(QIcon(":/gdt/chars/parallelism.lci"), "", "");
comboBox->addItem(QIcon(":/gdt/chars/perpendicularity.lci"), "", "");
comboBox->addItem(QIcon(":/gdt/chars/angularity.lci"), "", "");
comboBox->addItem(QIcon(":/gdt/chars/cylindricity.lci"), "", "");
comboBox->addItem(QIcon(":/gdt/chars/flatness.lci"), "", "");
comboBox->addItem(QIcon(":/gdt/chars/circularity.lci"), "", "");
comboBox->addItem(QIcon(":/gdt/chars/straightness.lci"), "", "");
comboBox->addItem(QIcon(":/gdt/chars/profileofasurface.lci"), "", "");
comboBox->addItem(QIcon(":/gdt/chars/profileofaline.lci"), "", "");
comboBox->addItem(QIcon(":/gdt/chars/circular_runout.lci"), "", "");
comboBox->addItem(QIcon(":/gdt/chars/totalrunout.lci"), "", "");
}
void LC_DlgTolerance::updateEntity() {
QString textCode = generateDataString();
m_entity->setTextCode(textCode);
m_entity->setPen(ui->wPen->getPen());
m_entity->setLayer(ui->cbLayer->getLayer());
m_entity->update();
}
QString LC_DlgTolerance::generateDataString() {
return "";
}
void LC_DlgTolerance::accept() {
LC_EntityPropertiesDlg::accept();
updateEntity();
}
void LC_DlgTolerance::parseAndSetFields([[maybe_unused]]const QString& string) {
}
void LC_DlgTolerance::languageChange() {
ui->retranslateUi(this);
}
|