X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmirroraction.cpp;h=720692ed85130725ac3c2170206fa2ec251463ea;hb=4b37ccbdf263a4798e53a62e33d869a728ace283;hp=61b14ac1276be53c1199b3b310db421e0ff07834;hpb=642cf72c11b49a9e00128ab6258a2438c785a5ab;p=architektonas diff --git a/src/mirroraction.cpp b/src/mirroraction.cpp index 61b14ac..720692e 100644 --- a/src/mirroraction.cpp +++ b/src/mirroraction.cpp @@ -12,6 +12,9 @@ // #include "mirroraction.h" +#include "applicationwindow.h" +#include "container.h" +#include "drawingview.h" #include "line.h" #include "mathconstants.h" #include "painter.h" @@ -24,7 +27,7 @@ enum { FIRST_POINT, NEXT_POINT }; MirrorAction::MirrorAction(): state(FIRST_POINT), line(NULL), - shiftWasPressedOnNextPoint(false) + shiftWasPressedOnNextPoint(false), mirror(new Container(Vector())) { } @@ -57,6 +60,8 @@ MirrorAction::~MirrorAction() // QString text = tr("Length: %1 in."); // text = text.arg(Vector::Magnitude(p1, p2)); painter->DrawInformativeText(text); + + mirror->Draw(painter); } } @@ -78,7 +83,22 @@ MirrorAction::~MirrorAction() if (state == FIRST_POINT) p1 = point; else + { p2 = point; + + mirror->Clear(); + int itemsSelected = ApplicationWindow::drawing->document.ItemsSelected(); + + if (itemsSelected == 0) + return; + + for(int i=0; idocument.SelectedItem(i); + Object * mirrored = object->Mirror(p1, p2); + mirror->Add(mirrored); + } + } }