Files
qad/libs/widgets/image_view.h
2020-08-25 22:24:02 +03:00

68 lines
1.7 KiB
C++

/*
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 <http://www.gnu.org/licenses/>.
*/
#ifndef IMAGE_VIEW_H
#define IMAGE_VIEW_H
#include <QGraphicsView>
#include <QGraphicsPixmapItem>
#include "qad_widgets_export.h"
class QAD_WIDGETS_EXPORT ImageView: public QGraphicsView
{
Q_OBJECT
Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap)
public:
ImageView(QWidget * parent = 0);
~ImageView();
void setImage(const QImage & i);
void setImage(const QByteArray & i);
QByteArray image() const {return im_data;}
QPixmap pixmap() const;
void clear();
private:
void mouseDoubleClickEvent(QMouseEvent * e);
void mousePressEvent(QMouseEvent * e);
void mouseMoveEvent(QMouseEvent * e);
// void wheelEvent(QWheelEvent * e);
bool eventFilter(QObject * o, QEvent * e);
void adjustView();
QGraphicsPixmapItem item;
QByteArray im_data;
QPoint prev_pos;
bool autofit_;
QPixmap map;
public slots:
void autofit();
void setPixmap(QPixmap pixmap);
signals:
void clicked(QPointF, Qt::MouseButtons);
};
#endif // IMAGE_VIEW_H