File indexing completed on 2024-04-28 05:38:11
0001 #ifndef IMAGEITEM_H 0002 #define IMAGEITEM_H 0003 0004 #include "rwidgets_global.h" 0005 #include "visualitem.h" 0006 #include <QImage> 0007 #include <QMovie> 0008 namespace vmap 0009 { 0010 class ImageItemController; 0011 } 0012 class RWIDGET_EXPORT ImageItem : public VisualItem 0013 { 0014 Q_OBJECT 0015 public: 0016 ImageItem(vmap::ImageItemController* ctrl); 0017 /** 0018 * @brief paint the current rectangle into the scene. 0019 * @see Qt documentation 0020 */ 0021 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget= nullptr) override; 0022 0023 /** 0024 * @brief gives bounding rect. Return rect geometry into the QRectF 0025 */ 0026 virtual QRectF boundingRect() const override; 0027 0028 /** 0029 * @brief defines new end point. 0030 */ 0031 virtual void setNewEnd(const QPointF& nend) override; 0032 0033 void setImageUri(QString uri); 0034 /** 0035 * @brief getImageUri 0036 * @return 0037 */ 0038 QString getImageUri(); 0039 0040 virtual void setModifiers(Qt::KeyboardModifiers modifiers) override; 0041 0042 VisualItem* promoteTo(vmap::VisualItemController::ItemType) override; 0043 QImage getImage() const; 0044 void setImage(const QImage& image); 0045 0046 // void endOfGeometryChange(ChildPointItem::Change change) override; 0047 0048 protected: 0049 /** 0050 * @brief updateChildPosition 0051 */ 0052 virtual void updateChildPosition() override; 0053 0054 private: 0055 void loadImage(); 0056 void dataToMedia(); 0057 void initImage(); 0058 0059 private: 0060 QPointer<vmap::ImageItemController> m_imgCtrl; 0061 bool m_keepAspect; ///< flag to keep the aspect. 0062 }; 0063 0064 #endif // IMAGEITEM_H