Thu, 27 Jun 2013 03:00:00 +0300
Converted Isecalc front-end dialog to Designer UI
src/extprogs.cpp | file | annotate | diff | comparison | revisions | |
src/ui/isecalc.ui | file | annotate | diff | comparison | revisions |
--- a/src/extprogs.cpp Thu Jun 27 02:46:12 2013 +0300 +++ b/src/extprogs.cpp Thu Jun 27 03:00:00 2013 +0300 @@ -34,6 +34,8 @@ #include "widgets.h" #include "history.h" #include "labeledwidget.h" + +#include "ui_isecalc.h" #include "ui_edger2.h" // ============================================================================= @@ -586,26 +588,30 @@ if (!checkProgPath (prog_isecalc, Isecalc)) return; - QDialog dlg; - - LabeledWidget<QComboBox>* cmb_col1 = buildColorSelector ("Shape 1"), - *cmb_col2 = buildColorSelector ("Shape 2"); + Ui::IsecalcUI ui; + QDialog* dlg = new QDialog; + ui.setupUi( dlg ); - QVBoxLayout* layout = new QVBoxLayout (&dlg); - layout->addWidget (cmb_col1); - layout->addWidget (cmb_col2); - layout->addWidget (makeButtonBox (dlg)); + makeColorSelector( ui.cmb_col1 ); + makeColorSelector( ui.cmb_col2 ); + + short in1Col, in2Col; -exec: - if (!dlg.exec ()) - return; - - const short in1Col = cmb_col1->w ()->itemData (cmb_col1->w ()->currentIndex ()).toInt (), - in2Col = cmb_col1->w ()->itemData (cmb_col2->w ()->currentIndex ()).toInt (); - - if (in1Col == in2Col) { - critical ("Cannot use the same color group for both input and cutter!"); - goto exec; + // Run the dialog and validate input + for( ;; ) + { + if (!dlg->exec ()) + return; + + in1Col = ui.cmb_col1->itemData (ui.cmb_col1->currentIndex ()).toInt (), + in2Col = ui.cmb_col1->itemData (ui.cmb_col2->currentIndex ()).toInt (); + + if (in1Col == in2Col) { + critical ("Cannot use the same color group for both input and cutter!"); + continue; + } + + break; } QTemporaryFile in1dat, in2dat, outdat;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ui/isecalc.ui Thu Jun 27 03:00:00 2013 +0300 @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>IsecalcUI</class> + <widget class="QDialog" name="IsecalcUI"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>240</width> + <height>120</height> + </rect> + </property> + <property name="minimumSize"> + <size> + <width>240</width> + <height>120</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>10000</width> + <height>120</height> + </size> + </property> + <property name="windowTitle"> + <string>Isecalc</string> + </property> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="geometry"> + <rect> + <x>30</x> + <y>80</y> + <width>201</width> + <height>32</height> + </rect> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + <widget class="QWidget" name="gridLayoutWidget"> + <property name="geometry"> + <rect> + <x>10</x> + <y>10</y> + <width>221</width> + <height>61</height> + </rect> + </property> + <layout class="QGridLayout" name="gridLayout" columnstretch="1,3"> + <item row="0" column="1"> + <widget class="QComboBox" name="cmb_col1"/> + </item> + <item row="1" column="1"> + <widget class="QComboBox" name="cmb_col2"/> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Shape 1:</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Shape 2:</string> + </property> + </widget> + </item> + </layout> + </widget> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>IsecalcUI</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>248</x> + <y>254</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>IsecalcUI</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui>