~smartboyhw/ubuntu/raring/calligra/2.6.0-0ubuntu1

« back to all changes in this revision

Viewing changes to krita/ui/kis_zoom_manager.cc

  • Committer: Package Import Robot
  • Author(s): Scott Kitterman
  • Date: 2012-10-07 16:52:45 UTC
  • mfrom: (1.1.12)
  • Revision ID: package-import@ubuntu.com-20121007165245-91bwt6kz9z4t3ak9
Tags: 1:2.5.3-0ubuntu1
New upstream bugfix release

Show diffs side-by-side

added added

removed removed

Lines of Context:
47
47
#include "kis_statusbar.h"
48
48
#include "kis_config.h"
49
49
 
 
50
class KisZoomController : public KoZoomController
 
51
{
 
52
public:
 
53
    KisZoomController(KoCanvasController *co, KisCoordinatesConverter *zh, KActionCollection *actionCollection, KoZoomAction::SpecialButtons specialButtons, QObject *parent)
 
54
        : KoZoomController(co, zh, actionCollection, specialButtons, parent),
 
55
          m_converter(zh)
 
56
    {
 
57
    }
 
58
 
 
59
protected:
 
60
    QSize documentToViewport(const QSizeF &size) {
 
61
        QRectF docRect(QPointF(), size);
 
62
        return m_converter->documentToWidget(docRect).toRect().size();
 
63
    }
 
64
 
 
65
private:
 
66
    KisCoordinatesConverter *m_converter;
 
67
};
 
68
 
 
69
 
50
70
KisZoomManager::KisZoomManager(KisView2 * view, KoZoomHandler * zoomHandler,
51
71
                               KoCanvasController * canvasController)
52
72
        : m_view(view)
72
92
    KoZoomMode::setMinimumZoom(0.125);
73
93
    KoZoomMode::setMaximumZoom(64.0);
74
94
 
 
95
    KisCoordinatesConverter *converter =
 
96
        dynamic_cast<KisCoordinatesConverter*>(m_zoomHandler);
 
97
 
75
98
    KisConfig cfg;
76
 
    m_zoomController = new KoZoomController(m_canvasController, m_zoomHandler, actionCollection, KoZoomAction::AspectMode, this);
 
99
    m_zoomController = new KisZoomController(m_canvasController, converter, actionCollection, KoZoomAction::AspectMode, this);
77
100
    m_zoomHandler->setZoomMode(KoZoomMode::ZOOM_PIXELS);
78
101
    m_zoomHandler->setZoom(1.0);
79
102
 
148
171
 
149
172
void KisZoomManager::mousePositionChanged(const QPoint &pos)
150
173
{
151
 
    // "widget-to-postprocessed-flake"
152
 
    QPoint canvasOffset(m_canvasController->canvasOffsetX(), m_canvasController->canvasOffsetY());
153
 
    QPoint viewPos = pos - m_canvasController->canvas()->documentOrigin() - canvasOffset;
 
174
    QPoint canvasShift = m_view->canvasBase()->coordinatesConverter()->flakeToWidget(QPointF(m_canvasController->canvasOffsetX(), m_canvasController->canvasOffsetY())).toPoint();
 
175
    QPoint viewPos = pos - canvasShift;
154
176
 
155
177
    m_horizontalRuler->updateMouseCoordinate(viewPos.x());
156
178
    m_verticalRuler->updateMouseCoordinate(viewPos.y());
177
199
    Q_UNUSED(zoom);
178
200
 
179
201
    m_view->canvasBase()->notifyZoomChanged();
180
 
    m_canvasController->pan(m_view->canvasBase()->coordinatesConverter()->updateOffsetAfterTransform());
181
202
}
182
203
 
183
204
void KisZoomManager::slotScrollAreaSizeChanged()
184
205
{
185
 
    QSize widgetSize = m_view->canvasBase()->coordinatesConverter()->imageRectInWidgetPixels().toAlignedRect().size();
186
 
    m_canvasController->updateDocumentSize(widgetSize, true);
 
206
    pageOffsetChanged();
187
207
    updateGUI();
188
208
}
189
209
 
203
223
 
204
224
void KisZoomManager::pageOffsetChanged()
205
225
{
206
 
    m_horizontalRuler->setOffset(m_canvasController->canvasOffsetX() + m_view->canvasBase()->documentOrigin().x());
207
 
    m_verticalRuler->setOffset(m_canvasController->canvasOffsetY() + m_view->canvasBase()->documentOrigin().y());
 
226
    QRectF widgetRect = m_view->canvasBase()->coordinatesConverter()->imageRectInWidgetPixels();
 
227
    QPoint canvasShift = widgetRect.topLeft().toPoint();
 
228
 
 
229
    m_horizontalRuler->setOffset(canvasShift.x());
 
230
    m_verticalRuler->setOffset(canvasShift.y());
208
231
}
209
232
 
210
233
void KisZoomManager::zoomTo100()