| 206 { QTemporaryFile input, output; |
206 { QTemporaryFile input, output; |
| 207 str inputname, outputname; |
207 str inputname, outputname; |
| 208 QStringList argv = argvstr.split (" ", QString::SkipEmptyParts); |
208 QStringList argv = argvstr.split (" ", QString::SkipEmptyParts); |
| 209 |
209 |
| 210 #ifndef _WIN32 |
210 #ifndef _WIN32 |
| 211 |
|
| 212 if (*g_extProgWine[prog]) |
211 if (*g_extProgWine[prog]) |
| 213 { argv.insert (0, path); |
212 { argv.insert (0, path); |
| 214 path = "wine"; |
213 path = "wine"; |
| 215 } |
214 } |
| 216 |
|
| 217 #endif // _WIN32 |
215 #endif // _WIN32 |
| 218 |
216 |
| 219 log ("cmdline: %1 %2\n", path, argv.join (" ")); |
217 log ("cmdline: %1 %2\n", path, argv.join (" ")); |
| 220 |
218 |
| 221 // Temporary files for stdin and stdout |
219 // Temporary files for stdin and stdout |
| 234 // Write an enter, the utility tools all expect one |
232 // Write an enter, the utility tools all expect one |
| 235 stdinfp.write ("\n"); |
233 stdinfp.write ("\n"); |
| 236 |
234 |
| 237 // Wait while it runs |
235 // Wait while it runs |
| 238 proc.waitForFinished(); |
236 proc.waitForFinished(); |
| 239 |
|
| 240 #ifndef RELEASE |
|
| 241 log ("%1", str (proc.readAllStandardOutput())); |
|
| 242 #endif // RELEASE |
|
| 243 |
237 |
| 244 str err = ""; |
238 str err = ""; |
| 245 |
239 |
| 246 if (proc.exitStatus() != QProcess::NormalExit) |
240 if (proc.exitStatus() != QProcess::NormalExit) |
| 247 err = processErrorString (proc); |
241 err = processErrorString (proc); |
| 417 ui.cb_edges->setWhatsThis ("Makes " APPNAME " try run Isecalc to create edgelines for the intersection."); |
411 ui.cb_edges->setWhatsThis ("Makes " APPNAME " try run Isecalc to create edgelines for the intersection."); |
| 418 |
412 |
| 419 short inCol, cutCol; |
413 short inCol, cutCol; |
| 420 const bool repeatInverse = ui.cb_repeat->isChecked(); |
414 const bool repeatInverse = ui.cb_repeat->isChecked(); |
| 421 |
415 |
| 422 for (;;) |
416 forever |
| 423 { if (!dlg->exec()) |
417 { if (!dlg->exec()) |
| 424 return; |
418 return; |
| 425 |
419 |
| 426 inCol = ui.cmb_incol->itemData (ui.cmb_incol->currentIndex()).toInt(); |
420 inCol = ui.cmb_incol->itemData (ui.cmb_incol->currentIndex()).toInt(); |
| 427 cutCol = ui.cmb_cutcol->itemData (ui.cmb_cutcol->currentIndex()).toInt(); |
421 cutCol = ui.cmb_cutcol->itemData (ui.cmb_cutcol->currentIndex()).toInt(); |
| 503 makeColorSelector (ui.cmb_col1); |
497 makeColorSelector (ui.cmb_col1); |
| 504 makeColorSelector (ui.cmb_col2); |
498 makeColorSelector (ui.cmb_col2); |
| 505 |
499 |
| 506 short in1Col, in2Col; |
500 short in1Col, in2Col; |
| 507 |
501 |
| 508 for (;;) |
502 forever |
| 509 { if (!dlg->exec()) |
503 { if (!dlg->exec()) |
| 510 return; |
504 return; |
| 511 |
505 |
| 512 in1Col = ui.cmb_col1->itemData (ui.cmb_col1->currentIndex()).toInt(); |
506 in1Col = ui.cmb_col1->itemData (ui.cmb_col1->currentIndex()).toInt(); |
| 513 in2Col = ui.cmb_col2->itemData (ui.cmb_col2->currentIndex()).toInt(); |
507 in2Col = ui.cmb_col2->itemData (ui.cmb_col2->currentIndex()).toInt(); |
| 561 makeColorSelector (ui.cmb_col2); |
555 makeColorSelector (ui.cmb_col2); |
| 562 |
556 |
| 563 short in1Col, in2Col; |
557 short in1Col, in2Col; |
| 564 |
558 |
| 565 // Run the dialog and validate input |
559 // Run the dialog and validate input |
| 566 for (;;) |
560 forever |
| 567 { if (!dlg->exec()) |
561 { if (!dlg->exec()) |
| 568 return; |
562 return; |
| 569 |
563 |
| 570 in1Col = ui.cmb_col1->itemData (ui.cmb_col1->currentIndex()).toInt(), |
564 in1Col = ui.cmb_col1->itemData (ui.cmb_col1->currentIndex()).toInt(), |
| 571 in2Col = ui.cmb_col1->itemData (ui.cmb_col2->currentIndex()).toInt(); |
565 in2Col = ui.cmb_col1->itemData (ui.cmb_col2->currentIndex()).toInt(); |