[TD] overhaul welding UI

- make some strings translatable
- remove some unused code
- fix UI size policies
- show changes while editing directly (only repaint necessary)
- avoid unused variables
- add tooltips
This commit is contained in:
donovaly
2020-03-29 23:25:28 +02:00
committed by WandererFan
parent c29e4dda5b
commit 98d637ef8a
5 changed files with 409 additions and 447 deletions

View File

@@ -9,8 +9,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>394</height>
<width>360</width>
<height>280</height>
</rect>
</property>
<property name="windowTitle">
@@ -19,98 +19,79 @@
<property name="modal">
<bool>true</bool>
</property>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>19</x>
<y>19</y>
<width>361</width>
<height>341</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<property name="lineWidth">
<number>2</number>
</property>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>9</x>
<y>19</y>
<width>341</width>
<height>191</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QListWidget" name="lwSymbols"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="horizontalLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>220</y>
<width>341</width>
<height>41</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QListWidget" name="lwSymbols">
<property name="toolTip">
<string>Select a symbol that should be used</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QPushButton" name="pbCancel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
<item>
<item row="0" column="2">
<widget class="QPushButton" name="pbOK">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>OK</string>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="horizontalLayoutWidget_2">
<property name="geometry">
<rect>
<x>10</x>
<y>280</y>
<width>341</width>
<height>35</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Symbol Dir</string>
</property>
</widget>
</item>
<item>
<item row="0" column="1">
<widget class="Gui::FileChooser" name="fcSymbolDir">
<property name="toolTip">
<string>Directory to welding symbols.</string>
</property>
<property name="mode">
<enum>Gui::FileChooser::Directory</enum>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>

View File

@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>227</width>
<height>180</height>
<height>130</height>
</rect>
</property>
<property name="windowTitle">

View File

@@ -83,44 +83,27 @@ TaskWeldingSymbol::TaskWeldingSymbol(TechDraw::DrawLeaderLine* leader) :
m_leadFeat(leader),
m_weldFeat(nullptr),
m_createMode(true),
m_arrowDirty(false),
m_otherDirty(false)
{
//TODO: why does DWS need DLL as parent?
// Base::Console().Message("TWS::TWS() - create mode\n");
if (m_leadFeat == nullptr) {
//should be caught in CMD caller
Base::Console().Error("TaskWeldingSymbol - bad parameters. Can not proceed.\n");
Base::Console().Error("TaskWeldingSymbol - bad parameters. Can not proceed.\n");
return;
}
ui->setupUi(this);
connect(ui->pbArrowSymbol, SIGNAL(clicked(bool)),
this, SLOT(onArrowSymbolClicked(bool)));
connect(ui->pbOtherSymbol, SIGNAL(clicked(bool)),
this, SLOT(onOtherSymbolClicked(bool)));
connect(ui->pbOtherErase, SIGNAL(clicked(bool)),
this, SLOT(onOtherEraseClicked(bool)));
connect(ui->fcSymbolDir, SIGNAL(fileNameSelected(const QString&)),
this, SLOT(onDirectorySelected(const QString&)));
connect(ui->leArrowTextL, SIGNAL(textEdited(const QString&)),
this, SLOT(onArrowTextChanged(const QString&)));
connect(ui->leArrowTextR, SIGNAL(textEdited(const QString&)),
this, SLOT(onArrowTextChanged(const QString&)));
connect(ui->leArrowTextC, SIGNAL(textEdited(const QString&)),
this, SLOT(onArrowTextChanged(const QString&)));
connect(ui->leOtherTextL, SIGNAL(textEdited(const QString&)),
this, SLOT(onOtherTextChanged(const QString&)));
connect(ui->leOtherTextR, SIGNAL(textEdited(const QString&)),
this, SLOT(onOtherTextChanged(const QString&)));
connect(ui->leOtherTextC, SIGNAL(textEdited(const QString&)),
this, SLOT(onOtherTextChanged(const QString&)));
setUiPrimary();
connect(ui->pbArrowSymbol, SIGNAL(clicked(bool)),
this, SLOT(onArrowSymbolCreateClicked()));
connect(ui->pbOtherSymbol, SIGNAL(clicked(bool)),
this, SLOT(onOtherSymbolCreateClicked()));
connect(ui->pbOtherErase, SIGNAL(clicked(bool)),
this, SLOT(onOtherEraseCreateClicked()));
connect(ui->fcSymbolDir, SIGNAL(fileNameSelected(QString)),
this, SLOT(onDirectorySelected(const QString)));
}
//ctor for edit
@@ -129,7 +112,6 @@ TaskWeldingSymbol::TaskWeldingSymbol(TechDraw::DrawWeldSymbol* weld) :
m_leadFeat(nullptr),
m_weldFeat(weld),
m_createMode(false),
m_arrowDirty(false),
m_otherDirty(false)
{
// Base::Console().Message("TWS::TWS() - edit mode\n");
@@ -150,33 +132,41 @@ TaskWeldingSymbol::TaskWeldingSymbol(TechDraw::DrawWeldSymbol* weld) :
ui->setupUi(this);
setUiEdit();
connect(ui->pbArrowSymbol, SIGNAL(clicked(bool)),
this, SLOT(onArrowSymbolClicked(bool)));
this, SLOT(onArrowSymbolClicked()));
connect(ui->pbOtherSymbol, SIGNAL(clicked(bool)),
this, SLOT(onOtherSymbolClicked(bool)));
this, SLOT(onOtherSymbolClicked()));
connect(ui->pbOtherErase, SIGNAL(clicked(bool)),
this, SLOT(onOtherEraseClicked(bool)));
this, SLOT(onOtherEraseClicked()));
connect(ui->fcSymbolDir, SIGNAL(fileNameSelected(const QString&)),
this, SLOT(onDirectorySelected(const QString&)));
connect(ui->fcSymbolDir, SIGNAL(fileNameSelected(QString)),
this, SLOT(onDirectorySelected(const QString)));
connect(ui->leArrowTextL, SIGNAL(textEdited(const QString&)),
this, SLOT(onArrowTextChanged(const QString&)));
connect(ui->leArrowTextR, SIGNAL(textEdited(const QString&)),
this, SLOT(onArrowTextChanged(const QString&)));
connect(ui->leArrowTextC, SIGNAL(textEdited(const QString&)),
this, SLOT(onArrowTextChanged(const QString&)));
connect(ui->leArrowTextL, SIGNAL(textEdited(QString)),
this, SLOT(onArrowTextChanged()));
connect(ui->leArrowTextR, SIGNAL(textEdited(QString)),
this, SLOT(onArrowTextChanged()));
connect(ui->leArrowTextC, SIGNAL(textEdited(QString)),
this, SLOT(onArrowTextChanged()));
connect(ui->leOtherTextL, SIGNAL(textEdited(const QString&)),
this, SLOT(onOtherTextChanged(const QString&)));
connect(ui->leOtherTextR, SIGNAL(textEdited(const QString&)),
this, SLOT(onOtherTextChanged(const QString&)));
connect(ui->leOtherTextC, SIGNAL(textEdited(const QString&)),
this, SLOT(onOtherTextChanged(const QString&)));
connect(ui->leOtherTextL, SIGNAL(textEdited(QString)),
this, SLOT(onOtherTextChanged()));
connect(ui->leOtherTextR, SIGNAL(textEdited(QString)),
this, SLOT(onOtherTextChanged()));
connect(ui->leOtherTextC, SIGNAL(textEdited(QString)),
this, SLOT(onOtherTextChanged()));
saveState();
setUiEdit();
connect(ui->leTailText, SIGNAL(textEdited(QString)),
this, SLOT(onWeldingChanged()));
connect(ui->cbFieldWeld, SIGNAL(toggled(bool)),
this, SLOT(onWeldingChanged()));
connect(ui->cbAllAround, SIGNAL(toggled(bool)),
this, SLOT(onWeldingChanged()));
connect(ui->cbAltWeld, SIGNAL(toggled(bool)),
this, SLOT(onWeldingChanged()));
}
TaskWeldingSymbol::~TaskWeldingSymbol()
@@ -246,7 +236,7 @@ void TaskWeldingSymbol::setUiEdit()
ui->pbArrowSymbol->setIconSize(iconSize);
ui->pbArrowSymbol->setText(QString());
} else {
ui->pbArrowSymbol->setText(QString::fromUtf8("Symbol"));
ui->pbArrowSymbol->setText(tr("Symbol"));
}
}
@@ -263,78 +253,106 @@ void TaskWeldingSymbol::setUiEdit()
if (fi.isReadable()) {
qTemp = QString::fromUtf8(m_otherFeat->SymbolFile.getValue());
QIcon targetIcon(qTemp);
QSize iconSize(32,32);
QSize iconSize(32, 32);
ui->pbOtherSymbol->setIcon(targetIcon);
ui->pbOtherSymbol->setIconSize(iconSize);
ui->pbOtherSymbol->setText(QString());
} else {
ui->pbOtherSymbol->setText(QString::fromUtf8("Symbol"));
ui->pbOtherSymbol->setText(tr("Symbol"));
}
}
ui->pbArrowSymbol->setFocus();
}
void TaskWeldingSymbol::onArrowSymbolClicked(bool b)
void TaskWeldingSymbol::onArrowSymbolCreateClicked()
{
// Base::Console().Message("TWS::OnArrowSymbolClicked()\n");
Q_UNUSED(b);
QString source = tr("arrow");
SymbolChooser* dlg = new SymbolChooser(this, m_currDir, source);
connect(dlg, SIGNAL(symbolSelected(QString, QString)),
this, SLOT(onSymbolSelected(QString, QString)));
dlg->setAttribute(Qt::WA_DeleteOnClose);
dlg->exec();
}
QString source = QString::fromUtf8("arrow");
void TaskWeldingSymbol::onArrowSymbolClicked()
{
QString source = tr("arrow");
SymbolChooser* dlg = new SymbolChooser(this, m_currDir, source);
connect(dlg, SIGNAL(symbolSelected(QString, QString)),
this, SLOT(onSymbolSelected(QString, QString)));
dlg->setAttribute(Qt::WA_DeleteOnClose);
//int rc =
dlg->exec();
updateTiles();
m_weldFeat->requestPaint();
}
void TaskWeldingSymbol::onOtherSymbolCreateClicked()
{
QString source = tr("other");
SymbolChooser* dlg = new SymbolChooser(this, m_currDir, source);
connect(dlg, SIGNAL(symbolSelected(QString, QString)),
this, SLOT(onSymbolSelected(QString, QString)));
dlg->setAttribute(Qt::WA_DeleteOnClose);
dlg->exec();
}
void TaskWeldingSymbol::onOtherSymbolClicked(bool b)
void TaskWeldingSymbol::onOtherSymbolClicked()
{
// Base::Console().Message("TWS::OnOtherSymbolClicked()\n");
Q_UNUSED(b);
QString source = QString::fromUtf8("other");
QString source = tr("other");
SymbolChooser* dlg = new SymbolChooser(this, m_currDir, source);
connect(dlg, SIGNAL(symbolSelected(QString, QString)),
this, SLOT(onSymbolSelected(QString, QString)));
dlg->setAttribute(Qt::WA_DeleteOnClose);
// int rc =
dlg->exec();
updateTiles();
m_weldFeat->requestPaint();
}
void TaskWeldingSymbol::onOtherEraseClicked(bool b)
void TaskWeldingSymbol::onOtherEraseCreateClicked()
{
// Base::Console().Message("TWS::onOtherEraseClicked()\n");
Q_UNUSED(b);
m_otherDirty = true;
m_otherOut.init();
ui->leOtherTextL->setText(QString());
ui->leOtherTextC->setText(QString());
ui->leOtherTextR->setText(QString());
ui->pbOtherSymbol->setIcon(QIcon());
ui->pbOtherSymbol->setText(QString::fromUtf8("Symbol"));
ui->pbOtherSymbol->setText(tr("Symbol"));
m_otherOut.init();
m_otherPath = QString();
}
void TaskWeldingSymbol::onArrowTextChanged(const QString& qs)
void TaskWeldingSymbol::onOtherEraseClicked()
{
// Base::Console().Message("TWS::onArrowTextChanged(%s)\n", qPrintable(qs));
Q_UNUSED(qs);
m_arrowDirty = true;
}
void TaskWeldingSymbol::onOtherTextChanged(const QString& qs)
{
// Base::Console().Message("TWS::onOtherTextChanged(%s)\n", qPrintable(qs));
Q_UNUSED(qs);
m_otherDirty = true;
ui->leOtherTextL->setText(QString());
ui->leOtherTextC->setText(QString());
ui->leOtherTextR->setText(QString());
ui->pbOtherSymbol->setIcon(QIcon());
ui->pbOtherSymbol->setText(tr("Symbol"));
m_otherOut.init();
m_otherPath = QString();
updateTiles();
m_weldFeat->requestPaint();
}
void TaskWeldingSymbol::onArrowTextChanged()
{
updateTiles();
m_weldFeat->requestPaint();
}
void TaskWeldingSymbol::onOtherTextChanged()
{
m_otherDirty = true;
updateTiles();
m_weldFeat->requestPaint();
}
void TaskWeldingSymbol::onWeldingChanged()
{
updateWeldingSymbol();
m_weldFeat->requestPaint();
}
void TaskWeldingSymbol::onDirectorySelected(const QString& newDir)
{
@@ -349,10 +367,9 @@ void TaskWeldingSymbol::onSymbolSelected(QString symbolPath,
// qPrintable(symbolPath), qPrintable(source));
QIcon targetIcon(symbolPath);
QSize iconSize(32,32);
QString arrow = QString::fromUtf8("arrow");
QString other = QString::fromUtf8("other");
QString arrow = tr("arrow");
QString other = tr("other");
if (source == arrow) {
m_arrowDirty = true;
ui->pbArrowSymbol->setIcon(targetIcon);
ui->pbArrowSymbol->setIconSize(iconSize);
ui->pbArrowSymbol->setText(QString());
@@ -366,16 +383,6 @@ void TaskWeldingSymbol::onSymbolSelected(QString symbolPath,
}
}
void TaskWeldingSymbol::blockButtons(bool b)
{
Q_UNUSED(b);
}
//obsolete. tiles are only updated on accept.
void TaskWeldingSymbol::saveState(void)
{
}
void TaskWeldingSymbol::collectArrowData(void)
{
// Base::Console().Message("TWS::collectArrowData()\n");
@@ -383,10 +390,10 @@ void TaskWeldingSymbol::collectArrowData(void)
m_arrowOut.arrowSide = false;
m_arrowOut.row = 0;
m_arrowOut.col = 0;
m_arrowOut.leftText = Base::Tools::toStdString(ui->leArrowTextL->text());
m_arrowOut.centerText = Base::Tools::toStdString(ui->leArrowTextC->text());
m_arrowOut.rightText = Base::Tools::toStdString(ui->leArrowTextR->text());
m_arrowOut.symbolPath= Base::Tools::toStdString(m_arrowPath);
m_arrowOut.leftText = ui->leArrowTextL->text().toStdString();
m_arrowOut.centerText = ui->leArrowTextC->text().toStdString();
m_arrowOut.rightText = ui->leArrowTextR->text().toStdString();
m_arrowOut.symbolPath= m_arrowPath.toStdString();
m_arrowOut.tileName = "";
}
@@ -397,10 +404,10 @@ void TaskWeldingSymbol::collectOtherData(void)
m_otherOut.arrowSide = false;
m_otherOut.row = -1;
m_otherOut.col = 0;
m_otherOut.leftText = Base::Tools::toStdString(ui->leOtherTextL->text());
m_otherOut.centerText = Base::Tools::toStdString(ui->leOtherTextC->text());
m_otherOut.rightText = Base::Tools::toStdString(ui->leOtherTextR->text());
m_otherOut.symbolPath = Base::Tools::toStdString(m_otherPath);
m_otherOut.leftText = ui->leOtherTextL->text().toStdString();
m_otherOut.centerText = ui->leOtherTextC->text().toStdString();
m_otherOut.rightText = ui->leOtherTextR->text().toStdString();
m_otherOut.symbolPath = m_otherPath.toStdString();
m_otherOut.tileName = "";
}
@@ -462,7 +469,7 @@ TechDraw::DrawWeldSymbol* TaskWeldingSymbol::createWeldingSymbol(void)
Command::doCommand(Command::Doc,"App.activeDocument().%s.AlternatingWeld = %s",
symbolName.c_str(), altWeldText.c_str());
std::string tailText = Base::Tools::toStdString(ui->leTailText->text());
std::string tailText = ui->leTailText->text().toStdString();
tailText = Base::Tools::escapeEncodeString(tailText);
Command::doCommand(Command::Doc,"App.activeDocument().%s.TailText = '%s'",
symbolName.c_str(), tailText.c_str());
@@ -497,7 +504,7 @@ void TaskWeldingSymbol::updateWeldingSymbol(void)
Command::doCommand(Command::Doc,"App.activeDocument().%s.AlternatingWeld = %s",
symbolName.c_str(), altWeldText.c_str());
std::string tailText = Base::Tools::toStdString(ui->leTailText->text());
std::string tailText = ui->leTailText->text().toStdString();
tailText = Base::Tools::escapeEncodeString(tailText);
Command::doCommand(Command::Doc,"App.activeDocument().%s.TailText = '%s'",
symbolName.c_str(), tailText.c_str());

View File

@@ -102,14 +102,15 @@ public:
~TaskWeldingSymbol();
public Q_SLOTS:
void onArrowSymbolClicked(bool b);
void onOtherSymbolClicked(bool b);
void onOtherEraseClicked(bool b);
void onArrowTextChanged(const QString& qs);
void onOtherTextChanged(const QString& qs);
void onArrowSymbolCreateClicked();
void onArrowSymbolClicked();
void onOtherSymbolCreateClicked();
void onOtherSymbolClicked();
void onOtherEraseCreateClicked();
void onOtherEraseClicked();
void onArrowTextChanged();
void onOtherTextChanged();
void onWeldingChanged();
void onDirectorySelected(const QString& newDir);
void onSymbolSelected(QString symbolPath, QString source);
@@ -125,8 +126,6 @@ protected Q_SLOTS:
protected:
void changeEvent(QEvent *e);
void blockButtons(bool b);
void setUiPrimary(void);
void setUiEdit();
@@ -141,7 +140,6 @@ protected:
void collectOtherData(void);
std::string prefSymbolDir();
void saveState(void);
QString m_currDir;
@@ -163,14 +161,10 @@ private:
QString m_arrowSymbol;
QString m_otherSymbol;
/* std::vector<std::string> m_toRemove;*/
QPushButton* m_btnOK;
QPushButton* m_btnCancel;
bool m_createMode;
bool m_arrowDirty;
bool m_otherDirty;
};

View File

@@ -6,12 +6,12 @@
<rect>
<x>0</x>
<y>0</y>
<width>423</width>
<height>374</height>
<width>400</width>
<height>244</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@@ -29,268 +29,248 @@
<iconset resource="Resources/TechDraw.qrc">
<normaloff>:/icons/actions/techdraw-weldsymbol.svg</normaloff>:/icons/actions/techdraw-weldsymbol.svg</iconset>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QFrame" name="frame">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QHBoxLayout" name="hlArrowSideLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<widget class="QLineEdit" name="leArrowTextL">
<property name="toolTip">
<string>Text before arrow side symbol</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="leArrowTextR">
<property name="toolTip">
<string>Text after arrow side symbol</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="pbArrowSymbol">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="baseSize">
<size>
<width>0</width>
<height>32</height>
</size>
</property>
<property name="toolTip">
<string>Pick arrow side symbol</string>
</property>
<property name="statusTip">
<string/>
</property>
<property name="text">
<string>Symbol</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="leArrowTextC">
<property name="toolTip">
<string>Text above arrow side symbol</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>5</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="hlOtherSideLayout">
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="2">
<widget class="QLineEdit" name="leOtherTextR">
<property name="toolTip">
<string>Text after other side symbol</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="pbOtherSymbol">
<property name="toolTip">
<string>Pick other side symbol</string>
</property>
<property name="text">
<string>Symbol</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLineEdit" name="leOtherTextL">
<property name="toolTip">
<string>Text before other side symbol</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="leOtherTextC">
<property name="toolTip">
<string>Text below other side symbol</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="pbOtherErase">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>60</width>
<height>30</height>
</size>
</property>
<property name="baseSize">
<size>
<width>60</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Remove other side symbol</string>
</property>
<property name="text">
<string>Delete</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<layout class="QHBoxLayout" name="hlArrowSideLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<widget class="QLineEdit" name="leArrowTextL">
<property name="toolTip">
<string>Text before arrow side symbol</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="leArrowTextR">
<property name="toolTip">
<string>Text after arrow side symbol</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="pbArrowSymbol">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>32</height>
</size>
</property>
<property name="baseSize">
<size>
<width>0</width>
<height>32</height>
</size>
</property>
<property name="toolTip">
<string>Pick arrow side symbol</string>
</property>
<property name="statusTip">
<string/>
</property>
<property name="text">
<string>Symbol</string>
</property>
<property name="checkable">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="leArrowTextC">
<property name="toolTip">
<string>Text above arrow side symbol</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>5</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="hlOtherSideLayout">
<item>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="2">
<widget class="QLineEdit" name="leOtherTextR">
<property name="toolTip">
<string>Text after other side symbol</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="pbOtherSymbol">
<property name="toolTip">
<string>Pick other side symbol</string>
</property>
<property name="text">
<string>Symbol</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLineEdit" name="leOtherTextL">
<property name="toolTip">
<string>Text before other side symbol</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="leOtherTextC">
<property name="toolTip">
<string>Text below other side symbol</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="pbOtherErase">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>30</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>60</width>
<height>30</height>
</size>
</property>
<property name="baseSize">
<size>
<width>60</width>
<height>30</height>
</size>
</property>
<property name="toolTip">
<string>Remove other side symbol</string>
</property>
<property name="text">
<string>Delete</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QCheckBox" name="cbFieldWeld">
<property name="text">
<string>Field Weld</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="cbAllAround">
<property name="text">
<string>All Around</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QCheckBox" name="cbAltWeld">
<property name="text">
<string>Alternating</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Tail Text</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="leTailText">
<property name="toolTip">
<string>Text at end of symbol</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Symbol Directory</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="Gui::FileChooser" name="fcSymbolDir">
<property name="toolTip">
<string>Pick a directory of welding symbols</string>
</property>
<property name="mode">
<enum>Gui::FileChooser::Directory</enum>
</property>
<property name="filter">
<string>*.svg</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QCheckBox" name="cbFieldWeld">
<property name="toolTip">
<string>Adds the 'Field Weld' symbol (flag)
at the kink in the leader line</string>
</property>
<property name="text">
<string>Field Weld</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="cbAllAround">
<property name="toolTip">
<string>Adds the 'All Around' symbol (circle)
at the kink in the leader line</string>
</property>
<property name="text">
<string>All Around</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QCheckBox" name="cbAltWeld">
<property name="toolTip">
<string>Offsets the lower symbol to indicate alternating welds</string>
</property>
<property name="text">
<string>Alternating</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout_4">
<item row="1" column="1">
<widget class="Gui::FileChooser" name="fcSymbolDir">
<property name="toolTip">
<string>Directory to welding symbols.
This directory will be used for the symbol selection.</string>
</property>
<property name="mode">
<enum>Gui::FileChooser::Directory</enum>
</property>
<property name="filter">
<string>*.svg</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="leTailText">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Text at end of symbol</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Symbol Directory</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Tail Text</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<customwidgets>