From 9aa3027c51988442f8d29bfd92fa4187ad7acbff Mon Sep 17 00:00:00 2001 From: Ivan Ilin Date: Mon, 31 Oct 2011 17:12:38 +0200 Subject: [PATCH] implemented delegate() function for graphics objects --- src/adaptors/UBCFFSubsetAdaptor.cpp | 19 +++++++++---------- src/adaptors/UBCFFSubsetAdaptor.h | 5 +++-- src/domain/UBGraphicsAudioItem.h | 1 + src/domain/UBGraphicsItemDelegate.h | 16 ++++++++-------- src/domain/UBGraphicsPDFItem.h | 3 ++- src/domain/UBGraphicsPixmapItem.h | 7 +++++-- src/domain/UBGraphicsProxyWidget.h | 4 ++-- src/domain/UBGraphicsSvgItem.h | 3 ++- src/domain/UBGraphicsTextItem.cpp | 1 - src/domain/UBGraphicsTextItem.h | 3 ++- src/domain/UBGraphicsVideoItem.h | 1 + src/domain/UBItem.h | 25 ++++++++++++++----------- src/tools/UBGraphicsCurtainItem.cpp | 1 - src/tools/UBGraphicsCurtainItem.h | 2 +- 14 files changed, 50 insertions(+), 41 deletions(-) diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index 2661f667..82dda974 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -818,8 +818,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgImage(const QDomElement &ele } // repositionSvgItem(svgItem, rx * 2 + 10, ry * 2 + 10, cx - rx - 5, cy - ry -5, hastransform, transform); repositionPixmapItem(pixItem, width, height, x, y, hastransform, transform); -// hashSceneItem(element, pixItem->); - + hashSceneItem(element, pixItem); + pixItem->Delegate()->lock(true); return true; } @@ -852,13 +852,13 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGroup(QDomNode *group) return true; } -//void UBCFFSubsetAdaptor::UBCFFSubsetReader::hashSceneItem(QDomNode &element, UBGraphicsItemDelegate *item) -//{ -//// adding element pointer to hash to refer if needed -// QString key = element.attribute(aId); -// if (!key.isNull()) -// persistedItems.insert(key, item); -//} +void UBCFFSubsetAdaptor::UBCFFSubsetReader::hashSceneItem(const QDomElement &element, UBGraphicsItem *item) +{ +// adding element pointer to hash to refer if needed + QString key = element.attribute(aId); + if (!key.isNull()) + persistedItems.insert(key, item); +} bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgElement(const QDomElement &parent) { @@ -868,7 +868,6 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgElement(const QDomElement &p return false; } - if (tagName == tRect && !parseSvgRect(parent)) return false; else if (tagName == tEllipse && !parseSvgEllipse(parent)) return false; else if (tagName == tPolygon && !parseSvgPolygon(parent)) return false; diff --git a/src/adaptors/UBCFFSubsetAdaptor.h b/src/adaptors/UBCFFSubsetAdaptor.h index dcddefdd..5bb69413 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.h +++ b/src/adaptors/UBCFFSubsetAdaptor.h @@ -30,6 +30,7 @@ class UBGraphicsPixmapItem; class UBGraphicsItemDelegate; class QTransform; class QPainter; +class UBGraphicsItem; struct IwbExt { IwbExt() {;} @@ -87,7 +88,7 @@ private: QDomDocument mDOMdoc; QDomNode mCurrentDOMElement; QHash iwbExtProperties; - QHash persistedItems; + QHash persistedItems; bool hashElements(); void addExtentionsToHash(QDomElement *parent, QDomElement *topGroup); @@ -109,7 +110,7 @@ private: inline bool parseSvgImage(const QDomElement &element); // inline bool parseSvgTSpan(const QDomElement) bool parseIwbGroup(QDomNode *element); - inline void hashSceneItem(QDomNode *element, UBGraphicsItemDelegate *item); + inline void hashSceneItem(const QDomElement &element, UBGraphicsItem *item); // to kill void parseTextAttributes(const QDomElement &element, qreal &fontSize, QColor &fontColor, diff --git a/src/domain/UBGraphicsAudioItem.h b/src/domain/UBGraphicsAudioItem.h index a9f06bbb..337ba99d 100644 --- a/src/domain/UBGraphicsAudioItem.h +++ b/src/domain/UBGraphicsAudioItem.h @@ -37,6 +37,7 @@ public: } virtual UBItem* deepCopy () const; + virtual UBGraphicsItemDelegate *Delegate() const {return mDelegate;} private slots: diff --git a/src/domain/UBGraphicsItemDelegate.h b/src/domain/UBGraphicsItemDelegate.h index fcab9f8d..eefa8b1e 100644 --- a/src/domain/UBGraphicsItemDelegate.h +++ b/src/domain/UBGraphicsItemDelegate.h @@ -30,7 +30,7 @@ class UBGraphicsWidgetItem; class DelegateButton: public QGraphicsSvgItem { - Q_OBJECT; + Q_OBJECT public: DelegateButton(const QString & fileName, QGraphicsItem* pDelegated, QGraphicsItem * parent = 0) @@ -90,7 +90,7 @@ class DelegateButton: public QGraphicsSvgItem class UBGraphicsItemDelegate : public QObject { - Q_OBJECT; + Q_OBJECT public: UBGraphicsItemDelegate(QGraphicsItem* pDelegated, QObject * parent = 0, bool respectRatio = true, bool canRotate = false); @@ -129,17 +129,19 @@ class UBGraphicsItemDelegate : public QObject void setMimeData(QMimeData* mimeData); signals: - void showOnDisplayChanged(bool shown); void lockChanged(bool locked); public slots: - virtual void remove(bool canUndo = true); void showMenu(); + virtual void showHide(bool show); + virtual void lock(bool lock); + virtual void duplicate(); + protected: - virtual void buildButtons() {}; + virtual void buildButtons() {;} virtual void decorateMenu(QMenu *menu); virtual void updateMenuActionState(); @@ -164,9 +166,7 @@ class UBGraphicsItemDelegate : public QObject protected slots: virtual void gotoContentSource(bool checked); - virtual void showHide(bool show); - virtual void lock(bool lock); - virtual void duplicate(); + private: diff --git a/src/domain/UBGraphicsPDFItem.h b/src/domain/UBGraphicsPDFItem.h index b0c837e1..426361cf 100644 --- a/src/domain/UBGraphicsPDFItem.h +++ b/src/domain/UBGraphicsPDFItem.h @@ -48,6 +48,7 @@ class UBGraphicsPDFItem: public GraphicsPDFItem, public UBItem, public UBGraphic virtual void remove(); virtual UBGraphicsPixmapItem* toPixmapItem() const; + virtual UBGraphicsItemDelegate *Delegate() const {return mDelegate;} protected: @@ -57,7 +58,7 @@ class UBGraphicsPDFItem: public GraphicsPDFItem, public UBItem, public UBGraphic virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); - UBGraphicsItemDelegate* mDelegate; +// UBGraphicsItemDelegate* mDelegate; }; #endif /* UBGRAPHICSPDFITEM_H_ */ diff --git a/src/domain/UBGraphicsPixmapItem.h b/src/domain/UBGraphicsPixmapItem.h index 32c04f67..053ce0e5 100644 --- a/src/domain/UBGraphicsPixmapItem.h +++ b/src/domain/UBGraphicsPixmapItem.h @@ -45,11 +45,13 @@ class UBGraphicsPixmapItem : public QObject, public QGraphicsPixmapItem, public virtual void remove(); - Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity); + Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity) void setOpacity(qreal op); qreal opacity() const; + virtual UBGraphicsItemDelegate* Delegate() const {return mDelegate;} + protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); @@ -60,7 +62,8 @@ protected: virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); - UBGraphicsItemDelegate* mDelegate; + +// UBGraphicsItemDelegate* mDelegate; }; diff --git a/src/domain/UBGraphicsProxyWidget.h b/src/domain/UBGraphicsProxyWidget.h index adf0737f..14739946 100644 --- a/src/domain/UBGraphicsProxyWidget.h +++ b/src/domain/UBGraphicsProxyWidget.h @@ -41,7 +41,7 @@ class UBGraphicsProxyWidget: public QGraphicsProxyWidget, public UBItem, public virtual void remove(); - UBGraphicsItemDelegate* delegate (){ return mDelegate;} + virtual UBGraphicsItemDelegate* delegate() const { return mDelegate;} protected: @@ -53,7 +53,7 @@ class UBGraphicsProxyWidget: public QGraphicsProxyWidget, public UBItem, public virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); - UBGraphicsItemDelegate* mDelegate; +// UBGraphicsItemDelegate* mDelegate; }; #endif /* UBGRAPHICSPROXYWIDGET_H_ */ diff --git a/src/domain/UBGraphicsSvgItem.h b/src/domain/UBGraphicsSvgItem.h index 6b64a901..eb238cf4 100644 --- a/src/domain/UBGraphicsSvgItem.h +++ b/src/domain/UBGraphicsSvgItem.h @@ -59,6 +59,7 @@ class UBGraphicsSvgItem: public QGraphicsSvgItem, public UBItem, public UBGraphi virtual void remove(); virtual UBGraphicsPixmapItem* toPixmapItem() const; + virtual UBGraphicsItemDelegate *Delegate() const {return mDelegate;} protected: @@ -70,7 +71,7 @@ class UBGraphicsSvgItem: public QGraphicsSvgItem, public UBItem, public UBGraphi virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); - UBGraphicsItemDelegate* mDelegate; +// UBGraphicsItemDelegate* mDelegate; QByteArray mFileData; }; diff --git a/src/domain/UBGraphicsTextItem.cpp b/src/domain/UBGraphicsTextItem.cpp index 7aa1da1c..b2a5536f 100644 --- a/src/domain/UBGraphicsTextItem.cpp +++ b/src/domain/UBGraphicsTextItem.cpp @@ -30,7 +30,6 @@ QColor UBGraphicsTextItem::lastUsedTextColor; UBGraphicsTextItem::UBGraphicsTextItem(QGraphicsItem * parent) : QGraphicsTextItem(parent) - , mDelegate(0) , mMultiClickState(0) , mLastMousePressTime(QTime::currentTime()) { diff --git a/src/domain/UBGraphicsTextItem.h b/src/domain/UBGraphicsTextItem.h index 2480bece..b9f08f5d 100644 --- a/src/domain/UBGraphicsTextItem.h +++ b/src/domain/UBGraphicsTextItem.h @@ -78,6 +78,7 @@ class UBGraphicsTextItem : public QGraphicsTextItem, public UBItem, public UBRes { mColorOnLightBackground = pColorOnLightBackground; } + virtual UBGraphicsItemDelegate *Delegate() const {return mDelegate;} signals: void textUndoCommandAdded(UBGraphicsTextItem *textItem); @@ -96,7 +97,7 @@ class UBGraphicsTextItem : public QGraphicsTextItem, public UBItem, public UBRes virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); private: - UBGraphicsItemDelegate *mDelegate; +// UBGraphicsItemDelegate *mDelegate; qreal mTextHeight; int mMultiClickState; diff --git a/src/domain/UBGraphicsVideoItem.h b/src/domain/UBGraphicsVideoItem.h index 73c30a90..52e8b0aa 100644 --- a/src/domain/UBGraphicsVideoItem.h +++ b/src/domain/UBGraphicsVideoItem.h @@ -40,6 +40,7 @@ public: { return mVideoWidget; } + virtual UBGraphicsItemDelegate *Delegate() const {return mDelegate;} public slots: diff --git a/src/domain/UBItem.h b/src/domain/UBItem.h index 5cd14d13..8fcbb6c8 100644 --- a/src/domain/UBItem.h +++ b/src/domain/UBItem.h @@ -16,6 +16,7 @@ #define UBITEM_H #include +#include "domain/UBGraphicsItemDelegate.h" class UBGraphicsScene; @@ -84,21 +85,23 @@ class UBItem class UBGraphicsItem { - protected: +protected: - UBGraphicsItem() - { - // NOOP - } + UBGraphicsItem() : mDelegate(0) + { + // NOOP + } + UBGraphicsItemDelegate* mDelegate; - virtual ~UBGraphicsItem() - { - // NOOP - } + virtual ~UBGraphicsItem() + { + // NOOP + } - public: +public: + virtual UBGraphicsItemDelegate *Delegate() const {return 0;} + virtual void remove() = 0; - virtual void remove() = 0; }; #endif // UBITEM_H diff --git a/src/tools/UBGraphicsCurtainItem.cpp b/src/tools/UBGraphicsCurtainItem.cpp index 968a8c32..118b92f2 100644 --- a/src/tools/UBGraphicsCurtainItem.cpp +++ b/src/tools/UBGraphicsCurtainItem.cpp @@ -36,7 +36,6 @@ const QColor UBGraphicsCurtainItem::sDarkBackgroundOpaqueControlColor = QColor(6 UBGraphicsCurtainItem::UBGraphicsCurtainItem(QGraphicsItem* parent) : QGraphicsRectItem(parent) - , mDelegate(0) { mDelegate = new UBGraphicsCurtainItemDelegate(this, 0); mDelegate->init(); diff --git a/src/tools/UBGraphicsCurtainItem.h b/src/tools/UBGraphicsCurtainItem.h index f5b90bf6..446c7fa8 100644 --- a/src/tools/UBGraphicsCurtainItem.h +++ b/src/tools/UBGraphicsCurtainItem.h @@ -65,7 +65,7 @@ class UBGraphicsCurtainItem : public QObject, public QGraphicsRectItem, public U QColor drawColor() const; QColor opaqueControlColor() const; - UBGraphicsItemDelegate* mDelegate; +// UBGraphicsItemDelegate* mDelegate; static const QColor sDrawColor; static const QColor sDarkBackgroundDrawColor;