diff --git a/src/domain/UBGraphicsGroupContainerItem.cpp b/src/domain/UBGraphicsGroupContainerItem.cpp index 818eb88e..5f0e85c0 100644 --- a/src/domain/UBGraphicsGroupContainerItem.cpp +++ b/src/domain/UBGraphicsGroupContainerItem.cpp @@ -16,8 +16,8 @@ UBGraphicsGroupContainerItem::UBGraphicsGroupContainerItem(QGraphicsItem *parent { setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::Object); - mDelegate = new UBGraphicsGroupContainerItemDelegate(this, 0); - mDelegate->init(); + setDelegate(new UBGraphicsGroupContainerItemDelegate(this, 0)); + Delegate()->init(); setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -32,8 +32,6 @@ UBGraphicsGroupContainerItem::UBGraphicsGroupContainerItem(QGraphicsItem *parent UBGraphicsGroupContainerItem::~UBGraphicsGroupContainerItem() { - if (mDelegate) - delete mDelegate; } void UBGraphicsGroupContainerItem::addToGroup(QGraphicsItem *item) @@ -50,14 +48,14 @@ void UBGraphicsGroupContainerItem::addToGroup(QGraphicsItem *item) //Check if group is allready rotatable or flippable if (childItems().count()) { if (UBGraphicsItem::isFlippable(this) && !UBGraphicsItem::isFlippable(item)) { - mDelegate->setFlippable(false); + Delegate()->setFlippable(false); } if (UBGraphicsItem::isRotatable(this) && !UBGraphicsItem::isRotatable(item)) { - mDelegate->setRotatable(false); + Delegate()->setRotatable(false); } } else { - mDelegate->setFlippable(UBGraphicsItem::isFlippable(item)); - mDelegate->setRotatable(UBGraphicsItem::isRotatable(item)); + Delegate()->setFlippable(UBGraphicsItem::isFlippable(item)); + Delegate()->setRotatable(UBGraphicsItem::isRotatable(item)); } // COMBINE @@ -207,12 +205,6 @@ void UBGraphicsGroupContainerItem::copyItemParameters(UBItem *copy) const } } -void UBGraphicsGroupContainerItem::remove() -{ - if (mDelegate) - mDelegate->remove(); -} - void UBGraphicsGroupContainerItem::setUuid(const QUuid &pUuid) { UBItem::setUuid(pUuid); @@ -244,7 +236,7 @@ void UBGraphicsGroupContainerItem::clearSource() void UBGraphicsGroupContainerItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mousePressEvent(event)) { + if (Delegate()->mousePressEvent(event)) { //NOOP } else { @@ -257,7 +249,7 @@ void UBGraphicsGroupContainerItem::mousePressEvent(QGraphicsSceneMouseEvent *eve void UBGraphicsGroupContainerItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mouseMoveEvent(event)) { + if (Delegate()->mouseMoveEvent(event)) { // NOOP; } else { QGraphicsItem::mouseMoveEvent(event); @@ -273,7 +265,7 @@ void UBGraphicsGroupContainerItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *e QVariant UBGraphicsGroupContainerItem::itemChange(GraphicsItemChange change, const QVariant &value) { - QVariant newValue = mDelegate->itemChange(change, value); + QVariant newValue = Delegate()->itemChange(change, value); foreach(QGraphicsItem *child, children()) { @@ -317,8 +309,8 @@ void UBGraphicsGroupContainerItem::pRemoveFromGroup(QGraphicsItem *item) break; } } - mDelegate->setFlippable(flippableNow); - mDelegate->setRotatable(rotatableNow); + Delegate()->setFlippable(flippableNow); + Delegate()->setRotatable(rotatableNow); } } diff --git a/src/domain/UBGraphicsGroupContainerItem.h b/src/domain/UBGraphicsGroupContainerItem.h index e8fa77eb..6f14204a 100644 --- a/src/domain/UBGraphicsGroupContainerItem.h +++ b/src/domain/UBGraphicsGroupContainerItem.h @@ -22,13 +22,10 @@ public: QRectF boundingRect() const; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); - virtual UBGraphicsItemDelegate* Delegate() const { return mDelegate;} - virtual UBCoreGraphicsScene *corescene(); virtual UBGraphicsGroupContainerItem *deepCopy() const; virtual void copyItemParameters(UBItem *copy) const; - virtual void remove(); enum { Type = UBGraphicsItemType::groupContainerType }; virtual int type() const diff --git a/src/domain/UBGraphicsMediaItem.cpp b/src/domain/UBGraphicsMediaItem.cpp index d1e97583..d96ab915 100644 --- a/src/domain/UBGraphicsMediaItem.cpp +++ b/src/domain/UBGraphicsMediaItem.cpp @@ -72,6 +72,10 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte update(); mMediaObject = new Phonon::MediaObject(this); + + setDelegate(new UBGraphicsMediaItemDelegate(this, mMediaObject)); + Delegate()->init(); + if (pMediaFileUrl.toLocalFile().contains("videos")) { mMediaType = mediaType_Video; @@ -116,18 +120,14 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte mSource = Phonon::MediaSource(pMediaFileUrl); mMediaObject->setCurrentSource(mSource); - UBGraphicsMediaItemDelegate* itemDelegate = new UBGraphicsMediaItemDelegate(this, mMediaObject); - itemDelegate->init(); - setDelegate(itemDelegate); - if (mediaType_Audio == mMediaType) - mDelegate->frame()->setOperationMode(UBGraphicsDelegateFrame::ResizingHorizontally); + Delegate()->frame()->setOperationMode(UBGraphicsDelegateFrame::ResizingHorizontally); else - mDelegate->frame()->setOperationMode(UBGraphicsDelegateFrame::Resizing); + Delegate()->frame()->setOperationMode(UBGraphicsDelegateFrame::Resizing); setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::ObjectItem)); //Necessary to set if we want z value to be assigned correctly - connect(mDelegate, SIGNAL(showOnDisplayChanged(bool)), this, SLOT(showOnDisplayChanged(bool))); + connect(Delegate(), SIGNAL(showOnDisplayChanged(bool)), this, SLOT(showOnDisplayChanged(bool))); connect(mMediaObject, SIGNAL(hasVideoChanged(bool)), this, SLOT(hasMediaChanged(bool))); } @@ -220,7 +220,7 @@ void UBGraphicsMediaItem::hasMediaChanged(bool hasMedia) { Q_UNUSED(hasMedia); mMediaObject->seek(mInitialPos); - UBGraphicsMediaItemDelegate *med = dynamic_cast(mDelegate); + UBGraphicsMediaItemDelegate *med = dynamic_cast(Delegate()); if (med) med->updateTicker(initialPos()); } @@ -289,9 +289,9 @@ void UBGraphicsMediaItem::copyItemParameters(UBItem *copy) const void UBGraphicsMediaItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate) + if (Delegate()) { - mDelegate->mousePressEvent(event); + Delegate()->mousePressEvent(event); if (parentItem() && UBGraphicsGroupContainerItem::Type == parentItem()->type()) { UBGraphicsGroupContainerItem *group = qgraphicsitem_cast(parentItem()); @@ -304,7 +304,7 @@ void UBGraphicsMediaItem::mousePressEvent(QGraphicsSceneMouseEvent *event) } group->setCurrentItem(this); this->setSelected(true); - mDelegate->positionHandles(); + Delegate()->positionHandles(); } } diff --git a/src/domain/UBGraphicsPDFItem.cpp b/src/domain/UBGraphicsPDFItem.cpp index 425ab749..3bcb09f6 100644 --- a/src/domain/UBGraphicsPDFItem.cpp +++ b/src/domain/UBGraphicsPDFItem.cpp @@ -28,21 +28,20 @@ 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, true, false, false); - mDelegate->init(); + + setDelegate(new UBGraphicsItemDelegate(this,0, true, false, false)); + Delegate()->init(); } UBGraphicsPDFItem::~UBGraphicsPDFItem() { - if (mDelegate) - delete mDelegate; } QVariant UBGraphicsPDFItem::itemChange(GraphicsItemChange change, const QVariant &value) { - QVariant newValue = mDelegate->itemChange(change, value); + QVariant newValue = Delegate()->itemChange(change, value); return GraphicsPDFItem::itemChange(change, newValue); } @@ -54,7 +53,7 @@ void UBGraphicsPDFItem::setUuid(const QUuid &pUuid) void UBGraphicsPDFItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mousePressEvent(event)) + if (Delegate()->mousePressEvent(event)) { // NOOP } @@ -67,7 +66,7 @@ void UBGraphicsPDFItem::mousePressEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsPDFItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mouseMoveEvent(event)) + if (Delegate()->mouseMoveEvent(event)) { // NOOP } @@ -80,7 +79,7 @@ void UBGraphicsPDFItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsPDFItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - mDelegate->mouseReleaseEvent(event); + Delegate()->mouseReleaseEvent(event); GraphicsPDFItem::mouseReleaseEvent(event); } @@ -131,13 +130,6 @@ UBGraphicsScene* UBGraphicsPDFItem::scene() } -void UBGraphicsPDFItem::remove() -{ - if (mDelegate) - mDelegate->remove(true); -} - - UBGraphicsPixmapItem* UBGraphicsPDFItem::toPixmapItem() const { QPixmap pixmap(mRenderer->pageSizeF(mPageNumber).toSize()); diff --git a/src/domain/UBGraphicsPDFItem.h b/src/domain/UBGraphicsPDFItem.h index b41b15ec..9107ea85 100644 --- a/src/domain/UBGraphicsPDFItem.h +++ b/src/domain/UBGraphicsPDFItem.h @@ -47,10 +47,7 @@ class UBGraphicsPDFItem: public GraphicsPDFItem, public UBItem, public UBGraphic virtual UBGraphicsScene* scene(); - virtual void remove(); - virtual UBGraphicsPixmapItem* toPixmapItem() const; - virtual UBGraphicsItemDelegate *Delegate() const {return mDelegate;} virtual void clearSource(){;} virtual void setUuid(const QUuid &pUuid); diff --git a/src/domain/UBGraphicsPixmapItem.cpp b/src/domain/UBGraphicsPixmapItem.cpp index 4e346256..f771032d 100644 --- a/src/domain/UBGraphicsPixmapItem.cpp +++ b/src/domain/UBGraphicsPixmapItem.cpp @@ -28,10 +28,10 @@ UBGraphicsPixmapItem::UBGraphicsPixmapItem(QGraphicsItem* parent) : QGraphicsPixmapItem(parent) { - mDelegate = new UBGraphicsItemDelegate(this, 0, true); - mDelegate->init(); - mDelegate->setFlippable(true); - mDelegate->setRotatable(true); + setDelegate(new UBGraphicsItemDelegate(this, 0, true)); + Delegate()->init(); + Delegate()->setFlippable(true); + Delegate()->setRotatable(true); setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::Object); setTransformationMode(Qt::SmoothTransformation); @@ -44,13 +44,11 @@ UBGraphicsPixmapItem::UBGraphicsPixmapItem(QGraphicsItem* parent) UBGraphicsPixmapItem::~UBGraphicsPixmapItem() { - if (mDelegate) - delete mDelegate; } QVariant UBGraphicsPixmapItem::itemChange(GraphicsItemChange change, const QVariant &value) { - QVariant newValue = mDelegate->itemChange(change, value); + QVariant newValue = Delegate()->itemChange(change, value); return QGraphicsPixmapItem::itemChange(change, newValue); } @@ -64,14 +62,14 @@ void UBGraphicsPixmapItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { QMimeData* pMime = new QMimeData(); pMime->setImageData(pixmap().toImage()); - mDelegate->setMimeData(pMime); + Delegate()->setMimeData(pMime); qreal k = (qreal)pixmap().width() / 100.0; QSize newSize((int)(pixmap().width() / k), (int)(pixmap().height() / k)); - mDelegate->setDragPixmap(pixmap().scaled(newSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); + Delegate()->setDragPixmap(pixmap().scaled(newSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)); - if (mDelegate->mousePressEvent(event)) + if (Delegate()->mousePressEvent(event)) { //NOOP } @@ -83,7 +81,7 @@ void UBGraphicsPixmapItem::mousePressEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsPixmapItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mouseMoveEvent(event)) + if (Delegate()->mouseMoveEvent(event)) { // NOOP; } @@ -95,7 +93,7 @@ void UBGraphicsPixmapItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsPixmapItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - mDelegate->mouseReleaseEvent(event); + Delegate()->mouseReleaseEvent(event); QGraphicsPixmapItem::mouseReleaseEvent(event); } @@ -145,13 +143,6 @@ UBGraphicsScene* UBGraphicsPixmapItem::scene() } -void UBGraphicsPixmapItem::remove() -{ - if (mDelegate) - mDelegate->remove(true); -} - - void UBGraphicsPixmapItem::setOpacity(qreal op) { QGraphicsPixmapItem::setOpacity(op); diff --git a/src/domain/UBGraphicsPixmapItem.h b/src/domain/UBGraphicsPixmapItem.h index 787f28eb..2a43e4eb 100644 --- a/src/domain/UBGraphicsPixmapItem.h +++ b/src/domain/UBGraphicsPixmapItem.h @@ -44,14 +44,11 @@ class UBGraphicsPixmapItem : public QObject, public QGraphicsPixmapItem, public virtual UBGraphicsScene* scene(); - virtual void remove(); - Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity) void setOpacity(qreal op); qreal opacity() const; - virtual UBGraphicsItemDelegate* Delegate() const {return mDelegate;} virtual void clearSource(){;} virtual void setUuid(const QUuid &pUuid); diff --git a/src/domain/UBGraphicsProxyWidget.cpp b/src/domain/UBGraphicsProxyWidget.cpp index 25617250..ed2f6797 100644 --- a/src/domain/UBGraphicsProxyWidget.cpp +++ b/src/domain/UBGraphicsProxyWidget.cpp @@ -29,8 +29,9 @@ UBGraphicsProxyWidget::UBGraphicsProxyWidget(QGraphicsItem* parent) { setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::Object); - mDelegate = new UBGraphicsItemDelegate(this,0, true, false, false); - mDelegate->init(); + //UBGraphicsItemDelegate* delegate = new UBGraphicsItemDelegate(this,0, true, false, false); + //delegate->init(); + //setDelegate(delegate); setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); @@ -40,8 +41,6 @@ UBGraphicsProxyWidget::UBGraphicsProxyWidget(QGraphicsItem* parent) UBGraphicsProxyWidget::~UBGraphicsProxyWidget() { - if (mDelegate) - delete mDelegate; } @@ -67,7 +66,7 @@ QVariant UBGraphicsProxyWidget::itemChange(GraphicsItemChange change, const QVar } } - QVariant newValue = mDelegate->itemChange(change, value); + QVariant newValue = Delegate()->itemChange(change, value); return QGraphicsProxyWidget::itemChange(change, newValue); } @@ -79,7 +78,7 @@ void UBGraphicsProxyWidget::setUuid(const QUuid &pUuid) void UBGraphicsProxyWidget::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mousePressEvent(event)) + if (Delegate()->mousePressEvent(event)) { //NOOP } @@ -95,7 +94,7 @@ void UBGraphicsProxyWidget::mousePressEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsProxyWidget::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mouseMoveEvent(event)) + if (Delegate()->mouseMoveEvent(event)) { // NOOP; } @@ -108,13 +107,13 @@ void UBGraphicsProxyWidget::mouseMoveEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsProxyWidget::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - mDelegate->mouseReleaseEvent(event); + Delegate()->mouseReleaseEvent(event); QGraphicsProxyWidget::mouseReleaseEvent(event); } void UBGraphicsProxyWidget::wheelEvent(QGraphicsSceneWheelEvent *event) { - if( mDelegate->weelEvent(event) ) + if( Delegate()->weelEvent(event) ) { QGraphicsProxyWidget::wheelEvent(event); event->accept(); @@ -132,17 +131,6 @@ void UBGraphicsProxyWidget::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) // NOOP } -void UBGraphicsProxyWidget::setDelegate(UBGraphicsItemDelegate* pDelegate) -{ - if (mDelegate) - { - delete mDelegate; - } - - mDelegate = pDelegate; -} - - void UBGraphicsProxyWidget::resize(qreal w, qreal h) { UBGraphicsProxyWidget::resize(QSizeF(w, h)); @@ -177,8 +165,8 @@ void UBGraphicsProxyWidget::resize(const QSizeF & pSize) QGraphicsProxyWidget::resize(size.width(), size.height()); if (widget()) widget()->resize(size.width(), size.height()); - if (mDelegate) - mDelegate->positionHandles(); + if (Delegate()) + Delegate()->positionHandles(); if (scene()) scene()->setModified(true); } @@ -197,8 +185,3 @@ UBGraphicsScene* UBGraphicsProxyWidget::scene() } -void UBGraphicsProxyWidget::remove() -{ - if (mDelegate) - mDelegate->remove(true); -} diff --git a/src/domain/UBGraphicsProxyWidget.h b/src/domain/UBGraphicsProxyWidget.h index d9280fb7..d663f441 100644 --- a/src/domain/UBGraphicsProxyWidget.h +++ b/src/domain/UBGraphicsProxyWidget.h @@ -27,7 +27,6 @@ class UBGraphicsItemDelegate; class UBGraphicsProxyWidget: public QGraphicsProxyWidget, public UBItem, public UBResizableGraphicsItem, public UBGraphicsItem { public: - UBGraphicsProxyWidget(QGraphicsItem* parent = 0); virtual ~UBGraphicsProxyWidget(); virtual void resize(qreal w, qreal h); @@ -35,18 +34,13 @@ class UBGraphicsProxyWidget: public QGraphicsProxyWidget, public UBItem, public virtual QSizeF size() const; - void setDelegate(UBGraphicsItemDelegate* pDelegate); - virtual UBGraphicsScene* scene(); - virtual void remove(); - - virtual UBGraphicsItemDelegate* Delegate() const { return mDelegate;} - virtual void clearSource(){;} virtual void setUuid(const QUuid &pUuid); protected: + UBGraphicsProxyWidget(QGraphicsItem* parent = 0); virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); diff --git a/src/domain/UBGraphicsStrokesGroup.cpp b/src/domain/UBGraphicsStrokesGroup.cpp index e9993375..490f6bd4 100644 --- a/src/domain/UBGraphicsStrokesGroup.cpp +++ b/src/domain/UBGraphicsStrokesGroup.cpp @@ -4,12 +4,14 @@ #include "core/memcheck.h" -UBGraphicsStrokesGroup::UBGraphicsStrokesGroup(QGraphicsItem *parent):QGraphicsItemGroup(parent) +UBGraphicsStrokesGroup::UBGraphicsStrokesGroup(QGraphicsItem *parent) + :UBGraphicsItem(), QGraphicsItemGroup(parent) { - mDelegate = new UBGraphicsItemDelegate(this, 0, true, true, false); - mDelegate->init(); - mDelegate->setFlippable(true); - mDelegate->setRotatable(true); + setDelegate(new UBGraphicsItemDelegate(this, 0, true, true, false)); + Delegate()->init(); + Delegate()->setFlippable(true); + Delegate()->setRotatable(true); + setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::Object); @@ -22,9 +24,6 @@ UBGraphicsStrokesGroup::UBGraphicsStrokesGroup(QGraphicsItem *parent):QGraphicsI UBGraphicsStrokesGroup::~UBGraphicsStrokesGroup() { - if(mDelegate){ - delete mDelegate; - } } void UBGraphicsStrokesGroup::setUuid(const QUuid &pUuid) @@ -83,7 +82,7 @@ QColor UBGraphicsStrokesGroup::color(colorType pColorType) const void UBGraphicsStrokesGroup::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mousePressEvent(event)) + if (Delegate()->mousePressEvent(event)) { //NOOP } @@ -95,7 +94,7 @@ void UBGraphicsStrokesGroup::mousePressEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsStrokesGroup::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mouseMoveEvent(event)) + if (Delegate()->mouseMoveEvent(event)) { // NOOP; } @@ -107,7 +106,7 @@ void UBGraphicsStrokesGroup::mouseMoveEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsStrokesGroup::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - mDelegate->mouseReleaseEvent(event); + Delegate()->mouseReleaseEvent(event); QGraphicsItemGroup::mouseReleaseEvent(event); } @@ -144,12 +143,6 @@ void UBGraphicsStrokesGroup::copyItemParameters(UBItem *copy) const } } -void UBGraphicsStrokesGroup::remove() -{ - if (mDelegate) - mDelegate->remove(true); -} - void UBGraphicsStrokesGroup::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { // Never draw the rubber band, we draw our custom selection with the DelegateFrame @@ -161,7 +154,7 @@ void UBGraphicsStrokesGroup::paint(QPainter *painter, const QStyleOptionGraphics QVariant UBGraphicsStrokesGroup::itemChange(GraphicsItemChange change, const QVariant &value) { - QVariant newValue = mDelegate->itemChange(change, value); + QVariant newValue = Delegate()->itemChange(change, value); return QGraphicsItemGroup::itemChange(change, newValue); } diff --git a/src/domain/UBGraphicsStrokesGroup.h b/src/domain/UBGraphicsStrokesGroup.h index 2c286d11..9b3aa79e 100644 --- a/src/domain/UBGraphicsStrokesGroup.h +++ b/src/domain/UBGraphicsStrokesGroup.h @@ -21,8 +21,6 @@ public: ~UBGraphicsStrokesGroup(); virtual UBItem* deepCopy() const; virtual void copyItemParameters(UBItem *copy) const; - virtual void remove(); - virtual UBGraphicsItemDelegate* Delegate() const {return mDelegate;} enum { Type = UBGraphicsItemType::StrokeItemType }; virtual int type() const { diff --git a/src/domain/UBGraphicsSvgItem.cpp b/src/domain/UBGraphicsSvgItem.cpp index e393ef23..dfa402c9 100644 --- a/src/domain/UBGraphicsSvgItem.cpp +++ b/src/domain/UBGraphicsSvgItem.cpp @@ -53,10 +53,11 @@ void UBGraphicsSvgItem::init() { setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::Object); - mDelegate = new UBGraphicsItemDelegate(this, 0, true, true, false); - mDelegate->init(); - mDelegate->setFlippable(true); - mDelegate->setRotatable(true); + setDelegate(new UBGraphicsItemDelegate(this, 0, true, true, false)); + Delegate()->init(); + Delegate()->setFlippable(true); + Delegate()->setRotatable(true); + setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); @@ -71,8 +72,6 @@ void UBGraphicsSvgItem::init() UBGraphicsSvgItem::~UBGraphicsSvgItem() { - if (mDelegate) - delete mDelegate; } @@ -84,14 +83,14 @@ QByteArray UBGraphicsSvgItem::fileData() const QVariant UBGraphicsSvgItem::itemChange(GraphicsItemChange change, const QVariant &value) { - QVariant newValue = mDelegate->itemChange(change, value); + QVariant newValue = Delegate()->itemChange(change, value); return QGraphicsSvgItem::itemChange(change, newValue); } void UBGraphicsSvgItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mousePressEvent(event)) + if (Delegate()->mousePressEvent(event)) { //NOOP } @@ -104,7 +103,7 @@ void UBGraphicsSvgItem::mousePressEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsSvgItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mouseMoveEvent(event)) + if (Delegate()->mouseMoveEvent(event)) { // NOOP; } @@ -117,7 +116,7 @@ void UBGraphicsSvgItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsSvgItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - mDelegate->mouseReleaseEvent(event); + Delegate()->mouseReleaseEvent(event); QGraphicsSvgItem::mouseReleaseEvent(event); } @@ -182,12 +181,6 @@ UBGraphicsScene* UBGraphicsSvgItem::scene() } -void UBGraphicsSvgItem::remove() -{ - if (mDelegate) - mDelegate->remove(true); -} - UBGraphicsPixmapItem* UBGraphicsSvgItem::toPixmapItem() const { diff --git a/src/domain/UBGraphicsSvgItem.h b/src/domain/UBGraphicsSvgItem.h index 95b9d536..1c2351d0 100644 --- a/src/domain/UBGraphicsSvgItem.h +++ b/src/domain/UBGraphicsSvgItem.h @@ -58,10 +58,7 @@ class UBGraphicsSvgItem: public QGraphicsSvgItem, public UBItem, public UBGraphi virtual UBGraphicsScene* scene(); - virtual void remove(); - virtual UBGraphicsPixmapItem* toPixmapItem() const; - virtual UBGraphicsItemDelegate *Delegate() const {return mDelegate;} virtual void setUuid(const QUuid &pUuid); diff --git a/src/domain/UBGraphicsTextItem.cpp b/src/domain/UBGraphicsTextItem.cpp index 20adf243..f7812e29 100644 --- a/src/domain/UBGraphicsTextItem.cpp +++ b/src/domain/UBGraphicsTextItem.cpp @@ -31,16 +31,17 @@ QColor UBGraphicsTextItem::lastUsedTextColor; UBGraphicsTextItem::UBGraphicsTextItem(QGraphicsItem * parent) - : QGraphicsTextItem(parent) + : UBGraphicsItem() + , QGraphicsTextItem(parent) , mMultiClickState(0) , mLastMousePressTime(QTime::currentTime()) { - mDelegate = new UBGraphicsTextItemDelegate(this, 0); - mDelegate->init(); + setDelegate(new UBGraphicsTextItemDelegate(this, 0)); + Delegate()->init(); - mDelegate->frame()->setOperationMode(UBGraphicsDelegateFrame::Resizing); - mDelegate->setFlippable(false); - mDelegate->setRotatable(true); + Delegate()->frame()->setOperationMode(UBGraphicsDelegateFrame::Resizing); + Delegate()->setFlippable(false); + Delegate()->setRotatable(true); mTypeTextHereLabel = tr(""); @@ -58,7 +59,7 @@ UBGraphicsTextItem::UBGraphicsTextItem(QGraphicsItem * parent) setUuid(QUuid::createUuid()); - connect(document(), SIGNAL(contentsChanged()), mDelegate, SLOT(contentsChanged())); + connect(document(), SIGNAL(contentsChanged()), Delegate(), SLOT(contentsChanged())); connect(document(), SIGNAL(undoCommandAdded()), this, SLOT(undoCommandAdded())); connect(document()->documentLayout(), SIGNAL(documentSizeChanged(const QSizeF &)), @@ -68,18 +69,14 @@ UBGraphicsTextItem::UBGraphicsTextItem(QGraphicsItem * parent) UBGraphicsTextItem::~UBGraphicsTextItem() { - if (mDelegate) - { - delete mDelegate; - } } QVariant UBGraphicsTextItem::itemChange(GraphicsItemChange change, const QVariant &value) { QVariant newValue = value; - if(mDelegate) - newValue = mDelegate->itemChange(change, value); + if(Delegate()) + newValue = Delegate()->itemChange(change, value); return QGraphicsTextItem::itemChange(change, newValue); } @@ -95,10 +92,10 @@ void UBGraphicsTextItem::mousePressEvent(QGraphicsSceneMouseEvent *event) return; } - if (mDelegate) + if (Delegate()) { - mDelegate->mousePressEvent(event); - if (mDelegate && parentItem() && UBGraphicsGroupContainerItem::Type == parentItem()->type()) + Delegate()->mousePressEvent(event); + if (Delegate() && parentItem() && UBGraphicsGroupContainerItem::Type == parentItem()->type()) { UBGraphicsGroupContainerItem *group = qgraphicsitem_cast(parentItem()); if (group) @@ -110,13 +107,13 @@ void UBGraphicsTextItem::mousePressEvent(QGraphicsSceneMouseEvent *event) } group->setCurrentItem(this); this->setSelected(true); - mDelegate->positionHandles(); + Delegate()->positionHandles(); } } else { - mDelegate->getToolBarItem()->show(); + Delegate()->getToolBarItem()->show(); } } @@ -165,7 +162,7 @@ void UBGraphicsTextItem::mousePressEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsTextItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - if (!mDelegate || !mDelegate->mouseMoveEvent(event)) + if (!Delegate() || !Delegate()->mouseMoveEvent(event)) { QGraphicsTextItem::mouseMoveEvent(event); } @@ -184,8 +181,8 @@ void UBGraphicsTextItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) if (mMultiClickState == 1) { - if (mDelegate) - mDelegate->mouseReleaseEvent(event); + if (Delegate()) + Delegate()->mouseReleaseEvent(event); QGraphicsTextItem::mouseReleaseEvent(event); } @@ -324,8 +321,8 @@ void UBGraphicsTextItem::resize(qreal w, qreal h) setTextWidth(w); setTextHeight(h); - if (mDelegate) - mDelegate->positionHandles(); + if (Delegate()) + Delegate()->positionHandles(); } @@ -347,12 +344,6 @@ void UBGraphicsTextItem::undoCommandAdded() } -void UBGraphicsTextItem::remove() -{ - if (mDelegate) - mDelegate->remove(true); -} - void UBGraphicsTextItem::documentSizeChanged(const QSizeF & newSize) { resize(newSize.width(), newSize.height()); diff --git a/src/domain/UBGraphicsTextItem.h b/src/domain/UBGraphicsTextItem.h index c7dc5c95..61fdb8b1 100644 --- a/src/domain/UBGraphicsTextItem.h +++ b/src/domain/UBGraphicsTextItem.h @@ -58,8 +58,6 @@ class UBGraphicsTextItem : public QGraphicsTextItem, public UBItem, public UBRes virtual QSizeF size() const; - virtual void remove(); - static QColor lastUsedTextColor; QColor colorOnDarkBackground() const @@ -81,7 +79,6 @@ class UBGraphicsTextItem : public QGraphicsTextItem, public UBItem, public UBRes { mColorOnLightBackground = pColorOnLightBackground; } - virtual UBGraphicsItemDelegate *Delegate() const {return mDelegate;} virtual void clearSource(){;} virtual void setUuid(const QUuid &pUuid); diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index c3aed833..5bd2b725 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -84,8 +84,8 @@ UBGraphicsWidgetItem::UBGraphicsWidgetItem(const QUrl &pWidgetUrl, QGraphicsItem viewPalette.setBrush(QPalette::Window, QBrush(Qt::transparent)); setPalette(viewPalette); - mDelegate = new UBGraphicsWidgetItemDelegate(this); - mDelegate->init(); + setDelegate(new UBGraphicsWidgetItemDelegate(this)); + Delegate()->init(); setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); QGraphicsWebView::setAcceptHoverEvents(true); @@ -102,8 +102,8 @@ void UBGraphicsWidgetItem::initialize() setMinimumSize(nominalSize()); setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::ObjectItem)); // Necessary to set if we want z value to be assigned correctly - if (mDelegate && mDelegate->frame() && resizable()) - mDelegate->frame()->setOperationMode(UBGraphicsDelegateFrame::Resizing); + if (Delegate() && Delegate()->frame() && resizable()) + Delegate()->frame()->setOperationMode(UBGraphicsDelegateFrame::Resizing); QPalette palette = page()->palette(); palette.setBrush(QPalette::Base, QBrush(Qt::transparent)); @@ -262,12 +262,6 @@ void UBGraphicsWidgetItem::removeAllDatastoreEntries() mDatastore.clear(); } -void UBGraphicsWidgetItem::remove() -{ - if (mDelegate) - mDelegate->remove(); -} - void UBGraphicsWidgetItem::removeScript() { if (page() && page()->mainFrame()) @@ -512,7 +506,7 @@ void UBGraphicsWidgetItem::dropEvent(QGraphicsSceneDragDropEvent *event) void UBGraphicsWidgetItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if (!mDelegate->mousePressEvent(event)) + if (!Delegate()->mousePressEvent(event)) setSelected(true); /* forcing selection */ QGraphicsWebView::mousePressEvent(event); @@ -529,19 +523,19 @@ void UBGraphicsWidgetItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { mShouldMoveWidget = false; - mDelegate->mouseReleaseEvent(event); + Delegate()->mouseReleaseEvent(event); QGraphicsWebView::mouseReleaseEvent(event); } void UBGraphicsWidgetItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event) { sendJSEnterEvent(); - mDelegate->hoverEnterEvent(event); + Delegate()->hoverEnterEvent(event); } void UBGraphicsWidgetItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event) { sendJSLeaveEvent(); - mDelegate->hoverLeaveEvent(event); + Delegate()->hoverLeaveEvent(event); } void UBGraphicsWidgetItem::sendJSEnterEvent() @@ -630,7 +624,7 @@ void UBGraphicsWidgetItem::mainFrameLoadFinished (bool ok) void UBGraphicsWidgetItem::wheelEvent(QGraphicsSceneWheelEvent *event) { - if (mDelegate->weelEvent(event)) + if (Delegate()->weelEvent(event)) { QGraphicsWebView::wheelEvent(event); event->accept(); @@ -647,7 +641,7 @@ QVariant UBGraphicsWidgetItem::itemChange(GraphicsItemChange change, const QVari scene()->setActiveWindow(0); } - QVariant newValue = mDelegate->itemChange(change, value); + QVariant newValue = Delegate()->itemChange(change, value); return QGraphicsWebView::itemChange(change, newValue); } @@ -662,8 +656,8 @@ void UBGraphicsWidgetItem::resize(const QSizeF & pSize) if (pSize != size()) { QGraphicsWebView::setMaximumSize(pSize.width(), pSize.height()); QGraphicsWebView::resize(pSize.width(), pSize.height()); - if (mDelegate) - mDelegate->positionHandles(); + if (Delegate()) + Delegate()->positionHandles(); if (scene()) scene()->setModified(true); } diff --git a/src/domain/UBGraphicsWidgetItem.h b/src/domain/UBGraphicsWidgetItem.h index ed11a3c8..10aeb2b7 100644 --- a/src/domain/UBGraphicsWidgetItem.h +++ b/src/domain/UBGraphicsWidgetItem.h @@ -57,8 +57,6 @@ class UBGraphicsWidgetItem : public QGraphicsWebView, public UBItem, public UBRe virtual void resize(const QSizeF & size); virtual QSizeF size() const; - virtual UBGraphicsItemDelegate* Delegate() const { return mDelegate;} - QUrl mainHtml(); void loadMainHtml(); QUrl widgetUrl(); @@ -82,7 +80,6 @@ class UBGraphicsWidgetItem : public QGraphicsWebView, public UBItem, public UBRe void removeDatastoreEntry(const QString& key); void removeAllDatastoreEntries(); - virtual void remove(); void removeScript(); void processDropEvent(QGraphicsSceneDragDropEvent *event); diff --git a/src/domain/UBItem.cpp b/src/domain/UBItem.cpp index 10d3d6ce..c9392e2f 100644 --- a/src/domain/UBItem.cpp +++ b/src/domain/UBItem.cpp @@ -38,6 +38,18 @@ UBItem::~UBItem() // NOOP } +UBGraphicsItem::~UBGraphicsItem() +{ + if (mDelegate!=NULL) + delete mDelegate; +} + +void UBGraphicsItem::setDelegate(UBGraphicsItemDelegate* delegate) +{ + Q_ASSERT(mDelegate==NULL); + mDelegate = delegate; +} + void UBGraphicsItem::assignZValue(QGraphicsItem *item, qreal value) { item->setZValue(value); @@ -54,6 +66,13 @@ bool UBGraphicsItem::isRotatable(QGraphicsItem *item) return item->data(UBGraphicsItemData::ItemRotatable).toBool(); } +void UBGraphicsItem::remove() +{ + if (Delegate()) + Delegate()->remove(this); +} + + UBGraphicsItemDelegate *UBGraphicsItem::Delegate(QGraphicsItem *pItem) { UBGraphicsItemDelegate *result = 0; diff --git a/src/domain/UBItem.h b/src/domain/UBItem.h index ca8a0f3b..99644f77 100644 --- a/src/domain/UBItem.h +++ b/src/domain/UBItem.h @@ -90,30 +90,30 @@ class UBItem class UBGraphicsItem { protected: - - UBGraphicsItem() : mDelegate(0) - { - // NOOP - } - UBGraphicsItemDelegate* mDelegate; - - virtual ~UBGraphicsItem() + UBGraphicsItem() : mDelegate(NULL) { // NOOP } + virtual ~UBGraphicsItem(); + void setDelegate(UBGraphicsItemDelegate* mDelegate); public: + inline UBGraphicsItemDelegate *Delegate() const { return mDelegate; } + static void assignZValue(QGraphicsItem*, qreal value); static bool isRotatable(QGraphicsItem *item); static bool isFlippable(QGraphicsItem *item); static UBGraphicsItemDelegate *Delegate(QGraphicsItem *pItem); - virtual UBGraphicsItemDelegate *Delegate() const = 0; + - virtual void remove() = 0; + void remove(); - virtual void clearSource(){;} + virtual void clearSource(){} + +private: + UBGraphicsItemDelegate* mDelegate; }; #endif // UBITEM_H diff --git a/src/tools/UBGraphicsCurtainItem.cpp b/src/tools/UBGraphicsCurtainItem.cpp index a84d0234..bdb06614 100644 --- a/src/tools/UBGraphicsCurtainItem.cpp +++ b/src/tools/UBGraphicsCurtainItem.cpp @@ -37,8 +37,9 @@ const QColor UBGraphicsCurtainItem::sDarkBackgroundOpaqueControlColor = QColor(6 UBGraphicsCurtainItem::UBGraphicsCurtainItem(QGraphicsItem* parent) : QGraphicsRectItem(parent) { - mDelegate = new UBGraphicsCurtainItemDelegate(this, 0); - mDelegate->init(); + UBGraphicsCurtainItemDelegate* delegate = new UBGraphicsCurtainItemDelegate(this, 0); + delegate->init(); + setDelegate(delegate); setFlag(QGraphicsItem::ItemIsMovable, true); setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -56,7 +57,6 @@ UBGraphicsCurtainItem::UBGraphicsCurtainItem(QGraphicsItem* parent) UBGraphicsCurtainItem::~UBGraphicsCurtainItem() { - delete mDelegate; } QVariant UBGraphicsCurtainItem::itemChange(GraphicsItemChange change, const QVariant &value) @@ -64,9 +64,9 @@ QVariant UBGraphicsCurtainItem::itemChange(GraphicsItemChange change, const QVar QVariant newValue = value; - if (mDelegate) + if (Delegate()) { - newValue = mDelegate->itemChange(change, value); + newValue = Delegate()->itemChange(change, value); } return QGraphicsRectItem::itemChange(change, newValue); @@ -80,7 +80,7 @@ void UBGraphicsCurtainItem::setUuid(const QUuid &pUuid) void UBGraphicsCurtainItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mousePressEvent(event)) + if (Delegate()->mousePressEvent(event)) { //NOOP } @@ -92,7 +92,7 @@ void UBGraphicsCurtainItem::mousePressEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsCurtainItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { - if (mDelegate->mouseMoveEvent(event)) + if (Delegate()->mouseMoveEvent(event)) { // NOOP; } @@ -104,7 +104,7 @@ void UBGraphicsCurtainItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) void UBGraphicsCurtainItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { - mDelegate->mouseReleaseEvent(event); + Delegate()->mouseReleaseEvent(event); QGraphicsRectItem::mouseReleaseEvent(event); } @@ -171,13 +171,6 @@ QColor UBGraphicsCurtainItem::opaqueControlColor() const } -void UBGraphicsCurtainItem::remove() -{ - if (mDelegate) - mDelegate->remove(true); -} - - void UBGraphicsCurtainItem::triggerRemovedSignal() { emit removed(); diff --git a/src/tools/UBGraphicsCurtainItem.h b/src/tools/UBGraphicsCurtainItem.h index afef3960..9f5d36d4 100644 --- a/src/tools/UBGraphicsCurtainItem.h +++ b/src/tools/UBGraphicsCurtainItem.h @@ -44,11 +44,8 @@ class UBGraphicsCurtainItem : public QObject, public QGraphicsRectItem, public U virtual UBItem* deepCopy() const; virtual void copyItemParameters(UBItem *copy) const; - virtual void remove(); - //TODO UB 4.x not nice ... void triggerRemovedSignal(); - virtual UBGraphicsItemDelegate* Delegate() const {return mDelegate;} virtual void clearSource(){;} virtual void setUuid(const QUuid &pUuid); diff --git a/src/tools/UBGraphicsCurtainItemDelegate.h b/src/tools/UBGraphicsCurtainItemDelegate.h index e1435170..18523fd7 100644 --- a/src/tools/UBGraphicsCurtainItemDelegate.h +++ b/src/tools/UBGraphicsCurtainItemDelegate.h @@ -40,13 +40,12 @@ class UBGraphicsCurtainItemDelegate : public UBGraphicsItemDelegate virtual QVariant itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value); virtual void positionHandles(); + virtual void init(); + public slots: virtual void remove(bool checked, bool canUndo = true); - protected: - virtual void init(); - }; #endif /* UBGRAPHICSCURTAINITEMDELEGATE_H_ */