~ubuntu-branches/ubuntu/maverick/kdegraphics/maverick-proposed

« back to all changes in this revision

Viewing changes to gwenview/lib/zoomwidget.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Thomas
  • Date: 2009-12-02 14:03:43 UTC
  • mfrom: (1.1.35 upstream)
  • Revision ID: james.westby@ubuntu.com-20091202140343-2732gbkj69g89arq
Tags: 4:4.3.80-0ubuntu1
* New upstream beta release:
  - Add build-depend on shared-desktop-ontologies for nepomuk integration
  - Bump .so versions for libkexiv, libkdcraw and libkipi
  - Update various .install files

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
// KDE
35
35
 
36
36
// Local
 
37
#include "zoomslider.h"
37
38
#include "signalblocker.h"
38
39
#include "statusbartoolbutton.h"
39
40
 
61
62
        StatusBarToolButton* mZoomToFitButton;
62
63
        StatusBarToolButton* mActualSizeButton;
63
64
        QLabel* mZoomLabel;
64
 
        QSlider* mZoomSlider;
 
65
        ZoomSlider* mZoomSlider;
65
66
        QAction* mZoomToFitAction;
66
67
        QAction* mActualSizeAction;
67
68
 
71
72
                // Use QSlider::sliderPosition(), not QSlider::value() because when we are
72
73
                // called from slotZoomSliderActionTriggered(), QSlider::value() has not
73
74
                // been updated yet.
74
 
                qreal zoom = zoomForSliderValue(mZoomSlider->sliderPosition());
 
75
                qreal zoom = zoomForSliderValue(mZoomSlider->slider()->sliderPosition());
75
76
                mZoomUpdatedBySlider = true;
76
77
                emit that->zoomChanged(zoom);
77
78
                mZoomUpdatedBySlider = false;
102
103
        d->mZoomLabel->setFixedWidth(d->mZoomLabel->fontMetrics().width(" 1000% "));
103
104
        d->mZoomLabel->setAlignment(Qt::AlignCenter);
104
105
 
105
 
        d->mZoomSlider = new QSlider;
106
 
        d->mZoomSlider->setOrientation(Qt::Horizontal);
 
106
        d->mZoomSlider = new ZoomSlider;
107
107
        d->mZoomSlider->setMinimumWidth(150);
108
 
        d->mZoomSlider->setSingleStep(int(PRECISION));
109
 
        d->mZoomSlider->setPageStep(3 * d->mZoomSlider->singleStep());
110
 
        connect(d->mZoomSlider, SIGNAL(rangeChanged(int, int)), SLOT(slotZoomSliderRangeChanged()) );
111
 
        connect(d->mZoomSlider, SIGNAL(actionTriggered(int)), SLOT(slotZoomSliderActionTriggered()) );
 
108
        d->mZoomSlider->slider()->setSingleStep(int(PRECISION));
 
109
        d->mZoomSlider->slider()->setPageStep(3 * int(PRECISION));
 
110
        connect(d->mZoomSlider->slider(), SIGNAL(rangeChanged(int, int)), SLOT(slotZoomSliderRangeChanged()) );
 
111
        connect(d->mZoomSlider->slider(), SIGNAL(actionTriggered(int)), SLOT(slotZoomSliderActionTriggered()) );
112
112
 
113
113
        // Layout
114
114
        QHBoxLayout* layout = new QHBoxLayout(this);
142
142
 
143
143
void ZoomWidget::slotZoomSliderRangeChanged() {
144
144
        if (d->mZoomToFitAction->isChecked()) {
145
 
                SignalBlocker blocker(d->mZoomSlider);
146
 
                d->mZoomSlider->setValue(d->mZoomSlider->minimum());
 
145
                QSlider* slider = d->mZoomSlider->slider();
 
146
                SignalBlocker blocker(slider);
 
147
                d->mZoomSlider->setValue(slider->minimum());
147
148
        } else {
148
149
                d->emitZoomChanged();
149
150
        }
164
165
        // Don't change slider value if we come here because the slider change,
165
166
        // avoids choppy sliding scroll.
166
167
        if (!d->mZoomUpdatedBySlider) {
167
 
                SignalBlocker blocker(d->mZoomSlider);
 
168
                QSlider* slider = d->mZoomSlider->slider();
 
169
                SignalBlocker blocker(slider);
168
170
                int value = sliderValueForZoom(zoom);
169
 
                d->mZoomSlider->setValue(value);
 
171
                slider->setValue(value);
170
172
        }
171
173
}
172
174
 
173
175
 
174
176
void ZoomWidget::setZoomRange(qreal minZoom, qreal maxZoom) {
175
 
        d->mZoomSlider->setRange(
 
177
        d->mZoomSlider->slider()->setRange(
176
178
                sliderValueForZoom(minZoom),
177
179
                sliderValueForZoom(maxZoom));
178
180
}