-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathZoomScrollImage.cpp
More file actions
34 lines (27 loc) · 1.05 KB
/
ZoomScrollImage.cpp
File metadata and controls
34 lines (27 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <QScrollBar>
#include <ZoomImage.h>
#include <ZoomScrollImage.h>
#include <iostream>
ZoomScrollImage::ZoomScrollImage() {
image = new ZoomImage;
setWidget(image);
image->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
image->setScaledContents(true);
connect(image, SIGNAL(zoomChanged(double)), this, SLOT(zoomChangedForward(double)));
}
void ZoomScrollImage::zoomChangedForward(double scale) { emit zoomChanged(scale); }
double ZoomScrollImage::getScale() { return image->getScale(); }
void ZoomScrollImage::setImage(QImage &img) {
image->setPixmap(QPixmap::fromImage(img));
image->adjustSize();
}
void ZoomScrollImage::mousePressEvent(QMouseEvent *e) {
mousePos = e->pos();
scrollPos = QPoint(horizontalScrollBar()->value(), verticalScrollBar()->value());
}
void ZoomScrollImage::mouseMoveEvent(QMouseEvent *e) {
QPoint diff = e->pos() - mousePos;
mousePos = e->pos();
verticalScrollBar()->setValue(verticalScrollBar()->value() - diff.y());
horizontalScrollBar()->setValue(horizontalScrollBar()->value() - diff.x());
}