// Who When What
// --- ---------- -----------------------------------------------------------
// JLH 05/22/2010 Added this text. :-)
+// JLH 09/17/2010 Fixed preview/snapper rendering somewhat. Some bugs remain.
//
#include "actionmodifytrim.h"
-#include "rs_dialogfactory.h"
-#include "rs_modification.h"
+#include "debug.h"
+#include "dialogfactory.h"
+#include "modification.h"
/**
* @param both Trim both entities.
*/
-ActionModifyTrim::ActionModifyTrim(RS_EntityContainer & container,
- GraphicView & graphicView, bool both): ActionInterface("Trim Entity",
- container, graphicView)
+ActionModifyTrim::ActionModifyTrim(EntityContainer & container,
+ GraphicView & graphicView, bool b):
+ ActionInterface("Trim Entity", container, graphicView),
+ limitEntity(NULL), limitCoord(false), trimEntity(NULL), trimCoord(false),
+ both(b)
{
- trimEntity = NULL;
- trimCoord = Vector(false);
- limitEntity = NULL;
- limitCoord = Vector(false);
- this->both = both;
+// trimEntity = NULL;
+// trimCoord = Vector(false);
+// limitEntity = NULL;
+// limitCoord = Vector(false);
+// this->both = both;
}
ActionModifyTrim::~ActionModifyTrim()
void ActionModifyTrim::trigger()
{
- RS_DEBUG->print("ActionModifyTrim::trigger()");
+ DEBUG->print("ActionModifyTrim::trigger()");
if (trimEntity && trimEntity->isAtomic() && limitEntity)
{
- RS_Modification m(*container, graphicView);
- m.trim(trimCoord, (RS_AtomicEntity *)trimEntity,
- limitCoord, limitEntity, both);
+ Modification m(*container, graphicView);
+ m.trim(trimCoord, (AtomicEntity *)trimEntity, limitCoord, limitEntity,
+ both);
trimEntity = NULL;
if (both)
{
limitEntity->setHighlighted(false);
- graphicView->drawEntity(limitEntity);
+// graphicView->drawEntity(limitEntity);
setStatus(ChooseLimitEntity);
+ graphicView->redraw(); //hm.
}
else
setStatus(ChooseTrimEntity);
- RS_DIALOGFACTORY->updateSelectionWidget(container->countSelected());
+ DIALOGFACTORY->updateSelectionWidget(container->countSelected());
}
}
void ActionModifyTrim::mouseMoveEvent(QMouseEvent * e)
{
- RS_DEBUG->print("ActionModifyTrim::mouseMoveEvent begin");
+ DEBUG->print("ActionModifyTrim::mouseMoveEvent begin");
Vector mouse = graphicView->toGraph(e->x(), e->y());
- RS_Entity * se = catchEntity(e);
+ Entity * se = catchEntity(e);
switch (getStatus())
{
break;
}
- RS_DEBUG->print("ActionModifyTrim::mouseMoveEvent end");
+ DEBUG->print("ActionModifyTrim::mouseMoveEvent end");
}
void ActionModifyTrim::mouseReleaseEvent(QMouseEvent * e)
if (e->button() == Qt::LeftButton)
{
Vector mouse = graphicView->toGraph(e->x(), e->y());
- RS_Entity * se = catchEntity(e);
+ Entity * se = catchEntity(e);
switch (getStatus())
{
if (limitEntity)
{
limitEntity->setHighlighted(true);
- graphicView->drawEntity(limitEntity);
+// graphicView->drawEntity(limitEntity);
setStatus(ChooseTrimEntity);
+ graphicView->redraw(); //hm.
}
break;
trimCoord = mouse;
trimEntity = se;
- if (trimEntity != NULL && trimEntity->isAtomic())
+ if (trimEntity && trimEntity->isAtomic())
trigger();
break;
}
else if (e->button() == Qt::RightButton)
{
- deletePreview();
- deleteSnapper();
+// deletePreview();
+// deleteSnapper();
- if (limitEntity != NULL)
+ if (limitEntity)
{
limitEntity->setHighlighted(false);
- graphicView->drawEntity(limitEntity);
+// graphicView->drawEntity(limitEntity);
}
+
init(getStatus() - 1);
+ graphicView->redraw(); //hm.
}
}
case ChooseLimitEntity:
if (both)
- RS_DIALOGFACTORY->updateMouseWidget(tr("Select first trim entity"),
+ DIALOGFACTORY->updateMouseWidget(tr("Select first trim entity"),
tr("Cancel"));
else
- RS_DIALOGFACTORY->updateMouseWidget(tr("Select limiting entity"),
+ DIALOGFACTORY->updateMouseWidget(tr("Select limiting entity"),
tr("Back"));
break;
case ChooseTrimEntity:
if (both)
- RS_DIALOGFACTORY->updateMouseWidget(tr("Select second trim entity"),
+ DIALOGFACTORY->updateMouseWidget(tr("Select second trim entity"),
tr("Cancel"));
else
- RS_DIALOGFACTORY->updateMouseWidget(tr("Select entity to trim"),
+ DIALOGFACTORY->updateMouseWidget(tr("Select entity to trim"),
tr("Back"));
break;
default:
- RS_DIALOGFACTORY->updateMouseWidget("", "");
+ DIALOGFACTORY->updateMouseWidget("", "");
break;
}
}
void ActionModifyTrim::updateToolBar()
{
- RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarModify);
+ DIALOGFACTORY->requestToolBar(RS2::ToolBarModify);
}
-