Converted Isecalc front-end dialog to Designer UI

Thu, 27 Jun 2013 03:00:00 +0300

author
Santeri Piippo <crimsondusk64@gmail.com>
date
Thu, 27 Jun 2013 03:00:00 +0300
changeset 302
08bd2c185b25
parent 301
ef51681bb978
child 303
8899806d382d

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>

mercurial