| 22 #include <QDialogButtonBox> |
22 #include <QDialogButtonBox> |
| 23 #include <QSpinBox> |
23 #include <QSpinBox> |
| 24 #include <QCheckBox> |
24 #include <QCheckBox> |
| 25 #include <QComboBox> |
25 #include <QComboBox> |
| 26 #include <QGridLayout> |
26 #include <QGridLayout> |
| |
27 #include <QSettings> |
| 27 #include <QFileInfo> |
28 #include <QFileInfo> |
| 28 #include "../main.h" |
29 #include "../main.h" |
| 29 #include "../configuration.h" |
|
| 30 #include "../miscallenous.h" |
30 #include "../miscallenous.h" |
| 31 #include "../mainwindow.h" |
31 #include "../mainwindow.h" |
| 32 #include "../ldDocument.h" |
32 #include "../ldDocument.h" |
| 33 #include "../radioGroup.h" |
33 #include "../radioGroup.h" |
| 34 #include "../editHistory.h" |
34 #include "../editHistory.h" |
| 58 |
58 |
| 59 ExtProgramToolset::ExtProgramToolset (MainWindow* parent) : |
59 ExtProgramToolset::ExtProgramToolset (MainWindow* parent) : |
| 60 Toolset (parent) |
60 Toolset (parent) |
| 61 { |
61 { |
| 62 extProgramInfo[Isecalc].name = "Isecalc"; |
62 extProgramInfo[Isecalc].name = "Isecalc"; |
| 63 extProgramInfo[Isecalc].path = &m_config->isecalcPath; |
|
| 64 extProgramInfo[Isecalc].wine = &m_config->isecalcUsesWine; |
|
| 65 extProgramInfo[Intersector].name = "Intersector"; |
63 extProgramInfo[Intersector].name = "Intersector"; |
| 66 extProgramInfo[Intersector].path = &m_config->intersectorPath; |
|
| 67 extProgramInfo[Intersector].wine = &m_config->intersectorUsesWine; |
|
| 68 extProgramInfo[Coverer].name = "Coverer"; |
64 extProgramInfo[Coverer].name = "Coverer"; |
| 69 extProgramInfo[Coverer].path = &m_config->covererPath; |
|
| 70 extProgramInfo[Coverer].wine = &m_config->covererUsesWine; |
|
| 71 extProgramInfo[Ytruder].name = "Ytruder"; |
65 extProgramInfo[Ytruder].name = "Ytruder"; |
| 72 extProgramInfo[Ytruder].path = &m_config->ytruderPath; |
|
| 73 extProgramInfo[Ytruder].wine = &m_config->ytruderUsesWine; |
|
| 74 extProgramInfo[Rectifier].name = "Rectifier"; |
66 extProgramInfo[Rectifier].name = "Rectifier"; |
| 75 extProgramInfo[Rectifier].path = &m_config->rectifierPath; |
|
| 76 extProgramInfo[Rectifier].wine = &m_config->rectifierUsesWine; |
|
| 77 extProgramInfo[Edger2].name = "Edger2"; |
67 extProgramInfo[Edger2].name = "Edger2"; |
| 78 extProgramInfo[Edger2].path = &m_config->edger2Path; |
|
| 79 extProgramInfo[Edger2].wine = &m_config->edger2UsesWine; |
|
| 80 } |
68 } |
| 81 |
69 |
| 82 bool ExtProgramToolset::makeTempFile (QTemporaryFile& tmp, QString& fname) |
70 bool ExtProgramToolset::makeTempFile (QTemporaryFile& tmp, QString& fname) |
| 83 { |
71 { |
| 84 if (not tmp.open()) |
72 if (not tmp.open()) |
| 96 #else |
84 #else |
| 97 return false; |
85 return false; |
| 98 #endif |
86 #endif |
| 99 } |
87 } |
| 100 |
88 |
| 101 bool& ExtProgramToolset::getWineSetting (ExtProgramType program) |
89 bool ExtProgramToolset::getWineSetting (ExtProgramType program) |
| 102 { |
90 { |
| 103 return *extProgramInfo[program].wine; |
91 return m_window->getConfigValue (externalProgramName (program) + "UsesWine").toBool(); |
| 104 } |
92 } |
| 105 |
93 |
| 106 QString ExtProgramToolset::getPathSetting (ExtProgramType program) |
94 QString ExtProgramToolset::getPathSetting (ExtProgramType program) |
| 107 { |
95 { |
| 108 return *extProgramInfo[program].path; |
96 return m_window->getConfigValue (externalProgramName (program) + "Path").toString(); |
| |
97 } |
| |
98 |
| |
99 void ExtProgramToolset::setPathSetting (ExtProgramType program, QString value) |
| |
100 { |
| |
101 m_window->getSettings()->setValue (externalProgramName (program) + "Path", QVariant::fromValue (value)); |
| |
102 } |
| |
103 |
| |
104 void ExtProgramToolset::setWineSetting (ExtProgramType program, bool value) |
| |
105 { |
| |
106 m_window->getSettings()->setValue (externalProgramName (program) + "UsesWine", QVariant::fromValue (value)); |
| 109 } |
107 } |
| 110 |
108 |
| 111 QString ExtProgramToolset::externalProgramName (ExtProgramType program) |
109 QString ExtProgramToolset::externalProgramName (ExtProgramType program) |
| 112 { |
110 { |
| 113 return extProgramInfo[program].name; |
111 return extProgramInfo[program].name; |
| 114 } |
112 } |
| 115 |
113 |
| 116 QString ExtProgramToolset::checkExtProgramPath(ExtProgramType program) |
114 bool ExtProgramToolset::checkExtProgramPath (ExtProgramType program) |
| 117 { |
115 { |
| 118 QString& path = getPathSetting (program); |
116 QString path = getPathSetting (program); |
| 119 |
117 |
| 120 if (not path.isEmpty()) |
118 if (not path.isEmpty()) |
| 121 return true; |
119 return true; |
| 122 |
120 |
| 123 ExtProgPathPrompt* dlg = new ExtProgPathPrompt (externalProgramName (program)); |
121 ExtProgPathPrompt* dialog = new ExtProgPathPrompt (externalProgramName (program)); |
| 124 |
122 |
| 125 if (dlg->exec() and not dlg->getPath().isEmpty()) |
123 if (dialog->exec() and not dialog->getPath().isEmpty()) |
| 126 { |
124 { |
| 127 path = dlg->getPath(); |
125 setPathSetting (program, dialog->getPath()); |
| 128 return true; |
126 return true; |
| 129 } |
127 } |
| 130 |
128 |
| 131 return false; |
129 return false; |
| 132 } |
130 } |
| 390 condAngle, |
388 condAngle, |
| 391 inDATName, |
389 inDATName, |
| 392 outDATName |
390 outDATName |
| 393 }); |
391 }); |
| 394 |
392 |
| 395 WriteSelection (inDATName); |
393 writeSelection (inDATName); |
| 396 |
394 |
| 397 if (not runExtProgram (Ytruder, argv)) |
395 if (not runExtProgram (Ytruder, argv)) |
| 398 return; |
396 return; |
| 399 |
397 |
| 400 InsertOutput (outDATName, false, {}); |
398 insertOutput (outDATName, false, {}); |
| 401 } |
399 } |
| 402 |
400 |
| 403 // ============================================================================= |
401 // ============================================================================= |
| 404 // Rectifier interface |
402 // Rectifier interface |
| 405 // ============================================================================= |
403 // ============================================================================= |
| 435 ui.dsb_coplthres->value(), |
433 ui.dsb_coplthres->value(), |
| 436 inDATName, |
434 inDATName, |
| 437 outDATName |
435 outDATName |
| 438 }); |
436 }); |
| 439 |
437 |
| 440 WriteSelection (inDATName); |
438 writeSelection (inDATName); |
| 441 |
439 |
| 442 if (not runExtProgram (Rectifier, argv)) |
440 if (not runExtProgram (Rectifier, argv)) |
| 443 return; |
441 return; |
| 444 |
442 |
| 445 InsertOutput (outDATName, true, {}); |
443 insertOutput (outDATName, true, {}); |
| 446 } |
444 } |
| 447 |
445 |
| 448 // ============================================================================= |
446 // ============================================================================= |
| 449 // Intersector interface |
447 // Intersector interface |
| 450 // ============================================================================= |
448 // ============================================================================= |