// Who When What
// --- ---------- -----------------------------------------------------------
// JLH 06/03/2010 Added this text. :-)
+// JLH 09/17/2010 Fixed preview/snapper rendering.
//
#include "actiondrawarc3p.h"
#include "actiondrawarc.h"
-#include "rs_commandevent.h"
+#include "commandevent.h"
#include "commands.h"
-#include "rs_dialogfactory.h"
+#include "dialogfactory.h"
#include "graphicview.h"
-#include "rs_preview.h"
+#include "preview.h"
-ActionDrawArc3P::ActionDrawArc3P(RS_EntityContainer & container, GraphicView & graphicView):
+ActionDrawArc3P::ActionDrawArc3P(EntityContainer & container, GraphicView & graphicView):
ActionInterface("Draw arcs 3P", container, graphicView)
{
reset();
if (data.isValid())
{
- RS_Arc * arc = new RS_Arc(container, data);
+ Arc * arc = new Arc(container, data);
arc->setLayerToActive();
arc->setPenToActive();
container->addEntity(arc);
// upd. undo list:
- if (document != NULL)
+ if (document)
{
document->startUndoCycle();
document->addUndoable(arc);
document->endUndoCycle();
}
- deleteSnapper();
- graphicView->moveRelativeZero(Vector(0.0, 0.0));
- graphicView->drawEntity(arc);
+// deleteSnapper();
+// graphicView->moveRelativeZero(Vector(0.0, 0.0));
+// graphicView->drawEntity(arc);
graphicView->moveRelativeZero(arc->getEndpoint());
- drawSnapper();
-
+// drawSnapper();
+ graphicView->redraw();
setStatus(SetPoint1);
reset();
}
else
- RS_DIALOGFACTORY->commandMessage(tr("Invalid arc data."));
+ DIALOGFACTORY->commandMessage(tr("Invalid arc data."));
}
void ActionDrawArc3P::preparePreview()
if (point1.valid && point2.valid && point3.valid)
{
- RS_Arc arc(NULL, data);
- bool suc = arc.createFrom3P(point1, point2, point3);
+ Arc arc(NULL, data);
+ bool success = arc.createFrom3P(point1, point2, point3);
- if (suc)
+ if (success)
data = arc.getData();
}
}
if (point1.valid)
{
-// RS_Line * line = new RS_Line(preview, RS_LineData(point1, point2));
+// Line * line = new Line(preview, LineData(point1, point2));
//
// deletePreview();
// clearPreview();
// preview->addEntity(line);
// drawPreview();
+ graphicView->preview.clear();
+ graphicView->preview.addEntity(new Line(&(graphicView->preview), LineData(point1, point2)));
}
break;
if (data.isValid())
{
-// RS_Arc * arc = new RS_Arc(preview, data);
+// Arc * arc = new Arc(preview, data);
//
// deletePreview();
// clearPreview();
// preview->addEntity(arc);
// drawPreview();
+ graphicView->preview.clear();
+ graphicView->preview.addEntity(new Arc(&(graphicView->preview), data));
}
break;
default:
break;
}
+
+ graphicView->redraw();
}
void ActionDrawArc3P::mouseReleaseEvent(QMouseEvent * e)
}
else if (e->button() == Qt::RightButton)
{
- deletePreview();
- deleteSnapper();
+// deletePreview();
+// deleteSnapper();
init(getStatus() - 1);
+ graphicView->redraw();
}
}
}
}
-void ActionDrawArc3P::commandEvent(RS_CommandEvent * e)
+void ActionDrawArc3P::commandEvent(CommandEvent * e)
{
QString c = e->getCommand().toLower();
if (checkCommand("help", c))
{
- RS_DIALOGFACTORY->commandMessage(msgAvailableCommands()
+ DIALOGFACTORY->commandMessage(msgAvailableCommands()
+ getAvailableCommands().join(", "));
return;
}
- if (RS_COMMANDS->checkCommand("center", c, rtti()))
+ if (COMMANDS->checkCommand("center", c, rtti()))
{
finish();
graphicView->setCurrentAction(new ActionDrawArc(*container, *graphicView));
switch (getStatus())
{
case SetPoint1:
- RS_DIALOGFACTORY->updateMouseWidget(tr("Specify startpoint or [Center]"), tr("Cancel"));
+ DIALOGFACTORY->updateMouseWidget(tr("Specify startpoint or [Center]"), tr("Cancel"));
break;
case SetPoint2:
- RS_DIALOGFACTORY->updateMouseWidget(tr("Specify second point"), tr("Back"));
+ DIALOGFACTORY->updateMouseWidget(tr("Specify second point"), tr("Back"));
break;
case SetPoint3:
- RS_DIALOGFACTORY->updateMouseWidget(tr("Specify endpoint"), tr("Back"));
+ DIALOGFACTORY->updateMouseWidget(tr("Specify endpoint"), tr("Back"));
break;
default:
- RS_DIALOGFACTORY->updateMouseWidget("", "");
+ DIALOGFACTORY->updateMouseWidget("", "");
break;
}
}
void ActionDrawArc3P::updateToolBar()
{
if (!isFinished())
- RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap);
+ DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap);
else
- RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarArcs);
+ DIALOGFACTORY->requestToolBar(RS2::ToolBarArcs);
}