-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzoomadjust.cpp
47 lines (38 loc) · 1.31 KB
/
zoomadjust.cpp
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
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "zoomadjust.h"
#include "ui_zoomadjust.h"
#include "QtAwesome.h"
ZoomAdjust::ZoomAdjust(QWidget *parent) :
QWidget(parent),
ui(new Ui::ZoomAdjust),
m_factor(100)
{
ui->setupUi(this);
ui->btnZoomIn->setIcon(QTAWESOME->icon(fa::minus));
ui->btnZoomOut->setIcon(QTAWESOME->icon(fa::plus));
ui->btnFit->setIcon(QTAWESOME->icon(fa::fittocanvas));
connect(ui->slider,&QSlider::valueChanged,this,&ZoomAdjust::setFactor);
connect(ui->btnZoomOut,&QPushButton::clicked,this,[this](bool){
ui->slider->setValue(ui->slider->value()-1);
});
connect(ui->btnZoomIn,&QPushButton::clicked,this,[this](bool){
ui->slider->setValue(ui->slider->value()+1);
});
connect(ui->btnFit, &QPushButton::clicked, this, &ZoomAdjust::zoomToFit);
connect(ui->editFactor, QOverload<int>::of(&QSpinBox::valueChanged), this, &ZoomAdjust::setFactor);
}
ZoomAdjust::~ZoomAdjust()
{
delete ui;
}
void ZoomAdjust::setFactor(int value)
{
if (m_factor==value)
return;
ui->slider->blockSignals(true);
ui->editFactor->blockSignals(true);
ui->slider->setValue(value);
ui->editFactor->setValue(value);
ui->slider->blockSignals(false);
ui->editFactor->blockSignals(false);
emit factorChanged(value);
}