58 void setSetting(
const QString& keyword,
const QString&
value);
67 QString getSetting(
const QString& keyword)
const;
75 void getFilterSettings(QStringList* imageFilter, QStringList* videoFilter, QStringList* audioFilter);
81 void getUserFilterSettings(QString* imageFilterString, QString* videoFilterString, QString* audioFilterString);
86 void setFilterSettings(
const QStringList& imageFilter,
const QStringList& videoFilter,
const QStringList& audioFilter);
93 void setUserFilterSettings(
const QStringList& imageFilter,
const QStringList& videoFilter,
const QStringList& audioFilter);
95 void setIgnoreDirectoryFilterSettings(
const QStringList& ignoreDirectoryFilter);
97 void setUserIgnoreDirectoryFilterSettings(
const QStringList& ignoreDirectoryFilters);
99 void getUserIgnoreDirectoryFilterSettings(QString* ignoreDirectoryFilterString);
101 void getIgnoreDirectoryFilterSettings(QStringList* ignoreDirectoryFilter);
107 QUuid databaseUuid();
114 QString getDatabaseEncoding()
const;
120 int getUniqueHashVersion()
const;
122 void setUniqueHashVersion(
int version);
130 QList<AlbumRootInfo> getAlbumRoots()
const;
140 const QString& specificPath,
const QString& label)
const;
146 void deleteAlbumRoot(
int rootId);
153 void migrateAlbumRoot(
int rootId,
const QString& identifier);
160 void setAlbumRootLabel(
int rootId,
const QString& newLabel);
167 void setAlbumRootPath(
int rootId,
const QString& newPath);
191 TagInfo getTagInfo(
int tagId)
const;
203 QList<AlbumShortInfo> getAlbumShortInfos()
const;
209 QList<TagShortInfo> getTagShortInfos()
const;
222 int addAlbum(
int albumRootId,
const QString& relativePath,
223 const QString& caption,
224 const QDate& date,
const QString& collection)
const;
235 int getAlbumForPath(
int albumRootId,
const QString& relativePath,
bool create =
true)
const;
243 QList<int> getAlbumAndSubalbumsForPath(
int albumRootId,
const QString& relativePath)
const;
249 QList<int> getAlbumsOnAlbumRoot(
int albumRootId)
const;
256 void deleteAlbum(
int albumID);
261 void makeStaleAlbum(
int albumID);
267 void deleteStaleAlbums();
274 bool copyAlbumProperties(
int srcAlbumID,
int dstAlbumID)
const;
279 void renameAlbum(
int albumID,
int newAlbumRootId,
const QString& newRelativePath);
286 void setAlbumCaption(
int albumID,
const QString& caption);
293 void setAlbumCategory(
int albumID,
const QString& category);
300 void setAlbumDate(
int albumID,
const QDate& date);
307 void setAlbumModificationDate(
int albumID,
const QDateTime& modificationDate);
314 void setAlbumIcon(
int albumID, qlonglong iconID);
321 int getAlbumRootId(
int albumID)
const;
329 QString getAlbumRelativePath(
int albumID)
const;
336 QDate getAlbumLowestDate(
int albumID)
const;
343 QDate getAlbumHighestDate(
int albumID)
const;
350 QDate getAlbumAverageDate(
int albumID)
const;
357 QPair<int, int> getNumberOfAllItemsAndAlbums(
int albumID)
const;
363 int getNumberOfItemsInAlbum(
int albumID)
const;
369 QDateTime getAlbumModificationDate(
int albumID)
const;
375 QMap<QString, QDateTime> getAlbumModificationMap(
int albumRootId)
const;
381 QHash<int, int> getNumberOfImagesInAlbums()
const;
395 int addTag(
int parentTagID,
const QString& name,
396 const QString& iconKDE, qlonglong iconID)
const;
403 QList<int> getRecentlyAssignedTags()
const;
410 void deleteTag(
int tagID);
417 void setTagName(
int tagID,
const QString& name);
427 void setTagIcon(
int tagID,
const QString& iconKDE, qlonglong iconID);
435 void setTagParentID(
int tagID,
int newParentTagID);
440 QList<TagProperty> getTagProperties()
const;
445 QList<TagProperty> getTagProperties(
int tagID)
const;
450 QList<TagProperty> getTagProperties(
const QString& property)
const;
457 void addTagProperty(
int tagId,
const QString& property,
const QString&
value);
466 void removeTagProperties(
int tagId,
const QString& property = QString(),
const QString&
value = QString());
472 QList<int> getTagsWithProperty(
const QString& property)
const;
492 const QString& name,
const QString& query);
498 void deleteSearch(
int searchID);
513 QString getSearchQuery(
int searchId)
const;
520 qlonglong addItem(
int albumID,
const QString& name,
523 const QDateTime& modificationDate,
525 const QString& uniqueHash)
const;
532 void deleteItem(
int albumID,
const QString& file);
539 void deleteItem(qlonglong imageId);
545 void deleteObsoleteItem(qlonglong imageId);
557 void removeItemsFromAlbum(
int albumID,
const QList<qlonglong>& ids_forInformation = QList<qlonglong>());
567 void removeItems(
const QList<qlonglong>& itemIDs,
const QList<int>& albumIDs = QList<int>());
577 void removeItemsPermanently(
const QList<qlonglong>& itemIDs,
const QList<int>& albumIDs = QList<int>());
583 void deleteRemovedItems();
593 qlonglong getImageId(
int albumID,
const QString& name)
const;
602 QList<qlonglong> getImageIds(
int albumID,
const QString& name,
631 qlonglong findImageId(
int albumID,
const QString& name,
635 const QString& uniqueHash)
const;
654 QStringList getItemNamesInAlbum(
int albumID,
bool recursive =
false)
const;
659 QList<qlonglong> getAllItems()
const;
666 QHash<qlonglong, QPair<int, int> > getAllItemsWithAlbum()
const;
675 qlonglong getItemFromAlbum(
int albumID,
const QString& fileName)
const;
681 QList<ItemScanInfo> getItemScanInfos(
int albumID)
const;
691 QStringList getItemURLsInAlbum(
int albumID, ItemSortOrder order = NoItemSorting)
const;
698 QList<qlonglong> getItemIDsInAlbum(
int albumID)
const;
707 QMap<qlonglong, QString> getItemIDsAndURLsInAlbum(
int albumID)
const;
717 QStringList getItemURLsInTag(
int tagID,
bool recursive =
false)
const;
725 QList<qlonglong> getItemIDsInTag(
int tagID,
bool recursive =
false)
const;
730 QVariantList getAllCreationDates()
const;
735 QList<qlonglong> getObsoleteItemIds()
const;
744 int getItemAlbum(qlonglong imageID)
const;
751 QString getItemName(qlonglong imageID)
const;
761 ItemShortInfo getItemShortInfo(
int albumRootId,
const QString& relativePath,
762 const QString& name)
const;
774 void updateItem(qlonglong imageID,
776 const QDateTime& modificationDate,
778 const QString& uniqueHash);
791 void setItemAlbum(qlonglong imageID, qlonglong albumId);
796 void setItemManualOrder(qlonglong imageID, qlonglong
value);
801 void setItemModificationDate(qlonglong imageID,
const QDateTime& modificationDate);
807 void renameItem(qlonglong imageID,
const QString& newName);
821 QVariantList getImagesFields(qlonglong imageID,
822 DatabaseFields::Images imagesFields)
const;
841 void addItemInformation(qlonglong imageID,
const QVariantList& infos,
842 DatabaseFields::ItemInformation fields = DatabaseFields::ItemInformationAll);
850 void changeItemInformation(qlonglong imageID,
const QVariantList& infos,
851 DatabaseFields::ItemInformation fields = DatabaseFields::ItemInformationAll);
856 QVariantList getItemInformation(qlonglong imageID,
857 DatabaseFields::ItemInformation infoFields
858 = DatabaseFields::ItemInformationAll)
const;
884 void addImageMetadata(qlonglong imageID,
const QVariantList& infos,
885 DatabaseFields::ImageMetadata fields = DatabaseFields::ImageMetadataAll);
892 void changeImageMetadata(qlonglong imageID,
const QVariantList& infos,
893 DatabaseFields::ImageMetadata fields = DatabaseFields::ImageMetadataAll);
898 QVariantList getImageMetadata(qlonglong imageID,
899 DatabaseFields::ImageMetadata metadataFields = DatabaseFields::ImageMetadataAll)
const;
915 void addVideoMetadata(qlonglong imageID,
const QVariantList& infos,
916 DatabaseFields::VideoMetadata fields = DatabaseFields::VideoMetadataAll);
923 void changeVideoMetadata(qlonglong imageID,
const QVariantList& infos,
924 DatabaseFields::VideoMetadata fields = DatabaseFields::VideoMetadataAll);
929 QVariantList getVideoMetadata(qlonglong imageID,
930 DatabaseFields::VideoMetadata metadataFields = DatabaseFields::VideoMetadataAll)
const;
949 void addItemPosition(qlonglong imageID,
const QVariantList& infos,
950 DatabaseFields::ItemPositions fields = DatabaseFields::ItemPositionsAll);
957 void changeItemPosition(qlonglong imageID,
const QVariantList& infos,
958 DatabaseFields::ItemPositions fields = DatabaseFields::ItemPositionsAll);
963 QVariantList getItemPosition(qlonglong imageID,
964 DatabaseFields::ItemPositions positionFields = DatabaseFields::ItemPositionsAll)
const;
966 QVariantList getItemPositions(
const QList<qlonglong>& imageIDs, DatabaseFields::ItemPositions fields)
const;
971 void removeItemPosition(qlonglong imageid);
976 void removeItemPositionAltitude(qlonglong imageid);
981 QList<CommentInfo> getItemComments(qlonglong imageID)
const;
999 const QString& language = QString(),
const QString& author = QString(),
1000 const QDateTime& date = QDateTime())
const;
1011 void changeImageComment(
int commentId, qlonglong imageID,
const QVariantList& infos,
1012 DatabaseFields::ItemComments fields = DatabaseFields::ItemCommentsAll);
1017 void removeImageComment(
int commentId, qlonglong imageID);
1022 void removeAllImageComments(qlonglong imageID);
1027 QString getImageProperty(qlonglong imageID,
const QString& property)
const;
1032 void setImageProperty(qlonglong imageID,
const QString& property,
const QString&
value);
1033 void removeImageProperty(qlonglong imageID,
const QString& property);
1034 void removeImagePropertyByName(
const QString& property);
1035 void removeAllImageProperties(qlonglong imageID);
1037 QStringList getAllImagePropertiesByName(
const QString& property)
const;
1043 QList<CopyrightInfo> getItemCopyright(qlonglong imageID,
const QString& property = QString())
const;
1049 PropertyNoConstraint
1055 void setItemCopyrightProperty(qlonglong imageID,
const QString& property,
1056 const QString&
value,
const QString& extraValue = QString(),
1057 CopyrightPropertyUnique uniqueness = PropertyUnique);
1065 void removeItemCopyrightProperties(qlonglong imageID,
const QString& property = QString(),
1066 const QString& extraValue = QString(),
1067 const QString&
value = QString() );
1072 void removeAllItemCopyrightProperties(qlonglong imageID);
1077 QList<qlonglong> findByNameAndCreationDate(
const QString& fileName,
const QDateTime& creationDate)
const;
1087 QString getImageUuid(qlonglong imageId)
const;
1092 QList<qlonglong> getItemsForUuid(
const QString& uuid)
const;
1097 void setItemHistory(qlonglong imageId,
const QString& history);
1098 void setImageUuid(qlonglong imageId,
const QString& uuid);
1104 bool hasImageHistory(qlonglong imageId)
const;
1115 void addImageRelations(
const QList<qlonglong>& subjectIds,
const QList<qlonglong>& objectIds,
1133 QList<qlonglong> getImagesRelatedFrom(qlonglong subjectId,
1135 bool hasImagesRelatedFrom(qlonglong subjectId,
1137 QVector<QList<qlonglong> > getImagesRelatedFrom(
const QList<qlonglong>& subjectIds,
1144 QList<qlonglong> getImagesRelatingTo(qlonglong objectId,
1146 bool hasImagesRelatingTo(qlonglong objectId,
1148 QVector<QList<qlonglong> > getImagesRelatingTo(
const QList<qlonglong>& objectIds,
1157 QList<QPair<qlonglong, qlonglong> > getRelationCloud(qlonglong imageId,
1159 = DatabaseRelation::UndefinedType)
const;
1165 QList<qlonglong> getOneRelatedImageEach(
const QList<qlonglong>& ids,
1179 QStringList getDirtyOrMissingFaceImageUrls()
const;
1189 QList<ItemScanInfo> getIdenticalFiles(qlonglong
id)
const;
1190 QList<ItemScanInfo> getIdenticalFiles(
const QString& uniqueHash, qlonglong fileSize, qlonglong sourceId = -1)
const;
1196 QStringList getItemsURLsWithTag(
int tagId)
const;
1201 qlonglong getFirstItemWithFaceTag(
int tagId)
const;
1211 void addItemTag(qlonglong imageID,
int tagID,
bool newTag =
false);
1219 void addItemTag(
int albumID,
const QString& name,
int tagID);
1225 void addTagsToItems(
const QList<qlonglong>& imageIDs,
const QList<int>& tagIDs);
1232 void removeItemTag(qlonglong imageID,
int tagID);
1239 void removeItemAllTags(qlonglong imageID,
const QList<int>& currentTagIds);
1245 void removeTagsFromItems(
const QList<qlonglong>& imageIDs,
const QList<int>& tagIDs);
1252 QStringList getItemTagNames(qlonglong imageID)
const;
1259 QList<int> getItemTagIDs(qlonglong imageID)
const;
1265 QVector<QList<int> > getItemsTagIDs(
const QList<qlonglong>& imageIds)
const;
1271 QList<ImageTagProperty> getImageTagProperties(qlonglong imageId,
int tagId = -1)
const;
1276 QList<int> getTagIdsWithProperties(qlonglong imageId)
const;
1283 void addImageTagProperty(qlonglong imageId,
int tagId,
const QString& property,
const QString&
value);
1294 void removeImageTagProperties(qlonglong imageId,
int tagId = -1,
const QString& property = QString(),
1295 const QString&
value = QString());
1303 bool hasTags(
const QList<qlonglong>& imageIDList)
const;
1311 QList<int> getItemCommonTagIDs(
const QList<qlonglong>& imageIDList)
const;
1317 QHash<int, int> getNumberOfImagesInTags()
const;
1323 QHash<int, int> getNumberOfImagesInTagProperties(
const QString& property)
const;
1328 int getNumberOfImagesInTagProperties(
int tagId,
const QString& property)
const;
1333 QList<qlonglong> getImagesWithImageTagProperty(
int tagId,
const QString& property)
const;
1338 QList<qlonglong> getImagesWithProperty(
const QString& property)
const;
1344 QMap<QString, int> getFormatStatistics()
const;
1350 QStringList getListFromImageMetadata(DatabaseFields::ImageMetadata field)
const;
1362 void moveItem(
int srcAlbumID,
const QString& srcName,
1363 int dstAlbumID,
const QString& dstName);
1375 qlonglong copyItem(
int srcAlbumID,
const QString& srcName,
1376 int dstAlbumID,
const QString& dstName);
1381 void copyImageAttributes(qlonglong srcId, qlonglong destId);
1386 void copyImageProperties(qlonglong srcId, qlonglong dstId);
1391 void copyImageTags(qlonglong srcId, qlonglong dstId);
1399 int findInDownloadHistory(
const QString& identifier,
const QString& name,
1400 qlonglong fileSize,
const QDateTime& date)
const;
1406 int addToDownloadHistory(
const QString& identifier,
const QString& name,
1407 qlonglong fileSize,
const QDateTime& date)
const;
1409 QList<QVariant> getImageIdsFromArea(qreal lat1, qreal lat2, qreal lng1, qreal lng2,
1410 int sortMode,
const QString& sortBy)
const;
1417 bool integrityCheck()
const;
1426 static QStringList imagesFieldList(DatabaseFields::Images fields);
1427 static QStringList imageInformationFieldList(DatabaseFields::ItemInformation fields);
1428 static QStringList videoMetadataFieldList(DatabaseFields::VideoMetadata fields);
1429 static QStringList imageMetadataFieldList(DatabaseFields::ImageMetadata fields);
1430 static QStringList imagePositionsFieldList(DatabaseFields::ItemPositions fields);
1431 static QStringList imageCommentsFieldList(DatabaseFields::ItemComments fields);
1432 static void addBoundValuePlaceholders(QString& query,
int count);
1450 QList<qlonglong> getRelatedImages(qlonglong
id,
bool fromOrTo,
1452 QVector<QList<qlonglong> > getRelatedImages(QList<qlonglong> ids,
bool fromOrTo,
1461 void readSettings();
1462 void writeSettings();
1467 Private*
const d =
nullptr;