X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmirroraction.cpp;h=720692ed85130725ac3c2170206fa2ec251463ea;hb=4b37ccbdf263a4798e53a62e33d869a728ace283;hp=998a0e1f16b5f90344e355d1423b59b0fa44c3c4;hpb=a42277d4d950d32459b16b3ec8ee8287c9c0afab;p=architektonas diff --git a/src/mirroraction.cpp b/src/mirroraction.cpp index 998a0e1..720692e 100644 --- a/src/mirroraction.cpp +++ b/src/mirroraction.cpp @@ -13,6 +13,8 @@ #include "mirroraction.h" #include "applicationwindow.h" +#include "container.h" +#include "drawingview.h" #include "line.h" #include "mathconstants.h" #include "painter.h" @@ -25,7 +27,7 @@ enum { FIRST_POINT, NEXT_POINT }; MirrorAction::MirrorAction(): state(FIRST_POINT), line(NULL), - shiftWasPressedOnNextPoint(false) + shiftWasPressedOnNextPoint(false), mirror(new Container(Vector())) { } @@ -58,6 +60,8 @@ MirrorAction::~MirrorAction() // QString text = tr("Length: %1 in."); // text = text.arg(Vector::Magnitude(p1, p2)); painter->DrawInformativeText(text); + + mirror->Draw(painter); } } @@ -81,6 +85,19 @@ MirrorAction::~MirrorAction() 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); + } } }