// Who When What
// --- ---------- -----------------------------------------------------------
// JLH 06/03/2010 Added this text. :-)
+// JLH 09/17/2010 Fixed preview/snapper rendering.
//
#include "actiondrawarc.h"
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);
graphicView->moveRelativeZero(arc->getCenter());
- drawSnapper();
-
+ graphicView->redraw(); //hm.
setStatus(SetCenter);
reset();
if (data.center.valid)
{
data.radius = data.center.distanceTo(mouse);
- deletePreview();
- clearPreview();
-// preview->addEntity(new Circle(preview, CircleData(data.center, data.radius)));
- drawPreview();
+ graphicView->preview.clear();
+ graphicView->preview.addEntity(new Circle(&(graphicView->preview), CircleData(data.center, data.radius)));
}
break;
else
data.angle2 = Math::correctAngle(data.angle1 + M_PI / 3);
- deletePreview();
- clearPreview();
-// preview->addEntity(new Arc(preview, data));
- drawPreview();
+ graphicView->preview.clear();
+ graphicView->preview.addEntity(new Arc(&(graphicView->preview), data));
break;
case SetAngle2:
data.angle2 = data.center.angleTo(mouse);
- deletePreview();
- clearPreview();
-// preview->addEntity(new Arc(preview, data));
- drawPreview();
+ graphicView->preview.clear();
+ graphicView->preview.addEntity(new Arc(&(graphicView->preview), data));
break;
case SetIncAngle:
data.angle2 = data.angle1 + data.center.angleTo(mouse);
- deletePreview();
- clearPreview();
-// preview->addEntity(new Arc(preview, data));
- drawPreview();
+ graphicView->preview.clear();
+ graphicView->preview.addEntity(new Arc(&(graphicView->preview), data));
break;
case SetChordLength:
if (fabs(x / (2 * data.radius)) <= 1.0)
{
data.angle2 = data.angle1 + asin(x / (2 * data.radius)) * 2;
- deletePreview();
- clearPreview();
-// preview->addEntity(new Arc(preview, data));
- drawPreview();
+ graphicView->preview.clear();
+ graphicView->preview.addEntity(new Arc(&(graphicView->preview), data));
}
}
- break;
+ break;
default:
break;
}
+ graphicView->redraw();
DEBUG->print("ActionDrawArc::mouseMoveEvent end");
}
}
else if (e->button() == Qt::RightButton)
{
- deletePreview();
- deleteSnapper();
+// deletePreview();
+// deleteSnapper();
init(getStatus() - 1);
+ graphicView->redraw(); //hm.
}
}
switch (getStatus())
{
- case SetRadius: {
+ case SetRadius:
+ {
bool ok;
double r = Math::eval(c, &ok);
- if (ok == true)
+ if (ok)
{
data.radius = r;
setStatus(SetAngle1);
}
- else if (DIALOGFACTORY != NULL)
+ else if (DIALOGFACTORY)
DIALOGFACTORY->commandMessage(tr("Not a valid expression"));
-
}
- break;
+ break;
- case SetAngle1: {
+ case SetAngle1:
+ {
bool ok;
double a = Math::eval(c, &ok);
- if (ok == true)
+ if (ok)
{
data.angle1 = Math::deg2rad(a);
setStatus(SetAngle2);
}
- else if (DIALOGFACTORY != NULL)
+ else if (DIALOGFACTORY)
DIALOGFACTORY->commandMessage(tr("Not a valid expression"));
-
}
- break;
+ break;
case SetAngle2:
bool ok;
double a = Math::eval(c, &ok);
- if (ok == true)
+ if (ok)
{
data.angle2 = Math::deg2rad(a);
trigger();
}
- else if (DIALOGFACTORY != NULL)
+ else if (DIALOGFACTORY)
DIALOGFACTORY->commandMessage(tr("Not a valid expression"));
-
}
break;
- case SetIncAngle: {
+ case SetIncAngle:
+ {
bool ok;
double a = Math::eval(c, &ok);
- if (ok == true)
+ if (ok)
{
data.angle2 = data.angle1 + Math::deg2rad(a);
trigger();
}
- else if (DIALOGFACTORY != NULL)
+ else if (DIALOGFACTORY)
DIALOGFACTORY->commandMessage(tr("Not a valid expression"));
-
}
- break;
+ break;
- case SetChordLength: {
+ case SetChordLength:
+ {
bool ok;
double l = Math::eval(c, &ok);
- if (ok == true)
+ if (ok)
{
if (fabs(l / (2 * data.radius)) <= 1.0)
{
data.angle2 = data.angle1 + asin(l / (2 * data.radius)) * 2;
trigger();
}
- else if (DIALOGFACTORY != NULL)
- DIALOGFACTORY->commandMessage(
- tr("Not a valid chord length"));
+ else if (DIALOGFACTORY)
+ DIALOGFACTORY->commandMessage(tr("Not a valid chord length"));
}
- else if (DIALOGFACTORY != NULL)
+ else if (DIALOGFACTORY)
DIALOGFACTORY->commandMessage(tr("Not a valid expression"));
-
}
- break;
+ break;
default:
break;
void ActionDrawArc::updateMouseButtonHints()
{
- if (DIALOGFACTORY != NULL)
+ if (DIALOGFACTORY)
{
switch (getStatus())
{