// Part of the Architektonas Project
// Originally part of QCad Community Edition by Andrew Mustun
// Extensively rewritten and refactored by James L. Hammons
-// (C) 2010 Underground Software
+// Portions copyright (C) 2001-2003 RibbonSoft
+// Copyright (C) 2010 Underground Software
+// See the README and GPLv2 files for licensing and warranty information
//
// JLH = James L. Hammons <jlhamm@acm.org>
//
// Who When What
// --- ---------- -----------------------------------------------------------
// JLH 06/03/2010 Added this text. :-)
+// JLH 09/11/2010 Fixed preview/snapper rendering.
//
#include "actiondimleader.h"
-#include "rs_commandevent.h"
-#include "rs_dialogfactory.h"
+#include "commandevent.h"
+#include "debug.h"
+#include "dialogfactory.h"
#include "graphicview.h"
-#include "rs_preview.h"
+#include "preview.h"
-ActionDimLeader::ActionDimLeader(RS_EntityContainer & container, GraphicView & graphicView):
+ActionDimLeader::ActionDimLeader(EntityContainer & container, GraphicView & graphicView):
ActionInterface("Draw leaders", container, graphicView)
{
reset();
void ActionDimLeader::reset()
{
- //data = RS_LineData(Vector(false), Vector(false));
- //start = Vector(false);
- //history.clear();
points.clear();
}
if (points.count() > 0)
{
- RS_Leader * leader = new RS_Leader(container, RS_LeaderData(true));
+ Leader * leader = new Leader(container, LeaderData(true));
leader->setLayerToActive();
leader->setPenToActive();
-// for(Vector * v=points.first(); v!=NULL; v=points.next())
-// leader->addVertex(*v);
- for (int i = 0; i < points.size(); i++)
+ for(int i=0; i<points.size(); i++)
leader->addVertex(*(points[i]));
container->addEntity(leader);
// upd. undo list:
- if (document != NULL)
+ if (document)
{
document->startUndoCycle();
document->addUndoable(leader);
document->endUndoCycle();
}
- deletePreview();
- clearPreview();
- deleteSnapper();
- Vector rz = graphicView->getRelativeZero();
- graphicView->moveRelativeZero(Vector(0.0, 0.0));
- graphicView->drawEntity(leader);
- graphicView->moveRelativeZero(rz);
- //drawSnapper();
-
- RS_DEBUG->print("ActionDimLeader::trigger(): leader added: %d", leader->getId());
+// deletePreview();
+// clearPreview();
+// deleteSnapper();
+// Vector rz = graphicView->getRelativeZero();
+// graphicView->moveRelativeZero(Vector(0.0, 0.0));
+// graphicView->drawEntity(leader);
+// graphicView->moveRelativeZero(rz);
+ graphicView->preview.clear(); //hm.
+ graphicView->redraw();
+
+ DEBUG->print("ActionDimLeader::trigger(): leader added: %d", leader->getId());
}
}
void ActionDimLeader::mouseMoveEvent(QMouseEvent * e)
{
- RS_DEBUG->print("ActionDimLeader::mouseMoveEvent begin");
+ DEBUG->print("ActionDimLeader::mouseMoveEvent begin");
Vector mouse = snapPoint(e);
if (getStatus() == SetEndpoint && points.last() != NULL)
{
- deletePreview();
- clearPreview();
+// deletePreview();
+// clearPreview();
+ graphicView->preview.clear();
// fill in lines that were already set:
Vector last(false);
Vector * v = points[i];
// if (last.valid)
-// preview->addEntity(new RS_Line(preview, RS_LineData(last, *v)));
+// preview->addEntity(new Line(preview, LineData(last, *v)));
+ if (last.valid)
+ graphicView->preview.addEntity(new Line(&(graphicView->preview), LineData(last, *v)));
last = *v;
}
Vector p = *points.last();
-// preview->addEntity(new RS_Line(preview, RS_LineData(p, mouse)));
- drawPreview();
+// preview->addEntity(new Line(preview, LineData(p, mouse)));
+// drawPreview();
+ graphicView->preview.addEntity(new Line(&(graphicView->preview), LineData(p, mouse)));
}
- RS_DEBUG->print("ActionDimLeader::mouseMoveEvent end");
+ graphicView->redraw();
+
+ DEBUG->print("ActionDimLeader::mouseMoveEvent end");
}
void ActionDimLeader::mouseReleaseEvent(QMouseEvent * e)
}
else
{
- deletePreview();
- deleteSnapper();
+// deletePreview();
+// deleteSnapper();
init(getStatus() - 1);
+ graphicView->redraw(); //hm.
}
}
}
}
}
-void ActionDimLeader::commandEvent(RS_CommandEvent * e)
+void ActionDimLeader::commandEvent(CommandEvent * e)
{
QString c = e->getCommand().toLower();
if (checkCommand("help", c))
{
- if (RS_DIALOGFACTORY != NULL)
- RS_DIALOGFACTORY->commandMessage(msgAvailableCommands()
+ if (DIALOGFACTORY)
+ DIALOGFACTORY->commandMessage(msgAvailableCommands()
+ getAvailableCommands().join(", "));
return;
void ActionDimLeader::updateMouseButtonHints()
{
- if (RS_DIALOGFACTORY != NULL)
+ if (DIALOGFACTORY != NULL)
{
switch (getStatus())
{
case SetStartpoint:
- RS_DIALOGFACTORY->updateMouseWidget(tr("Specify target point"), tr("Cancel"));
+ DIALOGFACTORY->updateMouseWidget(tr("Specify target point"), tr("Cancel"));
break;
case SetEndpoint:
- RS_DIALOGFACTORY->updateMouseWidget(tr("Specify next point"), tr("Finish"));
+ DIALOGFACTORY->updateMouseWidget(tr("Specify next point"), tr("Finish"));
break;
default:
- RS_DIALOGFACTORY->updateMouseWidget("", "");
+ DIALOGFACTORY->updateMouseWidget("", "");
break;
}
}
void ActionDimLeader::updateToolBar()
{
- if (RS_DIALOGFACTORY)
+ if (DIALOGFACTORY)
{
if (!isFinished())
- RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap);
+ DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap);
else
- RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarDim);
+ DIALOGFACTORY->requestToolBar(RS2::ToolBarDim);
}
}