------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 Summary: Zooming Not Working in View Mode Product: digikam Version: 0.9.0 Platform: Ubuntu Packages OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: general AssignedTo: digikam-devel kde org ReportedBy: alan flisch net Version: 0.9.0 (using KDE KDE 3.5.5) Installed from: Ubuntu Packages OS: Linux If I right click on an image and choose 'view' I go into a view mode. When in this mode, there doesn't appear to be a mechanism for zooming. There are magnifying glass icons with plus and minus signs on them that would appear to be for zooming, but their tooltip reads "Increase/Decrease Thumbnail Size" and clicking them appears to have no effect. On returning to the Album mode however I can see that the thumbnails have changed their size. Using the ctrl-shift+ or ctrl-shift- key combos has the same effect. I guess this must be a context based change of behaviour that is not being applied as it should be. I installed this on Ubuntu Edgy using these repositories.. deb http://www.mpe.mpg.de/~ach/kubuntu/edgy ./ deb-src http://www.mpe.mpg.de/~ach/kubuntu/edgy ./ _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 caulier.gilles kdemail net changed: What |Removed |Added ---------------------------------------------------------------------------- Component|general |Albums GUI _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 lure kubuntu org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lure kubuntu org Severity|normal |wishlist Status|UNCONFIRMED |NEW everconfirmed|0 |1 ------- Additional Comments From lure kubuntu org 2007-01-24 22:14 ------- Yes, current view mode is very limited. Since this is now default action for single click on image, it will have to be improved, otherwise it will leave bad impression to the user. Related bug 135655 is regarding full screen mode in View mode. _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 caulier.gilles kdemail net changed: What |Removed |Added ---------------------------------------------------------------------------- Component|Albums GUI |Preview _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 lure kubuntu org changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Zooming Not Working in View |No zoom in image preview |Mode | ------- Additional Comments From lure kubuntu org 2007-02-10 22:52 ------- Preview mode now disables Zoom icons, as they have no effect on image (only in thumbnail view). Zoom in preview is a wish list to be added in future. _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From glaurent telegraph-road org 2007-03-31 15:53 ------- I concur. I use the preview mode to quickly sort through a bunch of images, deciding which ones I want to keep. It's often hard to make this decision without zooming into the image, for instance to check if it isn't slightly blurry, or other details which you won't see if the image is reduced to fit the window (noise level is another example). _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From caulier.gilles gmail com 2007-03-31 17:05 ------- I will certainly implement it in a near future. Somebody have sent to me a very fast algorithm to scale a QImage (20x faster than QImage::smothscale() method) Gilles _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From mikmach wp pl 2007-03-31 19:26 ------- > have sent to me a very fast algorithm to scale a QImage (20x faster than > QImage::smothscale() method) So maybe it would be possible to have thumbnails in Album view bigger than 256 pixels :) _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 caulier.gilles gmail com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Additional Comments From caulier.gilles gmail com 2007-04-07 12:54 ------- SVN commit 651326 by cgilles: digikam from trunk : added scrooling function in Preview Mode. Just use CTRL + Mouse wheel to change zoom factor. SHIFT + Mouse wheel change the current image to preview in current album. BUG: 140131 M +1 -0 Makefile.am AM fastscale.cpp [License: GPL] AM fastscale.h [License: GPL] M +145 -156 imagepreviewview.cpp M +2 -6 imagepreviewview.h M +384 -72 imagepreviewwidget.cpp M +31 -14 imagepreviewwidget.h _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From caulier.gilles gmail com 2007-04-08 16:17 ------- SVN commit 651581 by cgilles: digiKam from trunk : Image preview mode is abble to use CTRL+ and CTRL- to zoom in/out into image. Increase/Decrease Thumbs Size actions from View menu of Album GUI are now renamed Zoom In/Out Code simplification and factorized between albumwidgetstack/imagepreviewview. CCBUGS: 140131 M +25 -3 albumwidgetstack.cpp M +5 -0 albumwidgetstack.h M +26 -40 digikamapp.cpp M +0 -1 digikamapp.h M +5 -5 digikamui.rc M +60 -21 digikamview.cpp M +5 -4 digikamview.h M +2 -8 imagepreviewview.cpp M +1 -0 imagepreviewview.h M +2 -1 imagepreviewwidget.cpp M +0 -3 imagepreviewwidget.h --- trunk/extragear/graphics/digikam/digikam/albumwidgetstack.cpp #651580:651581 @ -179,12 +179,14 @ { d->albumIconView->setFocus(); setPreviewItem(); + raiseWidget(mode); emit signalToggledToPreviewMode(false); } - else + else + { + raiseWidget(mode); emit signalToggledToPreviewMode(true); - - raiseWidget(mode); + } } void AlbumWidgetStack::slotPreviewLoaded() @ -206,4 +208,24 @ d->imagePreviewView->reload(); } +void AlbumWidgetStack::increaseZoom() +{ + d->imagePreviewView->slotIncreaseZoom(); +} + +void AlbumWidgetStack::decreaseZoom() +{ + d->imagePreviewView->slotDecreaseZoom(); +} + +bool AlbumWidgetStack::maxZoom() +{ + return d->imagePreviewView->maxZoom(); +} + +bool AlbumWidgetStack::minZoom() +{ + return d->imagePreviewView->minZoom(); +} + } // namespace Digikam --- trunk/extragear/graphics/digikam/digikam/albumwidgetstack.h #651580:651581 @ -67,6 +67,11 @ void setPreviewItem(ImageInfo* info=0, ImageInfo *previous=0, ImageInfo *next=0); int previewMode(void); void setPreviewMode(int mode); + + void increaseZoom(); + void decreaseZoom(); + bool maxZoom(); + bool minZoom(); signals: --- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #651580:651581 @ -360,7 +360,7 @ connect(d->thumbSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(slotThumbSizeTimer(int))); - connect(d->view, SIGNAL(signalThumbSizeChanged(int)), + connect(d->view, SIGNAL(signalZoomChanged(int)), this, SLOT(slotThumbSizeChanged(int))); connect(d->view, SIGNAL(signalTogglePreview(bool)), @ -757,25 +757,21 @ // ----------------------------------------------------------- - d->thumbSizePlusAction = new KAction(i18n("Increase Thumbnail Size"), + d->thumbSizePlusAction = new KAction(i18n("Zoom in"), "viewmag+", CTRL+Key_Plus, d->view, - SLOT(slotThumbSizePlus()), + SLOT(slotZoomIn()), actionCollection(), - "album_thumbSizeIncrease"); - d->thumbSizePlusAction->setWhatsThis(i18n("This option allows you to increase " - "the Album thumbnails size.")); + "album_zoomin"); - d->thumbSizeMinusAction = new KAction(i18n("Decrease Thumbnail Size"), + d->thumbSizeMinusAction = new KAction(i18n("Zoom out"), "viewmag-", CTRL+Key_Minus, d->view, - SLOT(slotThumbSizeMinus()), + SLOT(slotZoomOut()), actionCollection(), - "album_thumbSizeDecrease"); - d->thumbSizeMinusAction->setWhatsThis(i18n("This option allows you to decrease " - "the Album thumbnails size.")); + "album_zoomout"); #if KDE_IS_VERSION(3,2,0) d->fullScreenAction = KStdAction::fullScreen(this, SLOT(slotToggleFullScreen()), @ -1796,28 +1792,6 @ KApplication::kApplication()->invokeBrowser("http://www.digikam.org/?q=donation"); } -void DigikamApp::toggledToPreviewMode(bool t) -{ - // NOTE: if 't' is true, we are in Preview Mode, else we are in AlbumView Mode - - // This is require if ESC is pressed to go out of Preview Mode. - // imagePreviewAction is handled by F3 key only. - d->imagePreviewAction->setChecked(t); - - // Here, we will toggle some menu actions depending of current Mode. - - // Select menu. - d->selectAllAction->setEnabled(!t); - d->selectNoneAction->setEnabled(!t); - d->selectInvertAction->setEnabled(!t); - - // View menu - d->thumbSizePlusAction->setEnabled(!t); - d->thumbSizeMinusAction->setEnabled(!t); - d->albumSortAction->setEnabled(!t); - d->imageSortAction->setEnabled(!t); -} - void DigikamApp::slotThumbSizeTimer(int size) { d->thumbSizeTracker->setText(i18n("Thumbnail size: %1").arg(size)); @ -1847,14 +1821,26 @ d->thumbSizeSlider->blockSignals(false); } -void DigikamApp::slotTooglePreview(bool b) +void DigikamApp::slotTooglePreview(bool t) { - d->thumbSizeSlider->setEnabled(!b); - // TODO : enable/disable the menu actions accordinly with the current mode. - // For ex., in Image Preview mode: - // - disable Thumbs size +/- - // - diable thumbs selection. - // etc. + // NOTE: if 't' is true, we are in Preview Mode, else we are in AlbumView Mode + + d->thumbSizeSlider->setEnabled(!t); + + // This is require if ESC is pressed to go out of Preview Mode. + // imagePreviewAction is handled by F3 key only. + d->imagePreviewAction->setChecked(t); + + // Here, we will toggle some menu actions depending of current Mode. + + // Select menu. + d->selectAllAction->setEnabled(!t); + d->selectNoneAction->setEnabled(!t); + d->selectInvertAction->setEnabled(!t); + + // View menu + d->albumSortAction->setEnabled(!t); + d->imageSortAction->setEnabled(!t); } } // namespace Digikam --- trunk/extragear/graphics/digikam/digikam/digikamapp.h #651580:651581 @ -77,7 +77,6 @ void enableThumbSizeMinusAction(bool val); void enableAlbumBackwardHistory(bool enable); void enableAlbumForwardHistory(bool enable); - void toggledToPreviewMode(bool t); signals: --- trunk/extragear/graphics/digikam/digikam/digikamui.rc #651580:651581 @ -1,5 +1,5 @ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui version="21" name="digikam" > +<kpartgui version="22" name="digikam" > <MenuBar> @ -62,8 +62,8 @ <Action name="full_screen" /> <Action name="slideshow" /> <Separator/> - <Action name="album_thumbSizeIncrease" /> - <Action name="album_thumbSizeDecrease" /> + <Action name="album_zoomin" /> + <Action name="album_zoomout" /> <Separator /> <Action name="album_sort" /> <Action name="image_sort" /> @ -123,8 +123,8 @ <Action name="image_edit" /> <Action name="image_rename" /> <Separator/> - <Action name="album_thumbSizeIncrease" /> - <Action name="album_thumbSizeDecrease" /> + <Action name="album_zoomin" /> + <Action name="album_zoomout" /> <Separator/> <Action name="full_screen" /> <Action name="slideshow" /> --- trunk/extragear/graphics/digikam/digikam/digikamview.cpp #651580:651581 @ -711,37 +711,74 @ emit signalNoCurrentItem(); - d->parent->enableThumbSizeMinusAction(true); - d->parent->enableThumbSizePlusAction(true); + d->iconView->setThumbnailSize(size); - if (size == ThumbnailSize::Huge) - d->parent->enableThumbSizePlusAction(false); + toogleZoomActions(); - if (size == ThumbnailSize::Small) - d->parent->enableThumbSizeMinusAction(false); - - d->iconView->setThumbnailSize(size); - AlbumSettings* settings = AlbumSettings::instance(); if (!settings) return; settings->setDefaultIconSize(size); } -void DigikamView::slotThumbSizePlus() +void DigikamView::toogleZoomActions() { - int newSize = d->iconView->thumbnailSize().size() + ThumbnailSize::Step; - setThumbSize(newSize); - emit signalThumbSizeChanged(newSize); + if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewImageMode) + { + d->parent->enableThumbSizeMinusAction(true); + d->parent->enableThumbSizePlusAction(true); + + if (d->albumWidgetStack->maxZoom()) + d->parent->enableThumbSizePlusAction(false); + + if (d->albumWidgetStack->minZoom()) + d->parent->enableThumbSizeMinusAction(false); + } + else if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewAlbumMode) + { + int size = d->iconView->thumbnailSize().size(); + + d->parent->enableThumbSizeMinusAction(true); + d->parent->enableThumbSizePlusAction(true); + + if (size == ThumbnailSize::Huge) + d->parent->enableThumbSizePlusAction(false); + + if (size == ThumbnailSize::Small) + d->parent->enableThumbSizeMinusAction(false); + } } -void DigikamView::slotThumbSizeMinus() +void DigikamView::slotZoomIn() { - int newSize = d->iconView->thumbnailSize().size() - ThumbnailSize::Step; - setThumbSize(newSize); - emit signalThumbSizeChanged(newSize); + if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewAlbumMode) + { + int newSize = d->iconView->thumbnailSize().size() + ThumbnailSize::Step; + setThumbSize(newSize); + emit signalZoomChanged(newSize); + } + else if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewImageMode) + { + d->albumWidgetStack->increaseZoom(); + toogleZoomActions(); + } } +void DigikamView::slotZoomOut() +{ + if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewAlbumMode) + { + int newSize = d->iconView->thumbnailSize().size() - ThumbnailSize::Step; + setThumbSize(newSize); + emit signalZoomChanged(newSize); + } + else if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewImageMode) + { + d->albumWidgetStack->decreaseZoom(); + toogleZoomActions(); + } +} + void DigikamView::slotAlbumPropsEdit() { d->folderView->albumEdit(); @ -867,24 +904,26 @ { // We will go to ImagePreview Mode. ImageInfo *previousInfo=0, *nextInfo=0; + if (iconItem->prevItem()) previousInfo = static_cast<AlbumIconItem*>(iconItem->prevItem())->imageInfo(); + if (iconItem->nextItem()) nextInfo = static_cast<AlbumIconItem*>(iconItem->nextItem())->imageInfo(); + d->albumWidgetStack->setPreviewItem(iconItem->imageInfo(), previousInfo, nextInfo); - emit signalTogglePreview(true); } else { // We go back to AlbumView Mode. d->albumWidgetStack->setPreviewMode( AlbumWidgetStack::PreviewAlbumMode ); - emit signalTogglePreview(false); } } -void DigikamView::slotToggledToPreviewMode(bool t) +void DigikamView::slotToggledToPreviewMode(bool b) { - d->parent->toggledToPreviewMode(t); + toogleZoomActions(); + emit signalTogglePreview(b); } void DigikamView::slotImageEdit() --- trunk/extragear/graphics/digikam/digikam/digikamview.h #651580:651581 @ -72,14 +72,14 @ void signalNoCurrentItem(); void signalProgressBarMode(int, const QString&); void signalProgressValue(int); - void signalThumbSizeChanged(int); + void signalZoomChanged(int); void signalTogglePreview(bool); public slots: // View Action slots - void slotThumbSizePlus(); - void slotThumbSizeMinus(); + void slotZoomIn(); + void slotZoomOut(); void slotSlideShowAll(); void slotSlideShowSelection(); void slotSlideShowRecursive(); @ -136,6 +136,7 @ private: + void toogleZoomActions(); void setupConnections(); void loadViewState(); void saveViewState(); @ -152,7 +153,6 @ void slotImageSelected(); void slotTogglePreviewMode(AlbumIconItem *iconItem=0); - void slotToggledToPreviewMode(bool); void slotDispatchImageSelected(); void slotImageCopyResult(KIO::Job* job); void slotItemsInfoFromAlbums(const ImageInfoList&); @ -164,6 +164,7 @ void slotNextItem(void); void slotLastItem(void); + void slotToggledToPreviewMode(bool); void slotEscapePreview(); void slotCancelSlideShow(); --- trunk/extragear/graphics/digikam/digikam/imagepreviewview.cpp #651580:651581 @ -97,12 +97,6 @ // ---------------------------------------------------------------- - connect(this, SIGNAL(signalPreviewComplete()), - this, SIGNAL(signalPreviewLoaded())); - - connect(this, SIGNAL(signalPreviewFailed()), - this, SIGNAL(signalPreviewLoaded())); - connect(this, SIGNAL(signalShowNextImage()), this, SIGNAL(signalNextItem())); @ -179,7 +173,7 @ if (preview.isNull()) { - emit signalPreviewFailed(); + emit signalPreviewLoaded(); QPixmap pix(visibleWidth(), visibleHeight()); pix.fill(ThemeEngine::instance()->baseColor()); QPainter p(&pix); @ -194,7 +188,7 @ } else { - emit signalPreviewComplete(); + emit signalPreviewLoaded(); setImage(preview); } --- trunk/extragear/graphics/digikam/digikam/imagepreviewview.h #651580:651581 @ -57,6 +57,7 @ signals: + void signalPreviewStarted(); void signalNextItem(); void signalPrevItem(); void signalDeleteItem(); --- trunk/extragear/graphics/digikam/digikam/imagepreviewwidget.cpp #651580:651581 @ -270,6 +270,7 @ sw = step; sh = step; + // Fast smooth scale method from Antonio. QImage img = FastScale::fastScaleQImage(d->preview.copy(sx, sy, sw, sh), d->tileSize, d->tileSize); bitBlt(pix, 0, 0, &img, 0, 0); @ -381,7 +382,7 @ return; } - QScrollView::contentsWheelEvent(e); + QScrollView::contentsWheelEvent(e);*/ } bool ImagePreviewWidget::maxZoom() --- trunk/extragear/graphics/digikam/digikam/imagepreviewwidget.h #651580:651581 @ -61,9 +61,6 @ void signalLeftButtonClicked(); void signalShowNextImage(); void signalShowPrevImage(); - void signalPreviewStarted(); - void signalPreviewComplete(); - void signalPreviewFailed(); public slots: _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From mikmach wp pl 2007-04-08 18:47 ------- > digiKam from trunk : Image preview mode is abble to use CTRL+ and CTRL- > to zoom in/out into image. I see some changes from patch: no pan tool, no zoom icons in toolbar. Also noticed some strange tiling previously posted by someone. Note: you can also zoom by pressing CTRL and using mouse wheel at the same time. _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From caulier.gilles gmail com 2007-04-08 20:03 ------- SVN commit 651639 by cgilles: digiKam from trunk : Image preview mode is abble to use the slider on status bar to zoom in/out into image. Zoom factor is given as feedback on slider tool tip. CCBUGS: 140131 M +10 -0 albumwidgetstack.cpp M +2 -0 albumwidgetstack.h M +22 -23 digikamapp.cpp M +1 -1 digikamapp.h M +0 -3 digikamappprivate.h M +48 -7 digikamview.cpp M +4 -1 digikamview.h M +5 -0 imagepreviewwidget.cpp M +1 -0 imagepreviewwidget.h --- trunk/extragear/graphics/digikam/digikam/albumwidgetstack.cpp #651638:651639 @ -228,4 +228,14 @ return d->imagePreviewView->minZoom(); } +void AlbumWidgetStack::setZoomFactor(double z) +{ + d->imagePreviewView->setZoomFactor(z); +} + +double AlbumWidgetStack::zoomFactor() +{ + return d->imagePreviewView->zoomFactor(); +} + } // namespace Digikam --- trunk/extragear/graphics/digikam/digikam/albumwidgetstack.h #651638:651639 @ -72,6 +72,8 @ void decreaseZoom(); bool maxZoom(); bool minZoom(); + void setZoomFactor(double z); + double zoomFactor(); signals: --- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #651638:651639 @ -174,9 +174,6 @ DigikamApp::~DigikamApp() { - if (d->thumbSizeTimer) - delete d->thumbSizeTimer; - ImageAttributesWatch::shutDown(); if (ImageWindow::imagewindowCreated()) @ -360,8 +357,11 @ connect(d->thumbSizeSlider, SIGNAL(valueChanged(int)), this, SLOT(slotThumbSizeTimer(int))); - connect(d->view, SIGNAL(signalZoomChanged(int)), + connect(d->view, SIGNAL(signalThumbSizeChanged(int)), this, SLOT(slotThumbSizeChanged(int))); + + connect(d->view, SIGNAL(signalZoomChanged(double)), + this, SLOT(slotZoomChanged(double))); connect(d->view, SIGNAL(signalTogglePreview(bool)), this, SLOT(slotTooglePreview(bool))); @ -918,7 +918,7 @ d->imageSortAction->setCurrentItem((int)d->albumSettings->getImageSortOrder()); d->thumbSizeSlider->setValue(d->albumSettings->getDefaultIconSize()); - slotThumbSizeEffect(); + slotThumbSizeChanged(d->thumbSizeSlider->value()); } void DigikamApp::enableThumbSizePlusAction(bool val) @ -1794,30 +1794,31 @ void DigikamApp::slotThumbSizeTimer(int size) { - d->thumbSizeTracker->setText(i18n("Thumbnail size: %1").arg(size)); - - if (d->thumbSizeTimer) - { - d->thumbSizeTimer->stop(); - delete d->thumbSizeTimer; - } - - d->thumbSizeTimer = new QTimer( this ); - connect(d->thumbSizeTimer, SIGNAL(timeout()), - this, SLOT(slotThumbSizeEffect()) ); - d->thumbSizeTimer->start(300, true); + d->view->setThumbSize(size); } -void DigikamApp::slotThumbSizeEffect() +void DigikamApp::slotThumbSizeChanged(int size) { - d->view->setThumbSize(d->thumbSizeSlider->value()); + d->thumbSizeSlider->blockSignals(true); + d->thumbSizeSlider->setValue(size); + d->thumbSizeTracker->setText(i18n("Thumbnail size: %1").arg(size)); + d->thumbSizeSlider->blockSignals(false); } -void DigikamApp::slotThumbSizeChanged(int size) +void DigikamApp::slotZoomChanged(double zoom) { d->thumbSizeSlider->blockSignals(true); + + double h = (double)ThumbnailSize::Huge; + double s = (double)ThumbnailSize::Small; + double zmin = 0.1; + double zmax = 10.0; + double b = (zmin-(zmax*s/h))/(1-s/h); + double a = (zmax-b)/h; + int size = (int)((zoom - b) /a); + d->thumbSizeSlider->setValue(size); - d->thumbSizeTracker->setText(i18n("Thumbnail size: %1").arg(size)); + d->thumbSizeTracker->setText(i18n("zoom: %1%").arg((int)(zoom*100.0))); d->thumbSizeSlider->blockSignals(false); } @ -1825,8 +1826,6 @ { // NOTE: if 't' is true, we are in Preview Mode, else we are in AlbumView Mode - d->thumbSizeSlider->setEnabled(!t); - // This is require if ESC is pressed to go out of Preview Mode. // imagePreviewAction is handled by F3 key only. d->imagePreviewAction->setChecked(t); --- trunk/extragear/graphics/digikam/digikam/digikamapp.h #651638:651639 @ -154,8 +154,8 @ void slotProgressValue(int); void slotThumbSizeTimer(int); - void slotThumbSizeEffect(); void slotThumbSizeChanged(int); + void slotZoomChanged(double); void slotTooglePreview(bool); private: --- trunk/extragear/graphics/digikam/digikam/digikamappprivate.h #651638:651639 @ -130,7 +130,6 @ view = 0; splashScreen = 0; thumbSizeSlider = 0; - thumbSizeTimer = 0; thumbSizeTracker = 0; } @ -145,8 +144,6 @ QPtrList<KAction> kipiBatchActions; QPtrList<KAction> kipiAlbumActions; - QTimer *thumbSizeTimer; - QSlider *thumbSizeSlider; QMap<int, QString> mediaItems; --- trunk/extragear/graphics/digikam/digikam/digikamview.cpp #651638:651639 @ -101,6 +101,7 @ tagFilterView = 0; albumWidgetStack = 0; selectionTimer = 0; + thumbSizeTimer = 0; needDispatchSelection = false; cancelSlideShow = false; } @ -109,10 +110,12 @ bool cancelSlideShow; int initialAlbumID; + int thumbSize; QSplitter *splitter; QTimer *selectionTimer; + QTimer *thumbSizeTimer; DigikamApp *parent; @ -178,6 +181,9 @ DigikamView::~DigikamView() { + if (d->thumbSizeTimer) + delete d->thumbSizeTimer; + saveViewState(); delete d->albumHistory; @ -706,19 +712,50 @ void DigikamView::setThumbSize(int size) { - if (size > ThumbnailSize::Huge || size < ThumbnailSize::Small) - return; + if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewImageMode) + { + double h = (double)ThumbnailSize::Huge; + double s = (double)ThumbnailSize::Small; + double zmin = 0.1; + double zmax = 10.0; + double b = (zmin-(zmax*s/h))/(1-s/h); + double a = (zmax-b)/h; + double z = a*size+b; + d->albumWidgetStack->setZoomFactor(z); + emit signalZoomChanged(d->albumWidgetStack->zoomFactor()); + } + else if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewAlbumMode) + { + if (size > ThumbnailSize::Huge || size < ThumbnailSize::Small) + return; + emit signalThumbSizeChanged(size); + d->thumbSize = size; + + if (d->thumbSizeTimer) + { + d->thumbSizeTimer->stop(); + delete d->thumbSizeTimer; + } + + d->thumbSizeTimer = new QTimer( this ); + connect(d->thumbSizeTimer, SIGNAL(timeout()), + this, SLOT(slotThumbSizeEffect()) ); + d->thumbSizeTimer->start(300, true); + } +} + +void DigikamView::slotThumbSizeEffect() +{ emit signalNoCurrentItem(); - d->iconView->setThumbnailSize(size); - + d->iconView->setThumbnailSize(d->thumbSize); toogleZoomActions(); AlbumSettings* settings = AlbumSettings::instance(); if (!settings) return; - settings->setDefaultIconSize(size); + settings->setDefaultIconSize(d->thumbSize); } void DigikamView::toogleZoomActions() @ -755,12 +792,13 @ { int newSize = d->iconView->thumbnailSize().size() + ThumbnailSize::Step; setThumbSize(newSize); - emit signalZoomChanged(newSize); + emit signalThumbSizeChanged(newSize); } else if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewImageMode) { d->albumWidgetStack->increaseZoom(); toogleZoomActions(); + emit signalZoomChanged(d->albumWidgetStack->zoomFactor()); } } @ -770,12 +808,13 @ { int newSize = d->iconView->thumbnailSize().size() - ThumbnailSize::Step; setThumbSize(newSize); - emit signalZoomChanged(newSize); + emit signalThumbSizeChanged(newSize); } else if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewImageMode) { d->albumWidgetStack->decreaseZoom(); toogleZoomActions(); + emit signalZoomChanged(d->albumWidgetStack->zoomFactor()); } } @ -912,11 +951,13 @ nextInfo = static_cast<AlbumIconItem*>(iconItem->nextItem())->imageInfo(); d->albumWidgetStack->setPreviewItem(iconItem->imageInfo(), previousInfo, nextInfo); + emit signalZoomChanged(d->albumWidgetStack->zoomFactor()); } else { // We go back to AlbumView Mode. d->albumWidgetStack->setPreviewMode( AlbumWidgetStack::PreviewAlbumMode ); + emit signalThumbSizeChanged(d->iconView->thumbnailSize().size()); } } --- trunk/extragear/graphics/digikam/digikam/digikamview.h #651638:651639 @ -72,7 +72,8 @ void signalNoCurrentItem(); void signalProgressBarMode(int, const QString&); void signalProgressValue(int); - void signalZoomChanged(int); + void signalThumbSizeChanged(int); + void signalZoomChanged(double); void signalTogglePreview(bool); public slots: @ -168,6 +169,8 @ void slotEscapePreview(); void slotCancelSlideShow(); + void slotThumbSizeEffect(); + private: DigikamViewPriv* d; --- trunk/extragear/graphics/digikam/digikam/imagepreviewwidget.cpp #651638:651639 @ -437,6 +437,11 @ viewport()->update(); } +double ImagePreviewWidget::zoomFactor() +{ + return d->zoom; +} + bool ImagePreviewWidget::fitToWindow() { return d->autoZoom; --- trunk/extragear/graphics/digikam/digikam/imagepreviewwidget.h #651638:651639 @ -50,6 +50,7 @ void setImage(const QImage& image); void setZoomFactor(double z); + double zoomFactor(); bool fitToWindow(); void toggleFitToWindow(); bool maxZoom(); _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
> Zoom factor is given as feedback on slider tool tip.
Few bugs: Tooltip of slider is below-right of mouse pointer. When Digikam is maximized (for me it is always) I cannot see tooltip and zoom factor. Nav buttons are working properly (with Digikam window smaller than fullscreen tooltips are below-right of mouse pointer; with maximized window tooltips are up-left of button). When using CTRL-MouseWheel slider position isn't updated. Still problems with tiling at some zoom-factor values. Couldn't track any rule to this. Slider position isn't updated when switching between contexts for proper zoom-factor. Wish/suggestion: At the moment you have two centers for size manipulation: buttons in toolbar and slider. IMO this is not right. Everything should be in one place. So please - move buttons to status bar or slider to toolbar. Personally prefer first solution - it will give more room in already crowded toolbar, especially with coming KDE4 guidelines (icon+text as default). _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From mikmach wp pl 2007-04-08 23:54 ------- > Zoom factor is given as feedback on slider tool tip. Few bugs: Tooltip of slider is below-right of mouse pointer. When Digikam is maximized (for me it is always) I cannot see tooltip and zoom factor. Nav buttons are working properly (with Digikam window smaller than fullscreen tooltips are below-right of mouse pointer; with maximized window tooltips are up-left of button). When using CTRL-MouseWheel slider position isn't updated. Still problems with tiling at some zoom-factor values. Couldn't track any rule to this. Slider position isn't updated when switching between contexts for proper zoom-factor. Wish/suggestion: At the moment you have two centers for size manipulation: buttons in toolbar and slider. IMO this is not right. Everything should be in one place. So please - move buttons to status bar or slider to toolbar. Personally prefer first solution - it will give more room in already crowded toolbar, especially with coming KDE4 guidelines (icon+text as default). _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Gilles Caulier-4
Wow - that zooming looks absolutely great!!!!
Some observations and comments: - I also observe artefacts at different zoom-levels (eg. at 92 % and at 397%, but these values differ from image to image; also this only seems to happen when using CTRL+ and CTRL-, but not the slider?) - pressing F4 to open the image editor: the zoom in the album view is undone (however, moving the slider afterwards shows, that it is still zoomed in) - maybe related: somehow the previous zoom-level is memorized: F3 for an image and zoom in (e.g. 1000%) ESC to leave F3 again: the image is displayed to fit the available space, but the slider is still on 1000%. - the zoom percentages do not seem to match with the values in the image editor (but maybe I am wrong): I.e., shouldn't 100% mean that one image pixel corresponds one display pixel? - Maybe just a personal problem: I always find my to press CTRL-Q to leave the large view (obviously because of the large display some corner of my brain thinks that this must be the image editor), but this does leave digikam (which does indeed leave the large view, but not in the way I wanted ...) - And another one: I happen to press the left-mouse (having panning in mind) quite frequently, which brings me back to the thumbnail view (which I did not want;-) - not sure if this is optimal from the useability point of view (I know that the "return-on-left-click" was a wish brought up a while ago...;-) Some wishes: - When zoomed in: a pan-window widget in the lower-right corner where the scroll-bars meet (as in the image editor) would be nice - it would be nice if the position of the mouse would be the center around which the zoom is done (I also mentioned this as a wish for the image editor zoom, but did not yet manage to look into the logic there, should be fairly easy to implement...) There is maybe one very important point: the zoom as it is presently done, uses a reduced-size version of the underlying image, right? So while it is nice to be able to zoom in, it does not allow for a judgement of the image quality (in contrast to the image editor). Do you think that there is a way to use the actual image (maybe from a certain zoom-level on?) But that would (quite certainly?) slow things down... In particular for the upcoming light-table I think it is important to compare the real images, not just up-scaled ones Uups: I just realized that for zooming in, the image editor also some interpolation is done, so that that one does not see the single pixels, but some nicely interpolated version? OK, that's all for the moment... Best, Arnd _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From arnd.baecker web de 2007-04-09 00:22 ------- Wow - that zooming looks absolutely great!!!! Some observations and comments: - I also observe artefacts at different zoom-levels (eg. at 92 % and at 397%, but these values differ from image to image; also this only seems to happen when using CTRL+ and CTRL-, but not the slider?) - pressing F4 to open the image editor: the zoom in the album view is undone (however, moving the slider afterwards shows, that it is still zoomed in) - maybe related: somehow the previous zoom-level is memorized: F3 for an image and zoom in (e.g. 1000%) ESC to leave F3 again: the image is displayed to fit the available space, but the slider is still on 1000%. - the zoom percentages do not seem to match with the values in the image editor (but maybe I am wrong): I.e., shouldn't 100% mean that one image pixel corresponds one display pixel? - Maybe just a personal problem: I always find my to press CTRL-Q to leave the large view (obviously because of the large display some corner of my brain thinks that this must be the image editor), but this does leave digikam (which does indeed leave the large view, but not in the way I wanted ...) - And another one: I happen to press the left-mouse (having panning in mind) quite frequently, which brings me back to the thumbnail view (which I did not want;-) - not sure if this is optimal from the useability point of view (I know that the "return-on-left-click" was a wish brought up a while ago...;-) Some wishes: - When zoomed in: a pan-window widget in the lower-right corner where the scroll-bars meet (as in the image editor) would be nice - it would be nice if the position of the mouse would be the center around which the zoom is done (I also mentioned this as a wish for the image editor zoom, but did not yet manage to look into the logic there, should be fairly easy to implement...) There is maybe one very important point: the zoom as it is presently done, uses a reduced-size version of the underlying image, right? So while it is nice to be able to zoom in, it does not allow for a judgement of the image quality (in contrast to the image editor). Do you think that there is a way to use the actual image (maybe from a certain zoom-level on?) But that would (quite certainly?) slow things down... In particular for the upcoming light-table I think it is important to compare the real images, not just up-scaled ones Uups: I just realized that for zooming in, the image editor also some interpolation is done, so that that one does not see the single pixels, but some nicely interpolated version? OK, that's all for the moment... Best, Arnd _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From caulier.gilles gmail com 2007-04-09 10:17 ------- To Mik on #10: >Few bugs: >Tooltip of slider is below-right of mouse pointer. When Digikam is >maximized (for me it is always) I cannot see tooltip and zoom factor. >Nav buttons are working properly (with Digikam window smaller than >fullscreen tooltips are below-right of mouse pointer; with maximized >window tooltips are up-left of button). yes, i have seen this problem. I will fix it. >When using CTRL-MouseWheel slider position isn't updated. idem. >Still problems with tiling at some zoom-factor values. Couldn't track >any rule to this. Antonio Larossa (witch have written the fast scale algorithm) have found the problem. It a division precision problem. He will patch svn today... >Slider position isn't updated when switching between contexts for proper >zoom-factor. Strange, here it work. I will take a look. >Wish/suggestion: >At the moment you have two centers for size manipulation: buttons in >toolbar and slider. IMO this is not right. Everything should be in one >place. So please - move buttons to status bar or slider to toolbar. >Personally prefer first solution - it will give more room in already >crowded toolbar, especially with coming KDE4 guidelines (icon+text as >default). agree. I have thinking to do it too, but i have been lost to improve canvas implementation previous week (:=))) Gilles _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From mikmach wp pl 2007-04-09 11:54 ------- Dnia poniedzia�ek 09 kwiecie� 2007, Gilles Caulier napisa�: > >Slider position isn't updated when switching between contexts for > > proper zoom-factor. > > Strange, here it work. I will take a look. This may be connected to not updated slider position when using CTRL-MouseWheel to change zoom. It will probably vanish with MouseWheel update fixing. > >Wish/suggestion: > > > >At the moment you have two centers for size manipulation: buttons in > >toolbar and slider. IMO this is not right. Everything should be in one > >place. So please - move buttons to status bar or slider to toolbar. > >Personally prefer first solution - it will give more room in already > >crowded toolbar, especially with coming KDE4 guidelines (icon+text as > >default). > > agree. I have thinking to do it too, but i have been lost to improve > canvas implementation previous week (:=))) Everything is all right as you know that problem exists :) _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Arnd Baecker
Arnd Baecker wrote:
> - And another one: I happen to press the left-mouse > (having panning in mind) quite frequently, which brings > me back to the thumbnail view (which I did not want;-) - not sure > if this is optimal from the useability point of view > (I know that the "return-on-left-click" was a wish brought > up a while ago...;-) It was me, who brought up this wish back then, and I still do like it very much to go forth and back with simple clicks. But of course these new developments in F3-preview require some adjustments. It would be perfect in my opinion, if you could go back on a single click, while it would pan on dragging your mouse (i.e. holding down the click and move the mouse). This would nicely account for both needs, wouldn't it? I don't know, whether this is easy with Qt/KDE. > There is maybe one very important point: > the zoom as it is presently done, uses a reduced-size version of the > underlying image, right? > So while it is nice to be able to zoom in, it does not allow for > a judgement of the image quality (in contrast to the image editor). > Do you think that there is a way to use the actual image > (maybe from a certain zoom-level on?) But that would (quite > certainly?) slow things down... > > In particular for the upcoming light-table I think it is important > to compare the real images, not just up-scaled ones > > Uups: I just realized that for zooming in, the image editor also > some interpolation is done, so that that one does not see the single > pixels, but some nicely interpolated version? A solution might be the following: While you move the slider, the image could be fast-scaled, and when you release the slider, the pixmap could be smoothly replaced in the background by the real picture. Same for Zoom+ and Zoom- buttons: on button click, immediately display a fast scaled version, and with a short delay after release, if the buttons has not been clicked again, replace it by the real picture. And one more point about the slider tooltip: When you hover over the zoom slider in F3 preview, it shows the zoom as tooltip (outside of the window, as mentioned before). If you now switch to another window/desktop (e.g. with Alt-Tab), the zoom-tooltip stays there. -- Thanks, Frank _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
In reply to this post by Alan Flisch
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=140131 ------- Additional Comments From Julien.Narboux inria fr 2007-04-09 13:55 ------- IMHO using Shift+MouseWheel to switch between pictures is not very intuitive, I would prefer to be able to use just the MouseWheel. I understand that if the picture is displayed larger than the view then the MouseWheel is used to pan. Maybe a solution would be that the picture can be paned by draging the mouse pointer... but then it is not possible to use a single click to go out from preview mode maybe double click could be used. Just my opinion. _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |