710
|
|
Add View / Zoomed Thumbnail Mode, View / Enable Thumbnail Rectangle; Refactor and document kpView
Backend: * kpthumbnail.cpp - setView() now accepts null param (setWidget() doesn't support this - had to manually use boxLayout()) - note TODO * kpview.cpp - new header guard style - store all vars in d-ptr struct and remove #include's; hides impl, speeds compile - document API - split lazy kpMainWindow ptr - support buddyView() & buddyViewScrollView() mainly for thumbnail - add public origin()/setOrigin() - add showBuddyViewScrollViewRectangle() and friends (mainly for thumbnail rectangle feature) - rename kpView::zoom(ViewToDoc|DocToView) to kpView::transform(ViewToDoc|DocToView) so that name includes origin translation (not just zooming) - add zoomedDoc(Width|Height)() - refactor kpView: - add pure virtual adjustToEnvironment() impl for new view classes - kpView now becomes a wonderfully clean base - factor out "autoVariableZoom" into kpzoomedthumbnail.cpp; no more confusion about which class (kpView, kpViewManager, kpThumbnail) has what responsibility, reduce chance of stale state if changing e.g. autoVariableZoom - since kpView now abstract, ordinary zoomed main view moves to kpZoomedView - add abstract kpThumbnailView base derived from kpView (adds setMaskToCoverDocument() for changing origin, calls adjustToEnvironment() on resize, adds pure virtual caption() for kpThumbnail window) - add kpUnzoomedThumbnailView for new Unzoomed Thumbnail Mode - add kpZoomedThumbnailView that contains all the "autoVariableZoom" logic that was all over the place - add originChanged() signal - move in kpMainWindow::drawTransparentBackground() to reduce coincidental coupling and make it static - remove m_needBorder (not needed thanks to origin() and rounding down behaviour of zoomedDoc(Width|Height)()) - remove unused m_docToViewMatrix - kpView::showGrid() checks canShowGrid() - update style - in event handlers, check for tool() before deref (just in case) - actually blink text cursor if thumbnail window has focus (needs BACKPORT) * kpviewmanager.cpp - add activeView() - add updateViewRectangleEdges() - remove resizeViews() which incorrectly had business logic of view type; add adjustViewsToEnvironment() which calls logic in pure virtual kpView::adjustToEnvironment() * kpviewscrollablecontainer.cpp - add contents[XY]Soon(), signal contentsMovingSoon() to work around braindead QScrollView::contentsMoving(int,int) signal (when this QScrollView signal is fired, contents[XY]() still report old values because QScrollView hasn't scrolled yet; there should be a QScrollView::contentsMoved(int,int) IMO; no, we can't just use a single shot timer - can take forever to fire as seen from drag scrolling) - add resized() signal * add kpToolControllerIface that gives currently selected tool - kpToolToolBar implements - used by kpView's kpMainWindow ptr splitting * kpmainwindow_view.cpp - add note about setUpdatesEnabled(), debug
svn path=/trunk/kdegraphics/kolourpaint/; revision=385271
|
Clarence Dang |
19 years ago
|
|
|