1 // dimensionlabeleditor.cpp
3 // Part of the Architektonas Project
4 // Originally part of QCad Community Edition by Andrew Mustun
5 // Extensively rewritten and refactored by James L. Hammons
6 // (C) 2010 Underground Software
8 // JLH = James L. Hammons <jlhamm@acm.org>
11 // --- ---------- -----------------------------------------------------------
12 // JLH 06/11/2010 Created this file. :-)
15 #include "dimensionlabeleditor.h"
18 //#include "drawing.h"
19 //#include "rs_math.h"
21 DimensionLabelEditor::DimensionLabelEditor(QWidget * parent/*= NULL*/, Qt::WindowFlags flags/*= 0*/):
22 QWidget(parent, flags)
27 DimensionLabelEditor::~DimensionLabelEditor()
31 void DimensionLabelEditor::setLabel(const QString & l)
34 QString label, tol1, tol2;
35 bool hasDiameter = false;
39 if (label.at(0) == QChar(0x2205) || label.at(0) == QChar(0xF8))
42 ui.bDiameter->setChecked(true);
45 i0 = l.indexOf("\\S");
49 i1a = l.indexOf("^ ", i0);
53 i1a = i1b = l.indexOf('^', i0);
58 i2 = l.indexOf(';', i1b);
60 tol1 = l.mid(i0 + 2, i1a - i0 - 2);
61 tol2 = l.mid(i1b + 1, i2 - i1b - 1);
65 ui.leLabel->setText(label.mid(hasDiameter));
66 ui.leTol1->setText(tol1);
67 ui.leTol2->setText(tol2);
70 QString DimensionLabelEditor::getLabel()
72 QString l = ui.leLabel->text();
75 if (ui.bDiameter->isChecked())
78 l = QString("%1<>").arg(QChar(0x2205));
80 l = QChar(0x2205) + l;
83 if (ui.leTol1->text().isEmpty() && ui.leTol2->text().isEmpty())
86 return l + "\\S" + ui.leTol1->text() + "^ " + ui.leTol2->text() + ";";
89 void DimensionLabelEditor::insertSign(const QString & s)
91 ui.leLabel->insert(s.left(1));