68 return num; |
68 return num; |
69 } |
69 } |
70 |
70 |
71 // ============================================================================= |
71 // ============================================================================= |
72 // |
72 // |
73 DEFINE_ACTION (Cut, CTRL (X)) |
73 void MainWindow::slot_actionCut() |
74 { |
74 { |
75 int num = copyToClipboard(); |
75 int num = copyToClipboard(); |
76 deleteSelection(); |
76 deleteSelection(); |
77 print (tr ("%1 objects cut"), num); |
77 print (tr ("%1 objects cut"), num); |
78 } |
78 } |
79 |
79 |
80 // ============================================================================= |
80 // ============================================================================= |
81 // |
81 // |
82 DEFINE_ACTION (Copy, CTRL (C)) |
82 void MainWindow::slot_actionCopy() |
83 { |
83 { |
84 int num = copyToClipboard(); |
84 int num = copyToClipboard(); |
85 print (tr ("%1 objects copied"), num); |
85 print (tr ("%1 objects copied"), num); |
86 } |
86 } |
87 |
87 |
88 // ============================================================================= |
88 // ============================================================================= |
89 // |
89 // |
90 DEFINE_ACTION (Paste, CTRL (V)) |
90 void MainWindow::slot_actionPaste() |
91 { |
91 { |
92 const QString clipboardText = qApp->clipboard()->text(); |
92 const QString clipboardText = qApp->clipboard()->text(); |
93 int idx = getInsertionPoint(); |
93 int idx = getInsertionPoint(); |
94 getCurrentDocument()->clearSelection(); |
94 getCurrentDocument()->clearSelection(); |
95 int num = 0; |
95 int num = 0; |
107 scrollToSelection(); |
107 scrollToSelection(); |
108 } |
108 } |
109 |
109 |
110 // ============================================================================= |
110 // ============================================================================= |
111 // |
111 // |
112 DEFINE_ACTION (Delete, KEY (Delete)) |
112 void MainWindow::slot_actionDelete() |
113 { |
113 { |
114 int num = deleteSelection(); |
114 int num = deleteSelection(); |
115 print (tr ("%1 objects deleted"), num); |
115 print (tr ("%1 objects deleted"), num); |
116 } |
116 } |
117 |
117 |
147 } |
147 } |
148 |
148 |
149 g_win->refresh(); |
149 g_win->refresh(); |
150 } |
150 } |
151 |
151 |
152 DEFINE_ACTION (Inline, CTRL (I)) |
152 void MainWindow::slot_actionInline() |
153 { |
153 { |
154 doInline (false); |
154 doInline (false); |
155 } |
155 } |
156 |
156 |
157 DEFINE_ACTION (InlineDeep, CTRL_SHIFT (I)) |
157 void MainWindow::slot_actionInlineDeep() |
158 { |
158 { |
159 doInline (true); |
159 doInline (true); |
160 } |
160 } |
161 |
161 |
162 // ============================================================================= |
162 // ============================================================================= |
163 // |
163 // |
164 DEFINE_ACTION (SplitQuads, 0) |
164 void MainWindow::slot_actionSplitQuads() |
165 { |
165 { |
166 int num = 0; |
166 int num = 0; |
167 |
167 |
168 for (LDObjectPtr obj : selection()) |
168 for (LDObjectPtr obj : selection()) |
169 { |
169 { |
331 g_win->buildObjList(); |
331 g_win->buildObjList(); |
332 } |
332 } |
333 |
333 |
334 // ============================================================================= |
334 // ============================================================================= |
335 // |
335 // |
336 DEFINE_ACTION (MoveUp, KEY (PageUp)) |
336 void MainWindow::slot_actionMoveUp() |
337 { |
337 { |
338 doMoveSelection (true); |
338 doMoveSelection (true); |
339 } |
339 } |
340 |
340 |
341 DEFINE_ACTION (MoveDown, KEY (PageDown)) |
341 void MainWindow::slot_actionMoveDown() |
342 { |
342 { |
343 doMoveSelection (false); |
343 doMoveSelection (false); |
344 } |
344 } |
345 |
345 |
346 // ============================================================================= |
346 // ============================================================================= |
347 // |
347 // |
348 DEFINE_ACTION (Undo, CTRL (Z)) |
348 void MainWindow::slot_actionUndo() |
349 { |
349 { |
350 getCurrentDocument()->undo(); |
350 getCurrentDocument()->undo(); |
351 } |
351 } |
352 |
352 |
353 DEFINE_ACTION (Redo, CTRL_SHIFT (Z)) |
353 void MainWindow::slot_actionRedo() |
354 { |
354 { |
355 getCurrentDocument()->redo(); |
355 getCurrentDocument()->redo(); |
356 } |
356 } |
357 |
357 |
358 // ============================================================================= |
358 // ============================================================================= |
368 g_win->refresh(); |
368 g_win->refresh(); |
369 } |
369 } |
370 |
370 |
371 // ============================================================================= |
371 // ============================================================================= |
372 // |
372 // |
373 DEFINE_ACTION (MoveXNeg, KEY (Left)) |
373 void MainWindow::slot_actionMoveXNeg() |
374 { |
374 { |
375 doMoveObjects ({-1, 0, 0}); |
375 doMoveObjects ({-1, 0, 0}); |
376 } |
376 } |
377 |
377 |
378 DEFINE_ACTION (MoveYNeg, KEY (Home)) |
378 void MainWindow::slot_actionMoveYNeg() |
379 { |
379 { |
380 doMoveObjects ({0, -1, 0}); |
380 doMoveObjects ({0, -1, 0}); |
381 } |
381 } |
382 |
382 |
383 DEFINE_ACTION (MoveZNeg, KEY (Down)) |
383 void MainWindow::slot_actionMoveZNeg() |
384 { |
384 { |
385 doMoveObjects ({0, 0, -1}); |
385 doMoveObjects ({0, 0, -1}); |
386 } |
386 } |
387 |
387 |
388 DEFINE_ACTION (MoveXPos, KEY (Right)) |
388 void MainWindow::slot_actionMoveXPos() |
389 { |
389 { |
390 doMoveObjects ({1, 0, 0}); |
390 doMoveObjects ({1, 0, 0}); |
391 } |
391 } |
392 |
392 |
393 DEFINE_ACTION (MoveYPos, KEY (End)) |
393 void MainWindow::slot_actionMoveYPos() |
394 { |
394 { |
395 doMoveObjects ({0, 1, 0}); |
395 doMoveObjects ({0, 1, 0}); |
396 } |
396 } |
397 |
397 |
398 DEFINE_ACTION (MoveZPos, KEY (Up)) |
398 void MainWindow::slot_actionMoveZPos() |
399 { |
399 { |
400 doMoveObjects ({0, 0, 1}); |
400 doMoveObjects ({0, 0, 1}); |
401 } |
401 } |
402 |
402 |
403 // ============================================================================= |
403 // ============================================================================= |
404 // |
404 // |
405 DEFINE_ACTION (Invert, CTRL_SHIFT (W)) |
405 void MainWindow::slot_actionInvert() |
406 { |
406 { |
407 for (LDObjectPtr obj : selection()) |
407 for (LDObjectPtr obj : selection()) |
408 obj->invert(); |
408 obj->invert(); |
409 |
409 |
410 refresh(); |
410 refresh(); |
482 g_win->refresh(); |
482 g_win->refresh(); |
483 } |
483 } |
484 |
484 |
485 // ============================================================================= |
485 // ============================================================================= |
486 // |
486 // |
487 DEFINE_ACTION (RotateXPos, CTRL (Right)) |
487 void MainWindow::slot_actionRotateXPos() |
488 { |
488 { |
489 doRotate (1, 0, 0); |
489 doRotate (1, 0, 0); |
490 } |
490 } |
491 DEFINE_ACTION (RotateYPos, CTRL (End)) |
491 void MainWindow::slot_actionRotateYPos() |
492 { |
492 { |
493 doRotate (0, 1, 0); |
493 doRotate (0, 1, 0); |
494 } |
494 } |
495 DEFINE_ACTION (RotateZPos, CTRL (Up)) |
495 void MainWindow::slot_actionRotateZPos() |
496 { |
496 { |
497 doRotate (0, 0, 1); |
497 doRotate (0, 0, 1); |
498 } |
498 } |
499 DEFINE_ACTION (RotateXNeg, CTRL (Left)) |
499 void MainWindow::slot_actionRotateXNeg() |
500 { |
500 { |
501 doRotate (-1, 0, 0); |
501 doRotate (-1, 0, 0); |
502 } |
502 } |
503 DEFINE_ACTION (RotateYNeg, CTRL (Home)) |
503 void MainWindow::slot_actionRotateYNeg() |
504 { |
504 { |
505 doRotate (0, -1, 0); |
505 doRotate (0, -1, 0); |
506 } |
506 } |
507 DEFINE_ACTION (RotateZNeg, CTRL (Down)) |
507 void MainWindow::slot_actionRotateZNeg() |
508 { |
508 { |
509 doRotate (0, 0, -1); |
509 doRotate (0, 0, -1); |
510 } |
510 } |
511 |
511 |
512 DEFINE_ACTION (RotationPoint, (0)) |
512 void MainWindow::slot_actionRotationPoint() |
513 { |
513 { |
514 configRotationPoint(); |
514 configRotationPoint(); |
515 } |
515 } |
516 |
516 |
517 // ============================================================================= |
517 // ============================================================================= |
518 // |
518 // |
519 DEFINE_ACTION (RoundCoordinates, 0) |
519 void MainWindow::slot_actionRoundCoordinates() |
520 { |
520 { |
521 setlocale (LC_ALL, "C"); |
521 setlocale (LC_ALL, "C"); |
522 int num = 0; |
522 int num = 0; |
523 |
523 |
524 for (LDObjectPtr obj : selection()) |
524 for (LDObjectPtr obj : selection()) |
717 continue; |
717 continue; |
718 |
718 |
719 obj->setColor (color); |
719 obj->setColor (color); |
720 } |
720 } |
721 |
721 |
722 print (tr ("Auto-colored: new color is [%1] %2"), colnum, color->name()); |
722 print (tr ("Auto-colored: new color is [%1] %2"), colnum, color.name()); |
723 refresh(); |
723 refresh(); |
724 } |
724 } |
725 |
725 |
726 // ============================================================================= |
726 // ============================================================================= |
727 // |
727 // |
728 DEFINE_ACTION (AddHistoryLine, 0) |
728 void MainWindow::slot_actionAddHistoryLine() |
729 { |
729 { |
730 LDObjectPtr obj; |
730 LDObjectPtr obj; |
731 bool ishistory = false, |
731 bool ishistory = false, |
732 prevIsHistory = false; |
732 prevIsHistory = false; |
733 |
733 |
779 |
779 |
780 buildObjList(); |
780 buildObjList(); |
781 delete ui; |
781 delete ui; |
782 } |
782 } |
783 |
783 |
784 DEFINE_ACTION (SplitLines, 0) |
784 void MainWindow::slot_actionSplitLines() |
785 { |
785 { |
786 bool ok; |
786 bool ok; |
787 int segments = QInputDialog::getInt (g_win, APPNAME, "Amount of segments:", cfg::splitLinesSegments, 0, |
787 int segments = QInputDialog::getInt (g_win, APPNAME, "Amount of segments:", cfg::splitLinesSegments, 0, |
788 std::numeric_limits<int>::max(), 1, &ok); |
788 std::numeric_limits<int>::max(), 1, &ok); |
789 |
789 |