/* QAD - Qt ADvanced Ivan Pelipenko peri4ko@yandex.ru, Andrey Bychkov work.a.b@yandex.ru This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef IMAGE_VIEW_H #define IMAGE_VIEW_H #include #include #include "qad_widgets_export.h" class QAD_WIDGETS_EXPORT ImageView: public QGraphicsView { Q_OBJECT Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap) Q_PROPERTY(bool viewInteractive READ viewInteractive WRITE setViewInteractive) public: ImageView(QWidget * parent = 0); ~ImageView(); void setImage(const QImage & i, bool save = true); void setImage(const QByteArray & i); QByteArray image() const {return im_data;} QPixmap pixmap() const; bool viewInteractive() const {return interactive_;} void clear(); private: void mouseDoubleClickEvent(QMouseEvent * e); void mousePressEvent(QMouseEvent * e); void wheelEvent(QWheelEvent * e); bool eventFilter(QObject * o, QEvent * e); void adjustView(); QGraphicsPixmapItem item; QByteArray im_data; QPoint prev_pos; bool autofit_, interactive_; QPixmap map; public slots: void autofit(); void setPixmap(QPixmap pixmap); void setViewInteractive(bool yes); signals: void clicked(QPointF, Qt::MouseButtons); }; #endif // IMAGE_VIEW_H