39
39
struct ZoomSliderPrivate {
40
QToolButton* mZoomOutButton;
41
QToolButton* mZoomInButton;
43
QAction* mZoomInAction;
44
QAction* mZoomOutAction;
40
QToolButton* mZoomOutButton;
41
QToolButton* mZoomInButton;
43
QAction* mZoomInAction;
44
QAction* mZoomOutAction;
46
void updateButtons() {
47
mZoomOutButton->setEnabled(mSlider->value() > mSlider->minimum());
48
mZoomInButton->setEnabled(mSlider->value() < mSlider->maximum());
48
mZoomOutButton->setEnabled(mSlider->value() > mSlider->minimum());
49
mZoomInButton->setEnabled(mSlider->value() < mSlider->maximum());
52
static QToolButton* createZoomButton(const char* iconName) {
53
QToolButton* button = new QToolButton;
54
button->setIcon(KIcon(iconName));
55
button->setAutoRaise(true);
56
button->setAutoRepeat(true);
53
static QToolButton* createZoomButton(const char* iconName)
55
QToolButton* button = new QToolButton;
56
button->setIcon(KIcon(iconName));
57
button->setAutoRaise(true);
58
button->setAutoRepeat(true);
60
62
ZoomSlider::ZoomSlider(QWidget* parent)
62
, d(new ZoomSliderPrivate) {
63
d->mZoomInButton = createZoomButton("zoom-in");
64
d->mZoomOutButton = createZoomButton("zoom-out");
66
d->mZoomOutAction = 0;
68
d->mSlider = new QSlider;
69
d->mSlider->setOrientation(Qt::Horizontal);
71
QHBoxLayout* layout = new QHBoxLayout(this);
73
layout->setSpacing(0);
74
layout->addWidget(d->mZoomOutButton);
75
layout->addWidget(d->mSlider);
76
layout->addWidget(d->mZoomInButton);
78
connect(d->mSlider, SIGNAL(actionTriggered(int)),
79
SLOT(slotActionTriggered(int)) );
80
connect(d->mSlider, SIGNAL(valueChanged(int)),
81
SIGNAL(valueChanged(int)));
83
connect(d->mZoomOutButton, SIGNAL(clicked()),
85
connect(d->mZoomInButton, SIGNAL(clicked()),
90
ZoomSlider::~ZoomSlider() {
95
int ZoomSlider::value() const {
96
return d->mSlider->value();
100
void ZoomSlider::setValue(int value) {
101
d->mSlider->setValue(value);
106
void ZoomSlider::setMinimum(int value) {
107
d->mSlider->setMinimum(value);
112
void ZoomSlider::setMaximum(int value) {
113
d->mSlider->setMaximum(value);
118
void ZoomSlider::setZoomInAction(QAction* action) {
119
d->mZoomInAction = action;
123
void ZoomSlider::setZoomOutAction(QAction* action) {
124
d->mZoomOutAction = action;
128
void ZoomSlider::slotActionTriggered(int) {
133
void ZoomSlider::zoomOut() {
134
if (d->mZoomOutAction) {
135
d->mZoomOutAction->trigger();
137
d->mSlider->triggerAction(QAbstractSlider::SliderPageStepSub);
142
void ZoomSlider::zoomIn() {
143
if (d->mZoomInAction) {
144
d->mZoomInAction->trigger();
146
d->mSlider->triggerAction(QAbstractSlider::SliderPageStepAdd);
151
QSlider* ZoomSlider::slider() const {
64
, d(new ZoomSliderPrivate)
66
d->mZoomInButton = createZoomButton("zoom-in");
67
d->mZoomOutButton = createZoomButton("zoom-out");
69
d->mZoomOutAction = 0;
71
d->mSlider = new QSlider;
72
d->mSlider->setOrientation(Qt::Horizontal);
74
QHBoxLayout* layout = new QHBoxLayout(this);
76
layout->setSpacing(0);
77
layout->addWidget(d->mZoomOutButton);
78
layout->addWidget(d->mSlider);
79
layout->addWidget(d->mZoomInButton);
81
connect(d->mSlider, SIGNAL(actionTriggered(int)),
82
SLOT(slotActionTriggered(int)));
83
connect(d->mSlider, SIGNAL(valueChanged(int)),
84
SIGNAL(valueChanged(int)));
86
connect(d->mZoomOutButton, SIGNAL(clicked()),
88
connect(d->mZoomInButton, SIGNAL(clicked()),
92
ZoomSlider::~ZoomSlider()
97
int ZoomSlider::value() const
99
return d->mSlider->value();
102
void ZoomSlider::setValue(int value)
104
d->mSlider->setValue(value);
108
void ZoomSlider::setMinimum(int value)
110
d->mSlider->setMinimum(value);
114
void ZoomSlider::setMaximum(int value)
116
d->mSlider->setMaximum(value);
120
void ZoomSlider::setZoomInAction(QAction* action)
122
d->mZoomInAction = action;
125
void ZoomSlider::setZoomOutAction(QAction* action)
127
d->mZoomOutAction = action;
130
void ZoomSlider::slotActionTriggered(int)
135
void ZoomSlider::zoomOut()
137
if (d->mZoomOutAction) {
138
d->mZoomOutAction->trigger();
140
d->mSlider->triggerAction(QAbstractSlider::SliderPageStepSub);
144
void ZoomSlider::zoomIn()
146
if (d->mZoomInAction) {
147
d->mZoomInAction->trigger();
149
d->mSlider->triggerAction(QAbstractSlider::SliderPageStepAdd);
153
QSlider* ZoomSlider::slider() const