Adapted the compass to the strokes as objects

preferencesAboutTextFull
shibakaneki 12 years ago
parent bc875a6672
commit ef45f3fce3
  1. 31
      src/domain/UBGraphicsScene.cpp
  2. 2
      src/domain/UBGraphicsScene.h
  3. 3
      src/tools/UBGraphicsProtractor.cpp

@ -507,7 +507,9 @@ bool UBGraphicsScene::inputDeviceRelease()
}
UBDrawingController *dc = UBDrawingController::drawingController();
if (dc->isDrawingTool())
// TODO: Find a way to detect that we just did a compass drawing and replace the mArcPolygonItem just below
if (dc->isDrawingTool() || mDrawWithCompass)
{
if (mCurrentStroke)
{
@ -525,10 +527,7 @@ bool UBGraphicsScene::inputDeviceRelease()
// TODO LATER : Generate well pressure-interpolated polygons and create the line group with them
mAddedItems.clear();
// Add the groupItem in mAddedItem
mAddedItems << pStrokes;
addItem(pStrokes);
}
@ -536,6 +535,28 @@ bool UBGraphicsScene::inputDeviceRelease()
delete mCurrentStroke;
mCurrentStroke = 0;
}
}else if(mArcPolygonItem){
if(eDrawingMode_Vector == dc->drawingMode()){
UBGraphicsStrokesGroup* pStrokes = new UBGraphicsStrokesGroup();
// Add the arc
mAddedItems.remove(mArcPolygonItem);
removeItem(mArcPolygonItem);
UBCoreGraphicsScene::removeItemFromDeletion(mArcPolygonItem);
pStrokes->addToGroup(mArcPolygonItem);
// Add the center cross
foreach(QGraphicsItem* item, mAddedItems){
removeItem(item);
UBCoreGraphicsScene::removeItemFromDeletion(item);
pStrokes->addToGroup(item);
}
mAddedItems.clear();
mAddedItems << pStrokes;
addItem(pStrokes);
mDrawWithCompass = false;
}
}
}
@ -635,6 +656,7 @@ void UBGraphicsScene::moveTo(const QPointF &pPoint)
mPreviousWidth = -1.0;
mPreviousPolygonItems.clear();
mArcPolygonItem = 0;
mDrawWithCompass = false;
}
@ -817,6 +839,7 @@ void UBGraphicsScene::eraseLineTo(const QPointF &pEndPoint, const qreal &pWidth)
void UBGraphicsScene::drawArcTo(const QPointF& pCenterPoint, qreal pSpanAngle)
{
mDrawWithCompass = true;
if (mArcPolygonItem)
{
mAddedItems.remove(mArcPolygonItem);

@ -397,6 +397,8 @@ public slots:
UBZLayerController *mZLayerController;
UBGraphicsPolygonItem* mpLastPolygon;
bool mDrawWithCompass;
};

@ -79,8 +79,7 @@ void UBGraphicsProtractor::paint(QPainter *painter, const QStyleOptionGraphicsIt
painter->setFont(QFont("Arial"));
painter->setPen(drawColor());
painter->setBrush(fillBrush());
painter->drawPie(QRectF(rect().center().x() - radius(), rect().center().y() - radius(),
2 * radius(), 2 * radius()), mStartAngle * 16, mSpan * 16);
painter->drawPie(QRectF(rect().center().x() - radius(), rect().center().y() - radius(), 2 * radius(), 2 * radius()), mStartAngle * 16, mSpan * 16);
paintGraduations(painter);
paintButtons(painter);
paintAngleMarker(painter);

Loading…
Cancel
Save