diff --git a/src/domain/UBGraphicsDelegateFrame.cpp b/src/domain/UBGraphicsDelegateFrame.cpp index 97694e9c..5d26595b 100644 --- a/src/domain/UBGraphicsDelegateFrame.cpp +++ b/src/domain/UBGraphicsDelegateFrame.cpp @@ -582,7 +582,7 @@ void UBGraphicsDelegateFrame::positionHandles() { QRectF itemRect = delegated()->boundingRect(); - if (mDelegate->getToolBarItem()->isVisibleOnBoard() + if (mDelegate->getToolBarItem() && mDelegate->getToolBarItem()->isVisibleOnBoard() && mDelegate->getToolBarItem()->isShifting()) { QPointF graphicsItemPosition = itemRect.topLeft(); diff --git a/src/domain/UBGraphicsGroupContainerItemDelegate.cpp b/src/domain/UBGraphicsGroupContainerItemDelegate.cpp index a78749f1..d514c0e5 100644 --- a/src/domain/UBGraphicsGroupContainerItemDelegate.cpp +++ b/src/domain/UBGraphicsGroupContainerItemDelegate.cpp @@ -13,7 +13,7 @@ #include "core/memcheck.h" UBGraphicsGroupContainerItemDelegate::UBGraphicsGroupContainerItemDelegate(QGraphicsItem *pDelegated, QObject *parent) : - UBGraphicsItemDelegate(pDelegated, parent), mDestroyGroupButton(0) + UBGraphicsItemDelegate(pDelegated, parent, true, false, false), mDestroyGroupButton(0) { diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index e4a7f747..8234a02f 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -94,7 +94,7 @@ void DelegateButton::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) event->setAccepted(!mIsTransparentToMouseEvent); } -UBGraphicsItemDelegate::UBGraphicsItemDelegate(QGraphicsItem* pDelegated, QObject * parent, bool respectRatio, bool canRotate) +UBGraphicsItemDelegate::UBGraphicsItemDelegate(QGraphicsItem* pDelegated, QObject * parent, bool respectRatio, bool canRotate, bool useToolBar) : QObject(parent) , mDelegated(pDelegated) , mDeleteButton(NULL) @@ -113,13 +113,15 @@ UBGraphicsItemDelegate::UBGraphicsItemDelegate(QGraphicsItem* pDelegated, QObjec , mMimeData(NULL) , mFlippable(false) , mToolBarItem(NULL) + , mToolBarUsed(useToolBar) { // NOOP } void UBGraphicsItemDelegate::init() { - mToolBarItem = new UBGraphicsToolBarItem(mDelegated); + if (mToolBarUsed) + mToolBarItem = new UBGraphicsToolBarItem(mDelegated); mFrame = new UBGraphicsDelegateFrame(this, QRectF(0, 0, 0, 0), mFrameWidth, mRespectRatio); mFrame->hide(); @@ -334,7 +336,7 @@ void UBGraphicsItemDelegate::positionHandles() updateButtons(true); - if (mToolBarItem->isVisibleOnBoard()) + if (mToolBarItem && mToolBarItem->isVisibleOnBoard()) { mToolBarItem->positionHandles(); mToolBarItem->update(); @@ -345,7 +347,8 @@ void UBGraphicsItemDelegate::positionHandles() button->hide(); mFrame->hide(); - mToolBarItem->hide(); + if (mToolBarItem) + mToolBarItem->hide(); } } @@ -385,7 +388,6 @@ void UBGraphicsItemDelegate::remove(bool canUndo) scene->removeItem(mFrame); scene->removeItem(mDelegated); - scene->removeItem(mToolBarItem); if (canUndo) { diff --git a/src/domain/UBGraphicsItemDelegate.h b/src/domain/UBGraphicsItemDelegate.h index 9092f015..78ab50db 100644 --- a/src/domain/UBGraphicsItemDelegate.h +++ b/src/domain/UBGraphicsItemDelegate.h @@ -183,7 +183,7 @@ class UBGraphicsItemDelegate : public QObject Q_OBJECT public: - UBGraphicsItemDelegate(QGraphicsItem* pDelegated, QObject * parent = 0, bool respectRatio = true, bool canRotate = false); + UBGraphicsItemDelegate(QGraphicsItem* pDelegated, QObject * parent = 0, bool respectRatio = true, bool canRotate = false, bool useToolBar = true); virtual ~UBGraphicsItemDelegate(); @@ -300,6 +300,7 @@ private: /** A boolean saying that this object can be flippable (mirror effect) */ bool mFlippable; + bool mToolBarUsed; }; diff --git a/src/domain/UBGraphicsPDFItem.cpp b/src/domain/UBGraphicsPDFItem.cpp index fcaa5a7c..2383c82c 100644 --- a/src/domain/UBGraphicsPDFItem.cpp +++ b/src/domain/UBGraphicsPDFItem.cpp @@ -28,7 +28,7 @@ UBGraphicsPDFItem::UBGraphicsPDFItem(PDFRenderer *renderer, int pageNumber, QGra { setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::Object); //deprecated setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::BackgroundItem)); //Necessary to set if we want z value to be assigned correctly - mDelegate = new UBGraphicsItemDelegate(this,0); + mDelegate = new UBGraphicsItemDelegate(this,0, true, false, false); mDelegate->init(); } diff --git a/src/domain/UBGraphicsPixmapItem.cpp b/src/domain/UBGraphicsPixmapItem.cpp index 2df5c6fc..634a150f 100644 --- a/src/domain/UBGraphicsPixmapItem.cpp +++ b/src/domain/UBGraphicsPixmapItem.cpp @@ -28,7 +28,7 @@ UBGraphicsPixmapItem::UBGraphicsPixmapItem(QGraphicsItem* parent) : QGraphicsPixmapItem(parent) { - mDelegate = new UBGraphicsItemDelegate(this, 0, true, true); + mDelegate = new UBGraphicsItemDelegate(this, 0, true, true, false); mDelegate->init(); mDelegate->setFlippable(true); diff --git a/src/domain/UBGraphicsProxyWidget.cpp b/src/domain/UBGraphicsProxyWidget.cpp index 106b6ed3..91238efd 100644 --- a/src/domain/UBGraphicsProxyWidget.cpp +++ b/src/domain/UBGraphicsProxyWidget.cpp @@ -29,7 +29,7 @@ UBGraphicsProxyWidget::UBGraphicsProxyWidget(QGraphicsItem* parent) { setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::Object); - mDelegate = new UBGraphicsItemDelegate(this,0); + mDelegate = new UBGraphicsItemDelegate(this,0, true, false, false); mDelegate->init(); setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); diff --git a/src/domain/UBGraphicsStrokesGroup.cpp b/src/domain/UBGraphicsStrokesGroup.cpp index 80ad9281..7fdbd1a7 100644 --- a/src/domain/UBGraphicsStrokesGroup.cpp +++ b/src/domain/UBGraphicsStrokesGroup.cpp @@ -4,7 +4,7 @@ UBGraphicsStrokesGroup::UBGraphicsStrokesGroup(QGraphicsItem *parent):QGraphicsItemGroup(parent) { - mDelegate = new UBGraphicsItemDelegate(this, 0, true, true); + mDelegate = new UBGraphicsItemDelegate(this, 0, true, true, false); mDelegate->init(); mDelegate->setFlippable(true); setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::Object); diff --git a/src/domain/UBGraphicsSvgItem.cpp b/src/domain/UBGraphicsSvgItem.cpp index 5138e362..31386bcb 100644 --- a/src/domain/UBGraphicsSvgItem.cpp +++ b/src/domain/UBGraphicsSvgItem.cpp @@ -53,7 +53,7 @@ void UBGraphicsSvgItem::init() { setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::Object); - mDelegate = new UBGraphicsItemDelegate(this, 0, true, true); + mDelegate = new UBGraphicsItemDelegate(this, 0, true, true, false); mDelegate->init(); mDelegate->setFlippable(true); diff --git a/src/domain/UBGraphicsWidgetItemDelegate.cpp b/src/domain/UBGraphicsWidgetItemDelegate.cpp index 79a835f5..a17a72d7 100644 --- a/src/domain/UBGraphicsWidgetItemDelegate.cpp +++ b/src/domain/UBGraphicsWidgetItemDelegate.cpp @@ -30,7 +30,7 @@ #include "core/memcheck.h" UBGraphicsWidgetItemDelegate::UBGraphicsWidgetItemDelegate(UBGraphicsWidgetItem* pDelegated, int widgetType) - : UBGraphicsItemDelegate(pDelegated, 0, true, false) + : UBGraphicsItemDelegate(pDelegated, 0, true, false, false) , freezeAction(0) , setAsToolAction(0) { diff --git a/src/tools/UBGraphicsCurtainItemDelegate.cpp b/src/tools/UBGraphicsCurtainItemDelegate.cpp index 7dfd06e5..7e9785dd 100644 --- a/src/tools/UBGraphicsCurtainItemDelegate.cpp +++ b/src/tools/UBGraphicsCurtainItemDelegate.cpp @@ -25,7 +25,7 @@ #include "core/memcheck.h" UBGraphicsCurtainItemDelegate::UBGraphicsCurtainItemDelegate(UBGraphicsCurtainItem* pDelegated, QObject * parent) - : UBGraphicsItemDelegate(pDelegated, parent, false) + : UBGraphicsItemDelegate(pDelegated, parent, false, false, false) { setCanDuplicate(false); }