diff --git a/NEWS b/NEWS index 12c6a87a30..c5e96b9642 100644 --- a/NEWS +++ b/NEWS @@ -1,124 +1,125 @@ digiKam 6.1.0 - Release date: 2019-03-10 ***************************************************************************************************** NEW FEATURES: General : New plugins interface for digiKam and Showfoto named dplugins. General : All export tools become generic plugins and are shared with Showfoto. General : Update internal libpgf to last 07193. General : Add compatiblity with OpenCV version 4. General : MacOS and AppImage bundles are now published with Qt 5.11.3. General : Add new optional configuration option to compile with Faces Engine Neural Network. BQM : Add new advanced settings in resize tool. BQM : All Batch Queue Manager tools become Bqm plugins. Editor : All Image Editor tools become Editor plugins and are shared with Showfoto. Item View : Add sort items by modification date. ***************************************************************************************************** BUGFIXES: 001 ==> 279216 - "Resize image" feature is missing some useful options [patch]. 002 ==> 368779 - Missing translations to Plugin Categories columns in setup page. 003 ==> 165852 - Google Youtube video uploader. 004 ==> 404578 - Links broken on downloadpage for 6.0.0. 005 ==> 402069 - FAQ link on Support page is broken. 006 ==> 404503 - There is a typo in support section of website. 007 ==> 404621 - I can not import the album Google Photo. 008 ==> 404642 - digiKam flatpak: Please include mysql driver (for using an external mysql db). 009 ==> 404690 - There is an unwanted bar in the left screen edge in full screen view. 010 ==> 404736 - Merging tags keeps popping up confirmation dialogs every second. 011 ==> 404737 - digiKam does not compile with opencv 3.4.1. 012 ==> 404735 - F2 should edit tag name when tag name has focus. 013 ==> 404748 - Default Album rename dialog should be larger (or save its size when changed). 014 ==> 304811 - Offer a "stretch histogram" functionality to automatically adjust brightness & gamma. 015 ==> 374464 - Can start print wizzard. 016 ==> 316687 - ImageMagick-6.8.3.9 could not be found. 017 ==> 305137 - wish for integrated(?) clip-generator. 018 ==> 404821 - Presentation offset from full screen when OpenGL transitions selected. 019 ==> 404894 - 6.0.0 x86-64 appimage startup complains about mssing ']' (startup bash script being called). 020 ==> 368262 - Google services tool does not use kaccounts. 021 ==> 376913 - Can't create a new album in picasa/googlephoto. 022 ==> 404896 - Vertical video are displayed horizontally. 023 ==> 404859 - Using Batch Queue Manager to make a JPG copy of the images on completion the "arw" images are no longer visible in the originating album. 024 ==> 404893 - Digikam::DigikamApp::slotSolidDeviceChanged: slotSolidDeviceChanged: messages referring to directory that digikam should not care about. 025 ==> 264296 - Lack of right-click delete of points in Curves [patch]. 026 ==> 404954 - Places, Devices, and Removable Devices no longer show in "Select Target Location". 027 ==> 404962 - List of subfolders: incorrect encoding (spaces -> %20, accents). 028 ==> 402724 - digiKam Settings/Configuration: missing section "Plugins" in Windows/6.0.0B3. 029 ==> 404987 - Ability to select which import/export options are included in menu. 030 ==> 404999 - Inconsistency in facetag font size. 031 ==> 244259 - Last image is displayed twice when Advanced Slideshow with KenBurns effect is run more than once. 032 ==> 405043 - Add volume control to video playback. 033 ==> 401253 - Face detect crashes every time. 034 ==> 405042 - Ability to loop video playback. 035 ==> 405138 - Can not disable webservice plugin. 036 ==> 405137 - Original items visible in Thumbnails view. 037 ==> 400606 - Dead space above thumbnails. 038 ==> 380434 - 5.6.0-pre pkg does not detect filesystem changes. 039 ==> 405250 - Menus gone missing. 040 ==> 388198 - Menu Help -> What's this is not used. 041 ==> 392570 - Missing Option to display complete filename. 042 ==> 375474 - Renaming People Tag Causes Unpredictable Sort Order In People Menu. 043 ==> 398868 - Video upside down in Preview (Thumbnail ok). 044 ==> 380065 - "Open with" menu entry missing [patch]. 045 ==> 405258 - Provide an OpenWith... function to get a specific ImageEditor. 046 ==> 402807 - Progress manager doesn't seem to be involved in the fingerprint scanning (v6.0 beta 3). 047 ==> 278935 - Please make XMP Sidecar filename configurable [patch]. 048 ==> 405231 - Monitor Color Profile is not applied in "Presentation". 049 ==> 405347 - Selecting by aspect ratio: abs function in sqlite lowercase, in mariadb uppercase. 050 ==> 405327 - Position and size of faces display depends on configuration setting. 051 ==> 405234 - Refresh does no work. 052 ==> 403649 - Filesystem changes are not visible in album view [patch]. 053 ==> 400768 - Many different trash cans hard & slow to use. 054 ==> 296864 - SETUP : Create interface for changing physical location or path of album. 055 ==> 397189 - digikam is crashing when adding this photo. 056 ==> 405378 - Missing libz.dll on launch. 057 ==> 401306 - digikam-git r41326 doesn't compile with OpenCV 4 058 ==> 379049 - IPTC and XMP metadata not always read when adding a new album. 059 ==> 404939 - AppImage package: integration with the OS with AppImageLauncher. 060 ==> 405514 - Configure Shortcuts : Shortcuts file contains space in assigned_tags. 061 ==> 405149 - The "File Name" in the thumbnail view is not visible. 062 ==> 405512 - Meta Key Not Useful For Key Modifier In Windows. 063 ==> 405513 - Configure Shortcuts : Defaults Button Does Not Apply To New Schemes. 064 ==> 388334 - Auto Filter In People Tag List Confused With Shortcut Keys. 065 ==> 405518 - digiKam can not be added to the Gnome Dash as favorite. 066 ==> 405342 - Increase slideshow caption font size and keyboard shortcut or button to display/hide it. 067 ==> 405636 - When importing picture not all people tags are present. 068 ==> 379916 - Some people tags are missing. 069 ==> 386967 - digiKam with Adobe Bridge keywords under Windows. 070 ==> 402433 - Google Maps Doesn't Zoom With Mouse Wheel. 071 ==> 396920 - EXIF info not written when files from some cameras (Pentax K3) are edited and saved. 072 ==> 375468 - Cannot turn on Menubar. 073 ==> 387253 - No more menu bar in the Gnome desktop environment. 074 ==> 397405 - Large empty space in Digikams main icon view since ~20180707 appimage. 075 ==> 399237 - Thumbnails view shows an empty dock for thumbnails. 076 ==> 393935 - Segmentation fault during face detection. 077 ==> 388533 - UpdateSchemaFromV7ToV9 fails. 078 ==> 281493 - digiKam fails to install on Windows XP. 079 ==> 405537 - Strange behavior with tag in attached file. 080 ==> 405233 - digikam: symbol lookup error: /tmp/.mount_digika5N9rGH/usr/lib/libQt5XcbQpa.so.5: undefined symbol: FT_Property_Set. 081 ==> 404853 - digikam-6.0.0 faces engine fails to compile on PowerPC. 082 ==> 405625 - digiKam 6.0.0 faces engine fails to compile on PowerPC with AltiVec enabled. 083 ==> 372340 - Tagged face areas on portait (vertical) oriented images are mispositioned. 084 ==> 405743 - Customise Tool tab in editor. 085 ==> 376014 - Moving grouped photos from one folder to another breaks the group. 086 ==> 377782 - Group is lost when moved to another album. 087 ==> 385147 - Moving grouped images into another album removes groups. 088 ==> 342017 - Reverse Geocoding doesn't work. 089 ==> 405174 - Right-click advice menu. Open with another program. 090 ==> 399285 - Would it be possible to drop kio for a better 'open with' functionality across all platforms? 091 ==> 383079 - Open the photo in GIMP under windows. 092 ==> 374356 - "Show item in file explorer" as well as "open with". 093 ==> 208201 - Icons appears and disappears. 094 ==> 202955 - thumbnails in album view are flickering with high frequency. 095 ==> 208201 - Icons appears and disappears. 096 ==> 396933 - Tooltips of thumbnails and albums not readable in light designs. 097 ==> 393777 - Item Tool Tips are unreadable in Windows 10 (white on yellow). 098 ==> 240237 - Not possible to rotate the image. 099 ==> 366446 - Creating new albums fails due to invalid path name. 100 ==> 369235 - Menu bar is not translated. 101 ==> 403132 - Lazy Update not working (or: Stop when I say so). 102 ==> 404797 - digikam-6.0.0-x86-64.appimage: stack trace shortly after startup. 103 ==> 405789 - Sidebar widths revert to their defaults after switching back from full-screen view. -104 ==> +104 ==> 405813 - Tab-View do not show Rating information. +105 ==> diff --git a/core/app/views/tableview/tableview_column_digikam.cpp b/core/app/views/tableview/tableview_column_digikam.cpp index f71850bf9e..8561ed16a8 100644 --- a/core/app/views/tableview/tableview_column_digikam.cpp +++ b/core/app/views/tableview/tableview_column_digikam.cpp @@ -1,429 +1,429 @@ /* ============================================================ * * This file is a part of digiKam project * https://www.digikam.org * * Date : 2013-02-28 * Description : Table view column helpers: Digikam properties * * Copyright (C) 2013 by Michael G. Hansen * * 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 "tableview_column_digikam.h" // Qt includes #include // KDE includes #include // Local includes #include "digikam_debug.h" #include "coredbfields.h" #include "digikam_globals.h" #include "iteminfo.h" namespace Digikam { namespace TableViewColumns { ColumnDigikamProperties::ColumnDigikamProperties(TableViewShared* const tableViewShared, const TableViewColumnConfiguration& pConfiguration, const SubColumn pSubColumn, QObject* const parent) : TableViewColumn(tableViewShared, pConfiguration, parent), subColumn(pSubColumn) { } ColumnDigikamProperties::~ColumnDigikamProperties() { } QStringList ColumnDigikamProperties::getSubColumns() { QStringList columns; columns << QLatin1String("digikam-rating") << QLatin1String("digikam-picklabel") << QLatin1String("digikam-colorlabel") << QLatin1String("digikam-title") << QLatin1String("digikam-caption"); return columns; } TableViewColumnDescription ColumnDigikamProperties::getDescription() { TableViewColumnDescription description(QLatin1String("digikam-properties"), i18n("digiKam properties")); description.setIcon(QLatin1String("edit-text-frame-update")); description.addSubColumn(TableViewColumnDescription(QLatin1String("digikam-rating"), i18n("Rating")).setIcon(QLatin1String("draw-star"))); description.addSubColumn(TableViewColumnDescription(QLatin1String("digikam-picklabel"), i18n("Pick label")).setIcon(QLatin1String("flag"))); description.addSubColumn(TableViewColumnDescription(QLatin1String("digikam-colorlabel"), i18n("Color label"))); /// @todo This column will show the 'default' title. Add a configuration dialog to choose different languages. description.addSubColumn(TableViewColumnDescription(QLatin1String("digikam-title"), i18n("Title"))); /// @todo This column will show the 'default' caption. Add a configuration dialog to choose different languages. description.addSubColumn(TableViewColumnDescription(QLatin1String("digikam-caption"), i18n("Caption"))); return description; } QString ColumnDigikamProperties::getTitle() const { switch (subColumn) { case SubColumnRating: return i18n("Rating"); case SubColumnPickLabel: return i18n("Pick label"); case SubColumnColorLabel: return i18n("Color label"); case SubColumnTitle: return i18n("Title"); case SubColumnCaption: return i18n("Caption"); } return QString(); } TableViewColumn::ColumnFlags ColumnDigikamProperties::getColumnFlags() const { ColumnFlags flags(ColumnNoFlags); if ((subColumn == SubColumnRating) || (subColumn == SubColumnPickLabel) || (subColumn == SubColumnColorLabel)) { flags |= ColumnCustomSorting; } return flags; } QVariant ColumnDigikamProperties::data(TableViewModel::Item* const item, const int role) const { if ( (role != Qt::DisplayRole) && (role != Qt::TextAlignmentRole) && (role != Qt::ForegroundRole ) ) { return QVariant(); } if (role == Qt::TextAlignmentRole) { switch (subColumn) { case SubColumnRating: - return QVariant(Qt::Alignment(Qt::AlignRight | Qt::AlignVCenter)); + return QVariant(Qt::Alignment(Qt::AlignCenter)); default: return QVariant(); } } if (role == Qt::ForegroundRole) { switch (subColumn) { case SubColumnPickLabel: { const ItemInfo info = s->tableViewModel->infoFromItem(item); const PickLabel pickLabel = PickLabel(info.pickLabel()); QColor labelColor; switch (pickLabel) { case NoPickLabel: labelColor = Qt::darkGray; break; case RejectedLabel: labelColor = Qt::red; break; case PendingLabel: // yellow is too hard to read labelColor = Qt::darkYellow; break; case AcceptedLabel: // green is too hard to read labelColor = Qt::darkGreen; break; default: break; } QBrush labelBrush(labelColor); return QVariant::fromValue(labelBrush); } case SubColumnColorLabel: { const ItemInfo info = s->tableViewModel->infoFromItem(item); const ColorLabel colorLabel = ColorLabel(info.colorLabel()); QColor labelColor; switch (colorLabel) { case NoColorLabel: labelColor = Qt::lightGray; break; case RedLabel: labelColor = Qt::red; break; case OrangeLabel: labelColor = QColor(0xff, 0x80, 0x00); break; case YellowLabel: labelColor = Qt::darkYellow; break; case GreenLabel: labelColor = Qt::darkGreen; break; case BlueLabel: labelColor = Qt::darkBlue; break; case MagentaLabel: labelColor = Qt::magenta; break; case GrayLabel: labelColor = Qt::darkGray; break; case BlackLabel: labelColor = Qt::black; break; case WhiteLabel: labelColor = Qt::white; break; default: break; } QBrush labelBrush(labelColor); return QVariant::fromValue(labelBrush); } default: return QVariant(); } } const ItemInfo info = s->tableViewModel->infoFromItem(item); /// @todo Also display the pick label icon? /// @todo Make display of text/icon configurable. switch (subColumn) { case SubColumnRating: { const int itemRating = info.rating(); if (itemRating <= 0) { // no rating return QString(); } return QLocale().toString(itemRating); } case SubColumnPickLabel: { const PickLabel pickLabel = PickLabel(info.pickLabel()); QString labelString; switch (pickLabel) { case NoPickLabel: labelString = i18n("None"); break; case RejectedLabel: labelString = i18n("Rejected"); break; case PendingLabel: labelString = i18n("Pending"); break; case AcceptedLabel: labelString = i18n("Accepted"); break; default: break; } return labelString; } case SubColumnColorLabel: { const ColorLabel colorLabel = ColorLabel(info.colorLabel()); QString labelString; switch (colorLabel) { case NoColorLabel: labelString = i18n("None"); break; case RedLabel: labelString = i18n("Red"); break; case OrangeLabel: labelString = i18n("Orange"); break; case YellowLabel: labelString = i18n("Yellow"); break; case GreenLabel: labelString = i18n("Green"); break; case BlueLabel: labelString = i18n("Blue"); break; case MagentaLabel: labelString = i18n("Magenta"); break; case GrayLabel: labelString = i18n("Gray"); break; case BlackLabel: labelString = i18n("Black"); break; case WhiteLabel: labelString = i18n("White"); break; default: break; } return labelString; } case SubColumnTitle: { const QString title = info.title(); return title; } case SubColumnCaption: { const QString caption = info.comment(); return caption; } } return QVariant(); } TableViewColumn::ColumnCompareResult ColumnDigikamProperties::compare(TableViewModel::Item* const itemA, TableViewModel::Item* const itemB) const { const ItemInfo infoA = s->tableViewModel->infoFromItem(itemA); const ItemInfo infoB = s->tableViewModel->infoFromItem(itemB); switch (subColumn) { case SubColumnRating: { /// @todo Handle un-rated vs rated items differently? const int ratingA = infoA.rating(); const int ratingB = infoB.rating(); return compareHelper(ratingA, ratingB); } case SubColumnPickLabel: { /// @todo Handle un-rated vs rated items differently? const int pickLabelA = infoA.pickLabel(); const int pickLabelB = infoB.pickLabel(); return compareHelper(pickLabelA, pickLabelB); } case SubColumnColorLabel: { /// @todo Handle un-rated vs rated items differently? const int colorLabelA = infoA.colorLabel(); const int colorLabelB = infoB.colorLabel(); return compareHelper(colorLabelA, colorLabelB); } default: { qCWarning(DIGIKAM_GENERAL_LOG) << "item: unimplemented comparison, subColumn=" << subColumn; return CmpEqual; } } } bool Digikam::TableViewColumns::ColumnDigikamProperties::columnAffectedByChangeset(const Digikam::ImageChangeset& imageChangeset) const { switch (subColumn) { case SubColumnTitle: case SubColumnCaption: return true; /// @todo These are not the right flags for these columns // return imageChangeset.changes() & DatabaseFields::ItemCommentsAll; case SubColumnRating: return imageChangeset.changes() & DatabaseFields::Rating; case SubColumnPickLabel: return imageChangeset.changes() & DatabaseFields::PickLabel; case SubColumnColorLabel: return imageChangeset.changes() & DatabaseFields::ColorLabel; } return false; } } // namespace TableViewColumns } // namespace Digikam