76 |
75 |
77 g_win->fullRefresh(); |
76 g_win->fullRefresh(); |
78 } |
77 } |
79 |
78 |
80 // ============================================================================= |
79 // ============================================================================= |
81 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
80 // ----------------------------------------------------------------------------- |
82 // ============================================================================= |
|
83 DEFINE_ACTION (NewFile, CTRL (N)) { |
81 DEFINE_ACTION (NewFile, CTRL (N)) { |
84 newFile(); |
82 newFile(); |
85 } |
83 } |
86 |
84 |
87 // ============================================================================= |
85 // ============================================================================= |
88 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
86 // ----------------------------------------------------------------------------- |
89 // ============================================================================= |
|
90 DEFINE_ACTION (Open, CTRL (O)) { |
87 DEFINE_ACTION (Open, CTRL (O)) { |
91 str name = QFileDialog::getOpenFileName (g_win, "Open File", "", "LDraw files (*.dat *.ldr)"); |
88 str name = QFileDialog::getOpenFileName (g_win, "Open File", "", "LDraw files (*.dat *.ldr)"); |
92 |
89 |
93 if (name.length() == 0) |
90 if (name.length() == 0) |
94 return; |
91 return; |
95 |
92 |
96 openMainFile (name); |
93 openMainFile (name); |
97 } |
94 } |
98 |
95 |
99 // ============================================================================= |
96 // ============================================================================= |
100 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
97 // ----------------------------------------------------------------------------- |
101 // ============================================================================= |
|
102 DEFINE_ACTION (Save, CTRL (S)) { |
98 DEFINE_ACTION (Save, CTRL (S)) { |
103 g_win->save (LDFile::current(), false); |
99 g_win->save (LDFile::current(), false); |
104 } |
100 } |
105 |
101 |
106 // ============================================================================= |
102 // ============================================================================= |
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
103 // ----------------------------------------------------------------------------- |
108 // ============================================================================= |
|
109 DEFINE_ACTION (SaveAs, CTRL_SHIFT (S)) { |
104 DEFINE_ACTION (SaveAs, CTRL_SHIFT (S)) { |
110 g_win->save (LDFile::current(), true); |
105 g_win->save (LDFile::current(), true); |
111 } |
106 } |
112 |
107 |
113 // ============================================================================= |
108 // ============================================================================= |
114 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
109 // ----------------------------------------------------------------------------- |
115 // ============================================================================= |
|
116 DEFINE_ACTION (SaveAll, CTRL (L)) { |
110 DEFINE_ACTION (SaveAll, CTRL (L)) { |
117 for (LDFile* file : g_loadedFiles) { |
111 for (LDFile* file : g_loadedFiles) { |
118 if (file->implicit()) |
112 if (file->implicit()) |
119 continue; |
113 continue; |
120 |
114 |
121 g_win->save (file, false); |
115 g_win->save (file, false); |
122 } |
116 } |
123 } |
117 } |
124 |
118 |
125 // ============================================================================= |
119 // ============================================================================= |
126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
120 // ----------------------------------------------------------------------------- |
127 // ============================================================================= |
|
128 DEFINE_ACTION (Close, CTRL (W)) { |
121 DEFINE_ACTION (Close, CTRL (W)) { |
129 if (!LDFile::current()->safeToClose()) |
122 if (!LDFile::current()->safeToClose()) |
130 return; |
123 return; |
131 |
124 |
132 delete LDFile::current(); |
125 delete LDFile::current(); |
133 } |
126 } |
134 |
127 |
135 // ============================================================================= |
128 // ============================================================================= |
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
129 // ----------------------------------------------------------------------------- |
137 // ============================================================================= |
|
138 DEFINE_ACTION (CloseAll, 0) { |
130 DEFINE_ACTION (CloseAll, 0) { |
139 if (!safeToCloseAll()) |
131 if (!safeToCloseAll()) |
140 return; |
132 return; |
141 |
133 |
142 closeAll(); |
134 closeAll(); |
143 } |
135 } |
144 |
136 |
145 // ============================================================================= |
137 // ============================================================================= |
146 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
138 // ----------------------------------------------------------------------------- |
147 // ============================================================================= |
|
148 DEFINE_ACTION (Settings, 0) { |
139 DEFINE_ACTION (Settings, 0) { |
149 ConfigDialog::staticDialog(); |
140 ConfigDialog::staticDialog(); |
150 } |
141 } |
151 |
142 |
|
143 // ============================================================================= |
|
144 // ----------------------------------------------------------------------------- |
152 DEFINE_ACTION (SetLDrawPath, 0) { |
145 DEFINE_ACTION (SetLDrawPath, 0) { |
153 LDrawPathDialog dlg (true); |
146 LDrawPathDialog dlg (true); |
154 dlg.exec(); |
147 dlg.exec(); |
155 } |
148 } |
156 |
149 |
157 // ============================================================================= |
150 // ============================================================================= |
158 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
151 // ----------------------------------------------------------------------------- |
159 // ============================================================================= |
|
160 DEFINE_ACTION (Exit, CTRL (Q)) { |
152 DEFINE_ACTION (Exit, CTRL (Q)) { |
161 exit (0); |
153 exit (0); |
162 } |
154 } |
163 |
155 |
164 // ============================================================================= |
156 // ============================================================================= |
165 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
157 // ----------------------------------------------------------------------------- |
166 // ============================================================================= |
|
167 DEFINE_ACTION (NewSubfile, 0) { |
158 DEFINE_ACTION (NewSubfile, 0) { |
168 AddObjectDialog::staticDialog (LDObject::Subfile, null); |
159 AddObjectDialog::staticDialog (LDObject::Subfile, null); |
169 } |
160 } |
170 |
161 |
|
162 // ============================================================================= |
|
163 // ----------------------------------------------------------------------------- |
171 DEFINE_ACTION (NewLine, 0) { |
164 DEFINE_ACTION (NewLine, 0) { |
172 AddObjectDialog::staticDialog (LDObject::Line, null); |
165 AddObjectDialog::staticDialog (LDObject::Line, null); |
173 } |
166 } |
174 |
167 |
|
168 // ============================================================================= |
|
169 // ----------------------------------------------------------------------------- |
175 DEFINE_ACTION (NewTriangle, 0) { |
170 DEFINE_ACTION (NewTriangle, 0) { |
176 AddObjectDialog::staticDialog (LDObject::Triangle, null); |
171 AddObjectDialog::staticDialog (LDObject::Triangle, null); |
177 } |
172 } |
178 |
173 |
|
174 // ============================================================================= |
|
175 // ----------------------------------------------------------------------------- |
179 DEFINE_ACTION (NewQuad, 0) { |
176 DEFINE_ACTION (NewQuad, 0) { |
180 AddObjectDialog::staticDialog (LDObject::Quad, null); |
177 AddObjectDialog::staticDialog (LDObject::Quad, null); |
181 } |
178 } |
182 |
179 |
|
180 // ============================================================================= |
|
181 // ----------------------------------------------------------------------------- |
183 DEFINE_ACTION (NewCLine, 0) { |
182 DEFINE_ACTION (NewCLine, 0) { |
184 AddObjectDialog::staticDialog (LDObject::CondLine, null); |
183 AddObjectDialog::staticDialog (LDObject::CondLine, null); |
185 } |
184 } |
186 |
185 |
|
186 // ============================================================================= |
|
187 // ----------------------------------------------------------------------------- |
187 DEFINE_ACTION (NewComment, 0) { |
188 DEFINE_ACTION (NewComment, 0) { |
188 AddObjectDialog::staticDialog (LDObject::Comment, null); |
189 AddObjectDialog::staticDialog (LDObject::Comment, null); |
189 } |
190 } |
190 |
191 |
|
192 // ============================================================================= |
|
193 // ----------------------------------------------------------------------------- |
191 DEFINE_ACTION (NewBFC, 0) { |
194 DEFINE_ACTION (NewBFC, 0) { |
192 AddObjectDialog::staticDialog (LDObject::BFC, null); |
195 AddObjectDialog::staticDialog (LDObject::BFC, null); |
193 } |
196 } |
194 |
197 |
|
198 // ============================================================================= |
|
199 // ----------------------------------------------------------------------------- |
195 DEFINE_ACTION (NewVertex, 0) { |
200 DEFINE_ACTION (NewVertex, 0) { |
196 AddObjectDialog::staticDialog (LDObject::Vertex, null); |
201 AddObjectDialog::staticDialog (LDObject::Vertex, null); |
197 } |
202 } |
198 |
203 |
|
204 // ============================================================================= |
|
205 // ----------------------------------------------------------------------------- |
199 DEFINE_ACTION (MakePrimitive, 0) { |
206 DEFINE_ACTION (MakePrimitive, 0) { |
200 generatePrimitive(); |
207 generatePrimitive(); |
201 } |
208 } |
202 |
209 |
|
210 // ============================================================================= |
|
211 // ----------------------------------------------------------------------------- |
203 DEFINE_ACTION (Edit, 0) { |
212 DEFINE_ACTION (Edit, 0) { |
204 if (g_win->sel().size() != 1) |
213 if (g_win->sel().size() != 1) |
205 return; |
214 return; |
206 |
215 |
207 LDObject* obj = g_win->sel()[0]; |
216 LDObject* obj = g_win->sel()[0]; |
208 AddObjectDialog::staticDialog (obj->getType(), obj); |
217 AddObjectDialog::staticDialog (obj->getType(), obj); |
209 } |
218 } |
210 |
219 |
|
220 // ============================================================================= |
|
221 // ----------------------------------------------------------------------------- |
211 DEFINE_ACTION (Help, KEY (F1)) { |
222 DEFINE_ACTION (Help, KEY (F1)) { |
212 |
223 |
213 } |
224 } |
214 |
225 |
215 // ============================================================================= |
226 // ============================================================================= |
216 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
227 // ----------------------------------------------------------------------------- |
217 // ============================================================================= |
|
218 DEFINE_ACTION (About, 0) { |
228 DEFINE_ACTION (About, 0) { |
219 AboutDialog().exec(); |
229 AboutDialog().exec(); |
220 } |
230 } |
221 |
231 |
|
232 // ============================================================================= |
|
233 // ----------------------------------------------------------------------------- |
222 DEFINE_ACTION (AboutQt, 0) { |
234 DEFINE_ACTION (AboutQt, 0) { |
223 QMessageBox::aboutQt (g_win); |
235 QMessageBox::aboutQt (g_win); |
224 } |
236 } |
225 |
237 |
226 // ============================================================================= |
238 // ============================================================================= |
227 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |
239 // ----------------------------------------------------------------------------- |
228 // ============================================================================= |
|
229 DEFINE_ACTION (SelectAll, CTRL (A)) { |
240 DEFINE_ACTION (SelectAll, CTRL (A)) { |
230 g_win->sel().clear(); |
241 g_win->sel().clear(); |
231 |
242 |
232 for (LDObject* obj : LDFile::current()->objs()) |
243 for (LDObject* obj : LDFile::current()->objs()) |
233 g_win->sel() << obj; |
244 g_win->sel() << obj; |
234 |
245 |
235 g_win->updateSelection(); |
246 g_win->updateSelection(); |
236 } |
247 } |
237 |
248 |
238 // ============================================================================= |
249 // ============================================================================= |
|
250 // ----------------------------------------------------------------------------- |
239 DEFINE_ACTION (SelectByColor, CTRL_SHIFT (A)) { |
251 DEFINE_ACTION (SelectByColor, CTRL_SHIFT (A)) { |
240 short colnum = g_win->getSelectedColor(); |
252 short colnum = g_win->getSelectedColor(); |
241 |
253 |
242 if (colnum == -1) |
254 if (colnum == -1) |
243 return; // no consensus on color |
255 return; // no consensus on color |
425 |
435 |
426 delete[] imgdata; |
436 delete[] imgdata; |
427 } |
437 } |
428 |
438 |
429 // ============================================================================= |
439 // ============================================================================= |
|
440 // ----------------------------------------------------------------------------- |
430 extern_cfg (bool, gl_axes); |
441 extern_cfg (bool, gl_axes); |
431 DEFINE_ACTION (Axes, 0) { |
442 DEFINE_ACTION (Axes, 0) { |
432 gl_axes = !gl_axes; |
443 gl_axes = !gl_axes; |
433 ACTION (Axes)->setChecked (gl_axes); |
444 ACTION (Axes)->setChecked (gl_axes); |
434 g_win->R()->update(); |
445 g_win->R()->update(); |
435 } |
446 } |
436 |
447 |
437 // ============================================================================= |
448 // ============================================================================= |
|
449 // ----------------------------------------------------------------------------- |
438 DEFINE_ACTION (Visibility, 0) { |
450 DEFINE_ACTION (Visibility, 0) { |
439 for (LDObject* obj : g_win->sel()) |
451 for (LDObject* obj : g_win->sel()) |
440 obj->setHidden (!obj->hidden()); |
452 obj->setHidden (!obj->hidden()); |
441 |
453 |
442 g_win->refresh(); |
454 g_win->refresh(); |
443 } |
455 } |
444 |
456 |
|
457 // ============================================================================= |
|
458 // ----------------------------------------------------------------------------- |
445 DEFINE_ACTION (Wireframe, 0) { |
459 DEFINE_ACTION (Wireframe, 0) { |
446 gl_wireframe = !gl_wireframe; |
460 gl_wireframe = !gl_wireframe; |
447 g_win->R()->refresh(); |
461 g_win->R()->refresh(); |
448 } |
462 } |
449 |
463 |
450 DEFINE_ACTION (SetOverlay, 0) |
464 // ============================================================================= |
451 { |
465 // ----------------------------------------------------------------------------- |
|
466 DEFINE_ACTION (SetOverlay, 0) { |
452 OverlayDialog dlg; |
467 OverlayDialog dlg; |
453 |
468 |
454 if (!dlg.exec()) |
469 if (!dlg.exec()) |
455 return; |
470 return; |
456 |
471 |
457 g_win->R()->setupOverlay ((GL::Camera) dlg.camera(), dlg.fpath(), dlg.ofsx(), |
472 g_win->R()->setupOverlay ((GL::Camera) dlg.camera(), dlg.fpath(), dlg.ofsx(), |
458 dlg.ofsy(), dlg.lwidth(), dlg.lheight() ); |
473 dlg.ofsy(), dlg.lwidth(), dlg.lheight() ); |
459 } |
474 } |
460 |
475 |
|
476 // ============================================================================= |
|
477 // ----------------------------------------------------------------------------- |
461 DEFINE_ACTION (ClearOverlay, 0) { |
478 DEFINE_ACTION (ClearOverlay, 0) { |
462 g_win->R()->clearOverlay(); |
479 g_win->R()->clearOverlay(); |
463 } |
480 } |
464 |
481 |
|
482 // ============================================================================= |
|
483 // ----------------------------------------------------------------------------- |
465 DEFINE_ACTION (ModeSelect, CTRL (1)) { |
484 DEFINE_ACTION (ModeSelect, CTRL (1)) { |
466 g_win->R()->setEditMode (Select); |
485 g_win->R()->setEditMode (Select); |
467 } |
486 } |
468 |
487 |
|
488 // ============================================================================= |
|
489 // ----------------------------------------------------------------------------- |
469 DEFINE_ACTION (ModeDraw, CTRL (2)) { |
490 DEFINE_ACTION (ModeDraw, CTRL (2)) { |
470 g_win->R()->setEditMode (Draw); |
491 g_win->R()->setEditMode (Draw); |
471 } |
492 } |
472 |
493 |
|
494 // ============================================================================= |
|
495 // ----------------------------------------------------------------------------- |
473 DEFINE_ACTION (SetDrawDepth, 0) { |
496 DEFINE_ACTION (SetDrawDepth, 0) { |
474 if (g_win->R()->camera() == GL::Free) |
497 if (g_win->R()->camera() == GL::Free) |
475 return; |
498 return; |
476 |
499 |
477 bool ok; |
500 bool ok; |