|
|
|
@ -60,6 +60,7 @@ |
|
|
|
|
#include "UBGraphicsStroke.h" |
|
|
|
|
|
|
|
|
|
#include "core/memcheck.h" |
|
|
|
|
#include "qtlogger.h" |
|
|
|
|
|
|
|
|
|
qreal UBGraphicsScene::backgroundLayerStart = -20000000.0; |
|
|
|
|
qreal UBGraphicsScene::objectLayerStart = -10000000.0; |
|
|
|
@ -75,6 +76,8 @@ qreal UBGraphicsScene::toolOffsetEraser = 200; |
|
|
|
|
qreal UBGraphicsScene::toolOffsetCurtain = 1000; |
|
|
|
|
qreal UBGraphicsScene::toolOffsetPointer = 1100; |
|
|
|
|
|
|
|
|
|
qreal UBGraphicsScene::toolOffsetCache = 1000;//Didier please define offset you want
|
|
|
|
|
|
|
|
|
|
UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) |
|
|
|
|
: UBCoreGraphicsScene(parent) |
|
|
|
|
, mEraser(0) |
|
|
|
@ -137,6 +140,8 @@ UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
connect(this, SIGNAL(selectionChanged()), this, SLOT(selectionChangedProcessing())); |
|
|
|
|
QtLogger::logger().start("/home/ilia/Documents/tmp/2/log.txt"); |
|
|
|
|
QtLogger::logger().finish(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
UBGraphicsScene::~UBGraphicsScene() |
|
|
|
@ -150,12 +155,16 @@ UBGraphicsScene::~UBGraphicsScene() |
|
|
|
|
|
|
|
|
|
void UBGraphicsScene::selectionChangedProcessing() |
|
|
|
|
{ |
|
|
|
|
QtLogger::logger().start("/home/ilia/Documents/tmp/2/log.txt"); |
|
|
|
|
QtLogger::logger() << "selection processing started\n" << endl; |
|
|
|
|
|
|
|
|
|
// if (selectedItems().count())
|
|
|
|
|
// UBApplication::showMessage("ZValue is " + QString::number(selectedItems().first()->zValue(), 'f'));
|
|
|
|
|
if (selectedItems().count()) |
|
|
|
|
UBApplication::showMessage("ZValue is " + QString::number(selectedItems().first()->zValue(), 'f')); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QList<QGraphicsItem *> allItemsList = items(); |
|
|
|
|
QtLogger::logger() << "=====all items searching...======" << endl; |
|
|
|
|
qreal maxZ = 0.; |
|
|
|
|
for( int i = 0; i < allItemsList.size(); i++ ) |
|
|
|
|
{ |
|
|
|
|
QGraphicsItem *nextItem = allItemsList.at(i); |
|
|
|
@ -165,18 +174,29 @@ void UBGraphicsScene::selectionChangedProcessing() |
|
|
|
|
continue; |
|
|
|
|
//Temporary stub end (sankore 360)
|
|
|
|
|
// qreal zValue = nextItem->zValue();
|
|
|
|
|
nextItem->setZValue(qreal(1)); |
|
|
|
|
if (nextItem->zValue() > maxZ) |
|
|
|
|
maxZ = nextItem->zValue(); |
|
|
|
|
|
|
|
|
|
nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); |
|
|
|
|
// nextItem->setZValue(qreal(1));
|
|
|
|
|
QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') |
|
|
|
|
<< " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; |
|
|
|
|
// qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue);
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QList<QGraphicsItem *> selItemsList = selectedItems(); |
|
|
|
|
QtLogger::logger() << "=====selected items searching...======" << endl; |
|
|
|
|
// QGraphicsItem *nextItem;
|
|
|
|
|
for( int i = 0; i < selItemsList.size(); i++ ) |
|
|
|
|
{ |
|
|
|
|
QGraphicsItem *nextItem = selItemsList.at(i); |
|
|
|
|
QtLogger::logger() << "own Z " << QString::number(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal(), 'f') |
|
|
|
|
<< " next Z " << QString::number(nextItem->zValue(), 'f')<< endl; |
|
|
|
|
// qreal zValue = nextItem->zValue();
|
|
|
|
|
nextItem->setZValue(2); |
|
|
|
|
nextItem->setZValue(maxZ + 0.0001); |
|
|
|
|
// qDebug() << QString(" >>> %1 <<< ").arg(i) << QString(" >>> %1 <<< ").arg(zValue);
|
|
|
|
|
} |
|
|
|
|
QtLogger::logger() << "\nselection processing finished" << endl; |
|
|
|
|
QtLogger::logger().finish(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// MARK: -
|
|
|
|
@ -407,23 +427,23 @@ void UBGraphicsScene::drawEraser(const QPointF &pPoint, bool isFirstDraw) |
|
|
|
|
|
|
|
|
|
if(isFirstDraw) |
|
|
|
|
{ |
|
|
|
|
qreal maxZ = 0.; |
|
|
|
|
QList<QGraphicsItem *> allItemsList = items(); |
|
|
|
|
for( int i = 0; i < allItemsList.size(); i++ ) |
|
|
|
|
{ |
|
|
|
|
QGraphicsItem *nextItem = allItemsList.at(i); |
|
|
|
|
qreal zValue = nextItem->zValue(); |
|
|
|
|
nextItem->setZValue(qreal(1)); |
|
|
|
|
qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); |
|
|
|
|
if (zValue > maxZ) |
|
|
|
|
maxZ = zValue; |
|
|
|
|
nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
mEraser->setZValue(2); |
|
|
|
|
mEraser->setZValue(maxZ + 0.0001); |
|
|
|
|
mEraser->show(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UBGraphicsScene::drawPointer(const QPointF &pPoint, bool isFirstDraw) |
|
|
|
|
{ |
|
|
|
|
qreal pointerDiameter = UBSettings::pointerDiameter / UBApplication::boardController->currentZoom(); |
|
|
|
@ -439,19 +459,20 @@ void UBGraphicsScene::drawPointer(const QPointF &pPoint, bool isFirstDraw) |
|
|
|
|
|
|
|
|
|
if(isFirstDraw) |
|
|
|
|
{ |
|
|
|
|
qreal maxZ = 0.; |
|
|
|
|
QList<QGraphicsItem *> allItemsList = items(); |
|
|
|
|
for( int i = 0; i < allItemsList.size(); i++ ) |
|
|
|
|
{ |
|
|
|
|
QGraphicsItem *nextItem = allItemsList.at(i); |
|
|
|
|
qreal zValue = nextItem->zValue(); |
|
|
|
|
nextItem->setZValue(qreal(1)); |
|
|
|
|
qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); |
|
|
|
|
if (zValue > maxZ) |
|
|
|
|
maxZ = zValue; |
|
|
|
|
nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
mPointer->setZValue(2); |
|
|
|
|
mPointer->setZValue(maxZ + 0.0001); |
|
|
|
|
mPointer->show(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -824,8 +845,8 @@ void UBGraphicsScene::initPolygonItem(UBGraphicsPolygonItem* polygonItem) |
|
|
|
|
|
|
|
|
|
polygonItem->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Graphic)); |
|
|
|
|
|
|
|
|
|
polygonItem->setZValue(getNextDrawingZIndex()); |
|
|
|
|
|
|
|
|
|
// polygonItem->setZValue(getNextDrawingZIndex());
|
|
|
|
|
UBGraphicsItem::assignZValue(polygonItem, getNextDrawingZIndex()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -1035,7 +1056,8 @@ UBGraphicsPixmapItem* UBGraphicsScene::addPixmap(const QPixmap& pPixmap, const Q |
|
|
|
|
|
|
|
|
|
pixmapItem->setFlag(QGraphicsItem::ItemIsMovable, true); |
|
|
|
|
pixmapItem->setFlag(QGraphicsItem::ItemIsSelectable, true); |
|
|
|
|
pixmapItem->setZValue(getNextObjectZIndex()); |
|
|
|
|
// pixmapItem->setZValue(getNextObjectZIndex());
|
|
|
|
|
UBGraphicsItem::assignZValue(pixmapItem, getNextObjectZIndex()); |
|
|
|
|
|
|
|
|
|
pixmapItem->setPixmap(pPixmap); |
|
|
|
|
|
|
|
|
@ -1083,7 +1105,8 @@ UBGraphicsVideoItem* UBGraphicsScene::addVideo(const QUrl& pVideoFileUrl, bool s |
|
|
|
|
|
|
|
|
|
videoItem->setFlag(QGraphicsItem::ItemIsMovable, true); |
|
|
|
|
videoItem->setFlag(QGraphicsItem::ItemIsSelectable, true); |
|
|
|
|
videoItem->setZValue(getNextObjectZIndex()); |
|
|
|
|
// videoItem->setZValue(getNextObjectZIndex());
|
|
|
|
|
UBGraphicsItem::assignZValue(videoItem, getNextObjectZIndex()); |
|
|
|
|
|
|
|
|
|
addItem(videoItem); |
|
|
|
|
|
|
|
|
@ -1113,7 +1136,8 @@ UBGraphicsAudioItem* UBGraphicsScene::addAudio(const QUrl& pAudioFileUrl, bool s |
|
|
|
|
|
|
|
|
|
audioItem->setFlag(QGraphicsItem::ItemIsMovable, true); |
|
|
|
|
audioItem->setFlag(QGraphicsItem::ItemIsSelectable, true); |
|
|
|
|
audioItem->setZValue(getNextObjectZIndex()); |
|
|
|
|
// audioItem->setZValue(getNextObjectZIndex());
|
|
|
|
|
UBGraphicsItem::assignZValue(audioItem, getNextObjectZIndex()); |
|
|
|
|
|
|
|
|
|
addItem(audioItem); |
|
|
|
|
|
|
|
|
@ -1178,7 +1202,8 @@ UBGraphicsW3CWidgetItem* UBGraphicsScene::addW3CWidget(const QUrl& pWidgetUrl, c |
|
|
|
|
void UBGraphicsScene::addGraphicsWidget(UBGraphicsWidgetItem* graphicsWidget, const QPointF& pPos) |
|
|
|
|
{ |
|
|
|
|
graphicsWidget->setFlag(QGraphicsItem::ItemIsSelectable, true); |
|
|
|
|
graphicsWidget->setZValue(getNextObjectZIndex()); |
|
|
|
|
// graphicsWidget->setZValue(getNextObjectZIndex());
|
|
|
|
|
UBGraphicsItem::assignZValue(graphicsWidget, getNextObjectZIndex()); |
|
|
|
|
|
|
|
|
|
addItem(graphicsWidget); |
|
|
|
|
|
|
|
|
@ -1238,7 +1263,8 @@ UBGraphicsSvgItem* UBGraphicsScene::addSvg(const QUrl& pSvgFileUrl, const QPoint |
|
|
|
|
|
|
|
|
|
svgItem->setFlag(QGraphicsItem::ItemIsMovable, true); |
|
|
|
|
svgItem->setFlag(QGraphicsItem::ItemIsSelectable, true); |
|
|
|
|
svgItem->setZValue(getNextObjectZIndex()); |
|
|
|
|
// svgItem->setZValue(getNextObjectZIndex());
|
|
|
|
|
UBGraphicsItem::assignZValue(svgItem, getNextObjectZIndex()); |
|
|
|
|
|
|
|
|
|
qreal sscale = 1 / UBApplication::boardController->systemScaleFactor(); |
|
|
|
|
svgItem->scale(sscale, sscale); |
|
|
|
@ -1271,7 +1297,8 @@ UBGraphicsTextItem* UBGraphicsScene::addTextWithFont(const QString& pString, con |
|
|
|
|
{ |
|
|
|
|
UBGraphicsTextItem *textItem = new UBGraphicsTextItem(); |
|
|
|
|
textItem->setPlainText(pString); |
|
|
|
|
textItem->setZValue(getNextObjectZIndex()); |
|
|
|
|
// textItem->setZValue(getNextObjectZIndex());
|
|
|
|
|
UBGraphicsItem::assignZValue(textItem, getNextObjectZIndex()); |
|
|
|
|
|
|
|
|
|
QFont font = textItem->font(); |
|
|
|
|
|
|
|
|
@ -1326,7 +1353,8 @@ UBGraphicsTextItem *UBGraphicsScene::addTextHtml(const QString &pString, const Q |
|
|
|
|
UBGraphicsTextItem *textItem = new UBGraphicsTextItem(); |
|
|
|
|
textItem->setPlainText(""); |
|
|
|
|
textItem->setHtml(pString); |
|
|
|
|
textItem->setZValue(getNextObjectZIndex()); |
|
|
|
|
// textItem->setZValue(getNextObjectZIndex());
|
|
|
|
|
UBGraphicsItem::assignZValue(textItem, getNextObjectZIndex()); |
|
|
|
|
|
|
|
|
|
addItem(textItem); |
|
|
|
|
textItem->show(); |
|
|
|
@ -1337,7 +1365,6 @@ UBGraphicsTextItem *UBGraphicsScene::addTextHtml(const QString &pString, const Q |
|
|
|
|
connect(textItem, SIGNAL(textUndoCommandAdded(UBGraphicsTextItem *)), |
|
|
|
|
this, SLOT(textUndoCommandAdded(UBGraphicsTextItem *))); |
|
|
|
|
|
|
|
|
|
// textItem->setSelected(true);
|
|
|
|
|
textItem->setFocus(); |
|
|
|
|
|
|
|
|
|
setDocumentUpdated(); |
|
|
|
@ -1425,7 +1452,8 @@ QGraphicsItem* UBGraphicsScene::setAsBackgroundObject(QGraphicsItem* item, bool |
|
|
|
|
item->setAcceptedMouseButtons(Qt::NoButton); |
|
|
|
|
item->setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::FixedBackground); |
|
|
|
|
|
|
|
|
|
item->setZValue(backgroundLayerStart); |
|
|
|
|
// item->setZValue(backgroundLayerStart);
|
|
|
|
|
UBGraphicsItem::assignZValue(item, backgroundLayerStart); |
|
|
|
|
|
|
|
|
|
if (pAdaptTransformation) |
|
|
|
|
{ |
|
|
|
@ -1529,7 +1557,9 @@ void UBGraphicsScene::addRuler(QPointF center) |
|
|
|
|
QRectF rect = ruler->rect(); |
|
|
|
|
ruler->setRect(center.x() - rect.width()/2, center.y() - rect.height()/2, rect.width(), rect.height()); |
|
|
|
|
|
|
|
|
|
ruler->setZValue(toolLayerStart + toolOffsetRuler); |
|
|
|
|
// ruler->setZValue(toolLayerStart + toolOffsetRuler);
|
|
|
|
|
UBGraphicsItem::assignZValue(ruler, toolLayerStart + toolOffsetRuler); |
|
|
|
|
|
|
|
|
|
ruler->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); |
|
|
|
|
|
|
|
|
|
addItem(ruler); |
|
|
|
@ -1546,7 +1576,9 @@ void UBGraphicsScene::addProtractor(QPointF center) |
|
|
|
|
UBGraphicsProtractor* protractor = new UBGraphicsProtractor(); // mem : owned and destroyed by the scene
|
|
|
|
|
mTools << protractor; |
|
|
|
|
|
|
|
|
|
protractor->setZValue(toolLayerStart + toolOffsetProtractor); |
|
|
|
|
// protractor->setZValue(toolLayerStart + toolOffsetProtractor);
|
|
|
|
|
UBGraphicsItem::assignZValue(protractor, toolLayerStart + toolOffsetProtractor); |
|
|
|
|
|
|
|
|
|
protractor->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); |
|
|
|
|
|
|
|
|
|
addItem(protractor); |
|
|
|
@ -1565,7 +1597,9 @@ void UBGraphicsScene::addTriangle(QPointF center) |
|
|
|
|
UBGraphicsTriangle* triangle = new UBGraphicsTriangle(); // mem : owned and destroyed by the scene
|
|
|
|
|
mTools << triangle; |
|
|
|
|
|
|
|
|
|
triangle->setZValue(toolLayerStart + toolOffsetProtractor); |
|
|
|
|
// triangle->setZValue(toolLayerStart + toolOffsetProtractor);
|
|
|
|
|
UBGraphicsItem::assignZValue(triangle, toolLayerStart + toolOffsetTriangle); |
|
|
|
|
|
|
|
|
|
triangle->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); |
|
|
|
|
|
|
|
|
|
addItem(triangle); |
|
|
|
@ -1700,7 +1734,9 @@ void UBGraphicsScene::addCompass(QPointF center) |
|
|
|
|
QRectF rect = compass->rect(); |
|
|
|
|
compass->setRect(center.x() - rect.width() / 2, center.y() - rect.height() / 2, rect.width(), rect.height()); |
|
|
|
|
|
|
|
|
|
compass->setZValue(toolLayerStart + toolOffsetCompass); |
|
|
|
|
// compass->setZValue(toolLayerStart + toolOffsetCompass);
|
|
|
|
|
UBGraphicsItem::assignZValue(compass, toolLayerStart + toolOffsetCompass); |
|
|
|
|
|
|
|
|
|
compass->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); |
|
|
|
|
|
|
|
|
|
compass->setVisible(true); |
|
|
|
@ -1740,7 +1776,10 @@ void UBGraphicsScene::addMask() |
|
|
|
|
view = (QGraphicsView*)UBApplication::boardController->controlView(); |
|
|
|
|
|
|
|
|
|
QPolygonF polygon = view->mapToScene(view->rect()); |
|
|
|
|
curtain->setZValue(toolLayerStart + toolOffsetCurtain); |
|
|
|
|
|
|
|
|
|
// curtain->setZValue(toolLayerStart + toolOffsetCurtain);
|
|
|
|
|
UBGraphicsItem::assignZValue(curtain, toolLayerStart + toolOffsetCurtain); |
|
|
|
|
|
|
|
|
|
QRectF rect = polygon.boundingRect(); |
|
|
|
|
qreal xScale = view->matrix().m11(); |
|
|
|
|
qreal yScale = view->matrix().m22(); |
|
|
|
|