diff --git a/NEWS b/NEWS index 6ccc75c285..b59810ae6d 100644 --- a/NEWS +++ b/NEWS @@ -1,32 +1,33 @@ ***************************************************************************************************** digiKam 5.9.0 - Release date: 2018-02-25 NEW FEATURES: General : Libraw updated to last 0.18.7. BUGFIXES FROM BUGZILLA: 001 ==> 388977 - Error during upgrading core database schema from v8 to v9. 002 ==> 388867 - problem migrating databaseschema from 8 to 9. 003 ==> 388824 - UpdateSchemaFromV7ToV9 fails due to foreign key contraint in 5.8.0-01. 004 ==> 389042 - Auto-rotation/flip Images delete face tags. 005 ==> 337243 - Tool-Tips ignoring custom font size setting. 006 ==> 388320 - Selecting print layout does not stay selected. 007 ==> 389246 - Single click confirmation of suggested face tag. 008 ==> 389208 - Request addition of "Lens" to Tool-Tips (Icon Items). 009 ==> 389342 - Tags are copied although moving of file fails because file with the same name already exists in target location. 010 ==> 389420 - Thumbnails diminishing in size after switching Views. 011 ==> 389493 - Collection browse dialog should be consistent with other browse dialogs on KDE. 012 ==> 389512 - Timeline Thumbnails Not Shown. 013 ==> 389651 - Custom font size is not applied until you enter and exit the settings menu. 014 ==> 388345 - AppImage MySQL connection issues. 015 ==> 389827 - Ignores albums selection. 016 ==> 389835 - Incorrect DateTime manipulation if timestamp is before unix epoch time. 017 ==> 390121 - Thumbnail size is too small. 018 ==> 390136 - digiKam crashes when launching scan and recognize faces. 019 ==> 390325 - Segmentation fault - QMutex::lock(). 020 ==> 390443 - FAQ entry unaccurate - Thumbnail generation fails on video files. 021 ==> 390529 - Import from scanner not enabled. 022 ==> 390683 - Batch processing creates 0 byte files on Fujifilm RAF RAW images with lens correction. -023 ==> +023 ==> 390688 - Show pick and color label in thumbnail list [patch]. +024 ==> diff --git a/app/items/imagethumbnaildelegate.cpp b/app/items/imagethumbnaildelegate.cpp index 0815c4e17e..c7662ab935 100644 --- a/app/items/imagethumbnaildelegate.cpp +++ b/app/items/imagethumbnaildelegate.cpp @@ -1,140 +1,141 @@ /* ============================================================ * * This file is a part of digiKam project * http://www.digikam.org * * Date : 2009-02-06 * Description : thumbnail bar for images - the delegate * * Copyright (C) 2002-2005 by Renchi Raju * Copyright (C) 2010-2011 by Marcel Wiesweg * Copyright (C) 2002-2018 by Gilles Caulier * Copyright (C) 2009-2011 by Andi Clemens * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General * Public License as published by the Free Software Foundation; * either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * ============================================================ */ #include "imagethumbnaildelegate.h" #include "imagedelegatepriv.h" // Local includes #include "digikam_debug.h" #include "applicationsettings.h" #include "imagecategorizedview.h" #include "imagedelegateoverlay.h" #include "imagemodel.h" #include "imagefiltermodel.h" #include "thumbnailloadthread.h" #include "imagethumbnaildelegatepriv.h" namespace Digikam { void ImageThumbnailDelegatePrivate::init(ImageThumbnailDelegate* const q) { QObject::connect(ApplicationSettings::instance(), SIGNAL(setupChanged()), q, SLOT(slotSetupChanged())); } ImageThumbnailDelegate::ImageThumbnailDelegate(ImageCategorizedView* parent) : ImageDelegate(*new ImageThumbnailDelegatePrivate, parent) { Q_D(ImageThumbnailDelegate); d->init(this); } ImageThumbnailDelegate::~ImageThumbnailDelegate() { } void ImageThumbnailDelegate::setFlow(QListView::Flow flow) { Q_D(ImageThumbnailDelegate); d->flow = flow; } void ImageThumbnailDelegate::setDefaultViewOptions(const QStyleOptionViewItem& option) { Q_D(ImageThumbnailDelegate); // store before calling parent class d->viewSize = option.rect; ImageDelegate::setDefaultViewOptions(option); } int ImageThumbnailDelegate::maximumSize() const { Q_D(const ImageThumbnailDelegate); return ThumbnailLoadThread::maximumThumbnailPixmapSize(true) + 2*d->radius + 2*d->margin; } int ImageThumbnailDelegate::minimumSize() const { Q_D(const ImageThumbnailDelegate); return ThumbnailSize::Small + 2*d->radius + 2*d->margin; } bool ImageThumbnailDelegate::acceptsActivation(const QPoint& pos, const QRect& visualRect, const QModelIndex& index, QRect* activationRect) const { // reuse implementation from grandparent return ItemViewImageDelegate::acceptsActivation(pos, visualRect, index, activationRect); } void ImageThumbnailDelegate::updateContentWidth() { Q_D(ImageThumbnailDelegate); int maxSize; if (d->flow == QListView::LeftToRight) { maxSize = d->viewSize.height(); } else { maxSize = d->viewSize.width(); } d->thumbSize = ThumbnailLoadThread::thumbnailToPixmapSize(true, maxSize - 2*d->radius - 2*d->margin); ImageDelegate::updateContentWidth(); } void ImageThumbnailDelegate::updateRects() { Q_D(ImageThumbnailDelegate); d->rect = QRect(0, 0, d->contentWidth + 2*d->margin, d->contentWidth + 2*d->margin); d->pixmapRect = QRect(d->margin, d->margin, d->contentWidth, d->contentWidth); const int iconSize = qBound(16, (d->contentWidth + 2*d->margin) / 8 - 2, 48); d->coordinatesRect = QRect(d->contentWidth - iconSize+2, d->pixmapRect.top(), iconSize, iconSize); + d->pickLabelRect = QRect(d->margin+2, d->rect.bottom() - d->margin - 18, 16, 16); d->drawImageFormat = ApplicationSettings::instance()->getIconShowImageFormat(); d->drawCoordinates = ApplicationSettings::instance()->getIconShowCoordinates(); if (ApplicationSettings::instance()->getIconShowRating()) { int top = d->rect.bottom() - d->margin - d->starPolygonSize.height() - 2; d->ratingRect = QRect(d->margin, top, d->contentWidth, d->starPolygonSize.height()); } if (d->flow == QListView::LeftToRight) { d->gridSize = QSize(d->rect.width() + d->spacing, d->rect.height()); } else { d->gridSize = QSize(d->rect.width(), d->rect.height() + d->spacing); } } } // namespace Digikam