Class TCatalog

Unit

Declaration

type TCatalog = class(TObject)

Description

Hierarchy

  • TObject
  • TCatalog

Overview

Fields

Public internal const cLiteLimit = 2500;
Public internal const cImageBasketPrefix = 'vc';
Public internal const cSharesBasketPrefix = 'shrs';
Public internal const cSharedCollectionMarker = 'share';
Public internal const cSyncBatchSize = 10000;
Public internal const cThumbBatchSize = 10000;
Public internal const cUpdateSignatureBatchSize = 10000;
Public internal const cCompactAfterRows = 2000000;

Methods

Public constructor Create; reintroduce; virtual;
Public constructor CreateRegisterOwnedByThread; virtual;
Public procedure AfterConstruction; override;
Public procedure BeforeDestruction; override;
Public class procedure LoadApplicationSettingsFromOptions(AOptions: TOptions); virtual;
Public procedure InitGUIDs;
Public function TotalRowsAffected: Int64;
Public function Login (const ADBName: WideString = ''): Boolean;
Public function CurrentUserCanSeeFullCatalog: Boolean;
Public function IsSQLite: Boolean;
Public function IsPostgreSQL: Boolean;
Public function IsRestSQL: Boolean;
Public function IsSQLServer: Boolean;
Public function IsMySQL: Boolean;
Public function FullColumnList (const ATablePrefix: WideString = ''): WideString;
Public function IsValidPathString (const APathString: WideString): Boolean;
Public procedure CheckLiteRestriction(const ANumberToAdd: Integer);
Public function IsDefaultCatalogDir: Boolean;
Public function NewCatalog (var ADBName: WideString): Boolean;
Public procedure CloseCatalogDatabase;
Public function CatalogDatabaseIsOpen: Boolean;
Public procedure CatalogDatabaseFileName (const AFileName: WideString);
Public procedure CatalogAlterDatabase;
Public function CatalogFileName: WideString;
Public function DBVersion: Integer;
Public procedure DBExecuteSQL (const ASql: WideString);
Public function ChangePassword (AUser: TidUser; const ANewPassword: WideString): Boolean;
Public function CreateSqlDatabase (var ADBServer: WideString; var ADBPort: Integer; var ADBName: WideString): Boolean;
Public procedure ExportToFile(const AFileName: WideString);
Public procedure ImportFromFile(const AFileName: WideString);
Public function LicenseValidityPeriodString(const APeriodMins: Double): AnsiString;
Public function LicenseValidityPeriodStringToDateTime( AStr: String): TDateTime;
Public function LicenseValidityPeriodStringIsValid(const AStr: String): Boolean;
Public procedure Locked_HandleLicensePoolCheck(Sender: TObject; ADataset: TDBXOMClientDataSet; AData: TidElement);
Public function HandleLicensePoolCheck(ALicRes: TxomResource; const ALicType: TLicenseType; const AAllowTrial: Boolean; var AErrorLine1: WideString; var AErrorLine2: WideString): Boolean;
Public function AcquireLicense(ALicRes: TxomResource; const ALicType: TLicenseType; const AAllowTrial: Boolean): Boolean;
Public function RefetchLicenseGUID(ALicRes: TxomResource): Boolean;
Public function RenewLicenseValidityPeriod(ALicRes: TxomResource): Boolean;
Public function ReleaseLicense(ALicRes: TxomResource): Boolean;
Public function StoreLicense(const ALic: TLicenseInfo): Boolean;
Public function FindLicenseGUID(const ALic: TLicenseInfo; var AGUID: String): Boolean;
Public function DeleteLicense(const ALic: TLicenseInfo): Boolean;
Public function DeleteExpiredLicenses: Boolean;
Public function LicenseExists(const ALic: TLicenseInfo): Boolean;
Public procedure LoadVocabularyEvent(Sender: TObject; const AMetaProperty: WideString; AStrings: TxomStrings);
Public procedure SaveVocabularyEvent(Sender: TObject; const AMetaProperty: WideString; AStrings: TxomStrings);
Public function BackupDataToFile (const AFileName: WideString; AWithVerify: Boolean; var AVerifyResult: Boolean): Boolean;
Public function RestoreDataFromFile (const AFileName: WideString): Boolean;
Public function HandleLogin (const AServerName: WideString; const AServerPort: Integer; const ADatabase, AUserName, APassword: WideString; var ALastError: WideString): Boolean;
Public function CheckIntegrity: Boolean;
Public function EncodePassword (const APassword: WideString): WideString;
Public function EnumUserGroup (const AGUID: String; AResult: TUserGroup): Boolean;
Public function EnumLoginDetails (const AUserName, AEncodedPassword: WideString; AResult: TidUser; var ALastError: WideString): Boolean;
Public function EnumUser (const AGUID: String; AResult: TidUser): Boolean;
Public function EnumUserByUserName (const AUserName: WideString; AResult: TidUser): Boolean;
Public function EnumUserByWebAddress(const AWebAddress: WideString; AResult: TidUser): Boolean;
Public function StoreUserGroup (AGroup: TUserGroup): Boolean;
Public function StoreUser (AUser: TidUser): Boolean;
Public function DeleteUserGroupGUID (const AUserGroupGUID: String): Boolean;
Public function DeleteUserGUID (const AUserGUID: String): Boolean;
Public procedure EnumAllUserGroups (AGroups: TUserGroups);
Public procedure EnumUsersForUserGroup (const AUserGroupGUID: String; AUsers: TidUsers);
Public procedure EnumAllUsers (AUsers: TidUsers);
Public function UserGroupNameExists (AUserGroupName: WideString): Boolean;
Public function UserNameExists (const AUserName: WideString): Boolean;
Public function IsRestrictedCatalogUser(AUser: TidUser): Boolean;
Public function AuthorizationObjectForUser(AUser: TidUser): TAuthorizationObject;
Public function SortOrderString (ASort: TCollectionSort; ASortOrder: TSortType): WideString;
Public function BuildQuickItemsList (AImageList: TList; AResult: TCatalogItems; AStoreInTempList: Boolean = True; AIncludeGroupItems: TIncludeGroupItems = []; AIncludeVersionItems: TIncludeVersionItems = []; AShowProgress: Boolean = True; AOnlyMarked: Boolean = True; AAlwaysAcceptExplorerItems: Boolean = False): Boolean;
Public function BuildQuickItemsListForItem (AItem: TCatalogItem; AResult: TCatalogItems; AStoreInTempList: Boolean = True; AIncludeGroupItems: TIncludeGroupItems = []; AIncludeVersionItems: TIncludeVersionItems = []; AShowProgress: Boolean = True): Boolean;
Public function FindUser (const AUserGUID: String; AResult: TidUser): Boolean;
Public function BuildTypedCollection (ASource, ATarget: TImageCollection; AVersionPHGUID: String; ACheckMarked: Boolean = True): Boolean;
Public function BuildTypedCollectionForPlaceHolder (ASource, ATarget: TImageCollection; APlaceHolder: TCatalogPlaceHolder; ACheckMarked: Boolean = True): Boolean;
Public function BuildMainVersionCollection (ASource, ATarget: TImageCollection; ACheckMarked: Boolean = True): Boolean;
Public function MemFindPropByGUID (const AGUID: String): TCatalogItemProp;
Public function WriteHistoryLog(const AServiceName: WideString; const AReferenceGUID: String; const ALogLine, ALogDetails: WideString; ALogData: TStream): Boolean;
Public function EnumUserHistoryLog(const AUserGUID: String; AResult: TCatalogHistoryItems; ALimit: Integer = -1): Boolean;
Public function EnumUserPeriodHistoryLog(const AUserGUID: String; APeriod: TPeriod; AResult: TCatalogHistoryItems; ALimit: Integer = -1): Boolean;
Public procedure EnumSearchDataForItem(AItem: TCatalogItem; AResult: TCatalogSearchResultItems);
Public procedure EnumSearchDataForImage(AImage: TImageItem; AResult: TCatalogSearchResultItems);
Public procedure FreeTextSearch (const AValue: WideString; AResult: TCatalogSearchResultItems; const AContentType: WideString = ''; const AContentGroup: WideString = ''; AMaxResults: Integer = 0);
Public procedure FreeTextSearchItems (const AValue: WideString; AResult: TCatalogItems; const AContentType: WideString = ''; const AContentGroup: WideString = ''; AMaxResults: Integer = 0);
Public procedure FreeTextSearchAlternatives ( AValue: WideString; AResult: TCatalogSearchAlternatives; const AContentType: WideString = ''; const AContentGroup: WideString = ''; AMaxResults: Integer = 20);
Public function FindCategoriesByName(const AName: WideString; AResult: TCatalogPropCategories; ASearchStyle: TSearchStyle = ssExact; AMaxResult: Integer = -1): boolean;
Public function FindPropsByName(const AName: WideString; AResult: TCatalogItemProps; const AParentGUID: String = ''; ASearchStyle: TSearchStyle = ssExact; ARecursive: Boolean = True; AMaxResult: Integer = -1; AWithSynonyms: Boolean = False): boolean;
Public function FindPropByName (const AName: WideString; AResult: TCatalogItemProp; const AParentGUID: String = ''; ARecursive: Boolean = True; AWithSynonyms: Boolean = False): boolean;
Public function FindPropGUIDByName (const AName: WideString; const AParentGUID: String = ''; ARecursive: Boolean = True): String;
Public function FindPropByPathName (const APathName: WideString; AResult: TCatalogItemProp; const ASeparator: WideString = '::'; ACreateIfNeeded: Boolean = False): Boolean;
Public function FindFilePathsNamed (const AFolderName: WideString; AResult: TCatalogFilePaths; ASearchStyle: TSearchStyle = ssExact; ASearchFullPath: Boolean = False; AMaxResult: Integer = -1): Boolean;
Public function FindItemByGUID (const AGUID: String; ACatItem: TCatalogItem): Boolean;
Public function FindItemCombinedByGUID (const AGUID: String; ACatItem: TCatalogItem): Boolean;
Public function FindImageCombinedByGUID (const AGUID: String; AImageItem: TImageItem): Boolean;
Public function FindItemCombinedByAvgColor (const AAvgColor: String; ACatItem: TCatalogItem; ATreshold: Single = 0.1): Boolean;
Public function FindVersionItemByGUID (const AGUID: String; ACatItem: TCatalogItem): Boolean;
Public function UpdateItemGUID (const AOldGUID, ANewGUID: String): Boolean;
Public function UpdateItemGroupGUID (const AItemGUID, ANewGroupGUID: String; ANewGroupOrder: Integer): Boolean;
Public function UpdateItemGroupMarkers (const AItemGUID: String; ANewGroupMarkers: TStackMarkers): Boolean;
Public function CatalogItemExists (const AGUID: String): Boolean;
Public function ItemExistsCombined (const AGUID: String): Boolean;
Public procedure EnumCameraDisplayInfo(AItem: TCatalogItem; ACustoms: TCustomFieldItems; AResult: TidElement);
Public procedure EnumCameraDisplayInfoForItems(AItems: TCleanCatalogItems; ACustoms: TCustomFieldItems; AResult: TidElement);
Public function EnumItemsForFilePath (AFilePath: TCatalogFilePath; AResult: TCatalogItems; AVersionsDisplay: TVersionsDisplay = vdDefault): Boolean;
Public function EnumItemsForPath (APath: WideString; AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItems): Boolean;
Public function EnumItemsForProp (AProp: TCatalogItemProp; AResult: TCatalogItems; ARecursive: Boolean = False; const AVersionPHGUID: String = ''): Boolean;
Public function EnumItemsForPathGUID (APathGUID: String; AResult: TCatalogItems): Boolean;
Public function PathGUIDForFileName (const AFilename: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; const ACreateIfNew: Boolean = True): String;
Public function PathGUIDForFolder (const AFolder: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; const ACreateIfNew: Boolean = True): String;
Public function EnumSimilarItemsForSimilarityCode (const ASimCode: String; AResult: TCatalogItems): Boolean;
Public function EnumSimilarItemsForItem (AItem: TCatalogItem; AResult: TCatalogItems): Boolean;
Public function EnumSimilarItemsForImage (AImage: TImageItem; AResult: TCatalogItems): Boolean;
Public function EnumSimilarItemsForItemsInTempList (AItems: TCatalogItems; AResult: TCatalogItems): Boolean;
Public function EnumFileTypes (AResult: TCatalogFileTypes; AWithCounts: Boolean = True): Boolean;
Public function EnumFileTypesForGroup (AGroup: TCatalogPropGroup; AResult: TCatalogFileTypes; AWithCounts: Boolean = True): Boolean;
Public function EnumPeriodForGroup (AGroup: TCatalogPropGroup; AResult: TPeriod): Boolean;
Public function EnumXMPOccurrences (const AXMPProperty: WideString; AResult: TMetaSchemaItemOccurences; const AWithCount: Boolean = True; const AMaxResults: Integer = -1; const ASortedByPhotoCount: Boolean = False): Boolean;
Public function EnumPlaceHolders (AResult: TCatalogPlaceHolders; AWithCount: Boolean = True): Boolean;
Public function EnumPlaceHolder (const AGUID: String; AResult: TCatalogPlaceHolder; AWithCount: Boolean = False): Boolean;
Public function EnumPlaceHolderByName (const AName: WideString; AResult: TCatalogPlaceHolder; AWithCount: Boolean = False): Boolean;
Public function EnumPlaceHolderForType (AType: TCatalogPlaceHolderType; AResult: TCatalogPlaceHolder; AWithCount: Boolean = False): Boolean;
Public function EnumPlaceHoldersForMainVersion (AResult: TCatalogPlaceHolders; const AMainVersionGUID: String; AOnlyUsed: Boolean = False): Boolean;
Public function DeletePlaceHolder (APlaceHolder: TCatalogPlaceHolder): Boolean;
Public function UpdatePlaceHolder (APlaceHolder: TCatalogPlaceHolder): Boolean;
Public function EnumItemForPlaceHolderInMain (AMain: TCatalogItem; APlaceHolder: TCatalogPlaceHolder; AResult: TCatalogItem): Boolean;
Public function EnumLastImportSessions(AImports: TCatalogImports; AMaxCount: Integer = -1): Boolean;
Public function ItemNeedsSync (ACatItem: TCatalogItem): Boolean;
Public function LoadRecipeForItem (AItem: TCatalogItem; AResult: TRecipe): Boolean;
Public function LoadRecipeForImage (AImage: TImageItem; AResult: TRecipe): Boolean;
Public function SaveRecipeForItem (AItem: TCatalogItem; ARecipe: TRecipe; AAppend: Boolean = False): Boolean;
Public function SaveRecipeForImage (AImage: TImageItem; ARecipe: TRecipe; AAppend: Boolean = False): Boolean;
Public function SaveRecipeForItems (AItems: TCatalogItems; ARecipe: TRecipe; AAppend: Boolean = False): Boolean;
Public function ItemHasRecipe (AItem: TCatalogItem): Boolean;
Public function ImageHasRecipe (AImage: TImageItem): Boolean;
Public function RemoveRecipeForItem (AItem: TCatalogItem): Boolean;
Public function RemoveRecipeForImage (AImage: TImageItem): Boolean;
Public function FilePathExists (AFilePath: TCatalogFilePath; AExact: Boolean = False): Boolean;
Public function FilePathHasSubs(AFilePath: TCatalogFilePath): Boolean;
Public function EnumFilePath (const AFolderName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogFilePath; const AExact: Boolean = True): Boolean;
Public function EnumFilePathForFolder (const AFolderName: WideString; AResult: TCatalogFilePath; AExact: Boolean = True): Boolean;
Public function EnumFilePathForItem (AItem: TCatalogItem; AResult: TCatalogFilePath): Boolean;
Public function EnumFilePathForItemGUID (const AItemGUID: String; AResult: TCatalogFilePath): Boolean;
Public function EnumFolderDetails (const AFolderName: WideString; AResult: TCatalogFilePath): Boolean;
Public function EnumFilePaths (AParent: TCatalogFilePath; AResult: TCatalogFilePaths; ASubLevels: Integer = 0; AMaxResults: Integer = -1): Boolean;
Public function EnumFilePathsRecursive (AParent: TCatalogFilePath; AResult: TCatalogFilePaths): Boolean;
Public function EnumAllFilePaths (AResult: TCatalogFilePaths): Boolean;
Public function EnumFilePathsMarked (AResult: TCatalogFilePaths): Boolean;
Public function EnumFilePathsWithState (AStates: TFilePathStates; ARecursive: Boolean; AResult: TCatalogFilePaths): Boolean;
Public function EnumFilePathByGUID (const AGUID: string; AResult: TCatalogFilePath): Boolean;
Public function DeleteFilePath (APath: TCatalogFilePath; ARecursive: Boolean = True): Boolean;
Public function UpdateFilePath (AFilePath: TCatalogFilePath): Boolean;
Public procedure UpdateMediaV4;
Public function EnumTimeLinePeriods (AParent: TCatalogPeriod; AResult: TCatalogPeriods; ASubLevels: Integer = 0): Boolean;
Public function EnumTimeLineStructure (AResult: TCatalogPeriods): Boolean;
Public function AddFile (ASourceItem: TImageItem; AResult: TCatalogItem; AQuick: Boolean = False): Boolean;
Public function AddFile2 (const AFileName: WideString; AResult: TCatalogItem; AQuick: Boolean = False): Boolean;
Public function AddVersionItem (AItem: TCatalogItem; AVersionItem: TCatalogItem; ATypes: TCatalogPlaceHolderTypes = [vptNone]): Boolean;
Public function AddVersion (AItem: TCatalogItem; AVersion: TImageItem; ATypes: TCatalogPlaceHolderTypes = [vptNone]; AResult: TCatalogItem = nil): Boolean;
Public function AddVersionFile (const AMainFileName: WideString; const AVersionFileName: WideString; ATypes: TCatalogPlaceHolderTypes = [vptNone]): Boolean;
Public function AddVersionFilePlaceHolders (const AMainFileName: WideString; const AVersionFileName: WideString; APlaceHolders: TCatalogPlaceHolders): Boolean;
Public function AddVersionFilePlaceHolder (const AMainFileName: WideString; const AVersionFileName: WideString; APlaceHolder: TCatalogPlaceHolder): Boolean;
Public function AddVersionForImage (AImage: TImageItem; AVersion: TImageItem; ATypes: TCatalogPlaceHolderTypes = [vptNone]): Boolean;
Public function DeleteVersionItem (AVersionItem: TCatalogItem): Boolean;
Public function DeleteVersion (AVersion: TImageItem): Boolean;
Public function DestroyVersionSetForItem (AVersion: TCatalogItem): Boolean;
Public function DestroyVersionSetForImage (AVersion: TImageItem): Boolean;
Public function ItemHasVersions (AItem: TCatalogItem): Boolean;
Public function ItemIsVersion (AItem: TCatalogItem): Boolean;
Public function ImageIsVersion (AImage: TImageItem): Boolean;
Public function ImageHasVersions (AImage: TImageItem): Boolean;
Public function UpdateVersionFromImage (AImage: TImageItem; ANewImage: TImageItem = nil): Boolean;
Public procedure UpdateVersionForItemInCollection (const AColGUID: String; const AMainVersionGUID: String; const AVersionGUID: String);
Public function VersionItemExists (const AGUID: String): Boolean;
Public function UpdateVersionFromItem (AItem: TCatalogItem): Boolean;
Public function EnumVersionsForItem (AItem: TCatalogItem; AResult: TCatalogItems): Boolean;
Public function EnumVersionStackForItem (AItem: TCatalogItem; AResult: TCatalogItems): Boolean;
Public function EnumVersionStackForImage (AImage: TImageItem; AResult: TCatalogItems): Boolean;
Public function CountItemsInVersionStack (const AMainVersionGUID: String; AIncludeMainVersion: Boolean): Integer;
Public function EnumVersionStacksForItemsInTemplist (AItems: TCatalogItems; AResult: TCatalogItems): Boolean;
Public function EnumMainVersionsForItemsInTemplist (AResult: TCatalogItems): Boolean;
Public function EnumVersionsForImage (AImage: TImageItem; AResult: TCatalogItems): Boolean;
Public function UpdateMainVersion (AOld, ANew: TCatalogItem): Boolean;
Public procedure EnumAllVersions (ACatalogItems: TCatalogItems);
Public procedure EnumAllVersionGUIDs (ACatalogItems: TCleanCatalogItems);
Public procedure EnumAllMainVersions (ACatalogItems: TCatalogItems);
Public procedure HandlePropDetailsForItem (AProp: TCatalogItemProp; AItem: TCatalogItem; ATargetXMP: TXMP = nil);
Public procedure EnumFolder (const AFolderName: WideString; AResult: TCatalogItems; ARecursive: Boolean = False);
Public function EnumAllMedia (AResult: TCatalogMediums): Boolean;
Public function EnumMediumItems (AMedium: TCatalogMedium; AResult: TCatalogItems): Boolean;
Public function EnumMedium (const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogMedium): Boolean;
Public function EnumAllAreas (AResult: TCatalogAreas): Boolean;
Public function CountAllAreasWithFeatures: Integer;
Public function EnumAllAreasWithFeatures (AResult: TCatalogAreas): Boolean;
Public function EnumAllAreasWithoutProp(AResult: TCatalogAreas): Boolean;
Public function EnumAllAreasWithFeaturesForProp (AProp: TCatalogItemProp; AResult: TCatalogAreas): Boolean;
Public function EnumAllFaceAreas (AResult: TCatalogAreas; AHasFeatures: Boolean = False): Boolean;
Public function EnumAllFaceAreasWithoutProp (AResult: TCatalogAreas): Boolean;
Public function EnumAreasForItem (AItem: TCatalogItem; AResult: TCatalogAreas): Boolean;
Public function EnumAreasForProp (const APropGUID: String; AResult: TCatalogAreas): Boolean;
Public function EnumAreasWithoutImageForItem (AItem: TCatalogItem; AResult: TCatalogAreas): Boolean;
Public function EnumAreasForImage (AImage: TImageItem; AResult: TCatalogAreas): Boolean;
Public function EnumFaceAreasForItem (AItem: TCatalogItem; AResult: TCatalogAreas): Boolean;
Public function EnumFaceAreasForImage (AImage: TImageItem; AResult: TCatalogAreas): Boolean;
Public function FindAreaByGUID (const AGUID: String; AResult: TCatalogArea): Boolean;
Public function ItemHasAreas (AItem: TCatalogItem): Boolean;
Public function ImageHasAreas (AImage: TImageItem): Boolean;
Public function EnumUnmatchedFaces(AResult: TxomFaces; AExcludeIgnored: Boolean): Boolean;
Public function EnumFacesForGUID(const AGUID: String; AExcludeIgnored: Boolean; AResult: TxomFaces): Boolean;
Public function EnumFacesForItem(AItem: TCatalogItem; AExcludeIgnored: Boolean; AResult: TxomFaces): Boolean;
Public function EnumFacesForImage(AImage: TImageItem; AExcludeIgnored: Boolean; AResult: TxomFaces): Boolean;
Public function MatchFacesForArea(const AAreaGUID: String; AResult: TxomFaces; AMaxResults: Integer): Boolean;
Public function MatchFacesForProp(AProp: TCatalogItemProp; AResult: TxomFaces; AMaxResults: Integer): Boolean;
Public function MatchFacesForPropGUID(const APropGUID: String; AResult: TxomFaces; AMaxResults: Integer): Boolean;
Public function MatchFacesForFeatureAreas(AAreas: TCatalogAreas; AResult: TxomFaces; AMaxResults: Integer): Boolean;
Public function MatchedFace(AFace: TxomFace; ASetting: Boolean): Boolean;
Public function MatchedFaceByGUID(const AFaceGUID: String; ASetting: Boolean): Boolean;
Public function IgnoreFace(AFace: TxomFace; ASetting: Boolean): Boolean;
Public function IgnoreFaceByGUID(const AFaceGUID: String; ASetting: Boolean): Boolean;
Public function EnumAttachmentsForItemGUID (AGUID: String; AResult: TCatalogAttachments): Boolean;
Public function EnumAttachmentsForItem (AItem: TCatalogItem; AResult: TCatalogAttachments): Boolean;
Public function ItemHasAttachments (AItem: TCatalogItem): Boolean;
Public function ImageHasAttachments (AImage: TImageItem): Boolean;
Public function UpdateAttachment (AAtt: TCatalogAttachment): Boolean;
Public function DeleteAttachment (AAtt: TCatalogAttachment): Boolean;
Public function DeleteAttachmentsForItem(AItem: TCatalogItem): Boolean;
Public function CreateAndLoadTifForItem(AItem: TCatalogItem): TTif;
Public function EnumCategories (AResult: TCatalogPropCategories; AWithCounts: Boolean = False): Boolean;
Public function EnumTypedCategories (ATypes: TCatalogPropAccessibilities; AResult: TCatalogPropCategories; AWithCounts: Boolean = False): Boolean;
Public function EnumCategory (const AGUID: String; AResult: TCatalogPropCategory; AWithCount: Boolean = False): Boolean;
Public function EnumCategoryNamed (const ACategory: WideString; ACat: TCatalogPropCategory): Boolean;
Public function EnumCategoryForProp (AProp: TCatalogItemProp; AResult: TCatalogPropCategory): Boolean;
Public function EnumCategoriesForProps (AProps: TCatalogItemProps; AResult: TCatalogPropCategories): Boolean;
Public function EnumCategoryGUIDForProp(AProp: TCatalogItemProp): String;
Public function UpdateCategory (ACat: TCatalogPropCategory): Boolean;
Public function DeleteCategory (ACat: TCatalogPropCategory): Boolean;
Public function CategoryHasSubs (ACat: TCatalogPropCategory): Boolean;
Public function CategoryExists (const AGUID: String): Boolean;
Public function CheckImportSessionCategory (ACreateIfNeeded: Boolean = True): Boolean;
Public procedure ReadGroupsFromDatabase;
Public procedure EnumGroups (AResult: TCatalogPropGroups);
Public procedure EnumTypedGroups (const AType: String; AGroups: TCatalogPropGroups);
Public procedure EnumTypedGroupsNamed(const AType: String; const AName: WideString; AGroups: TCatalogPropGroups);
Public procedure EnumLabelSets(AGroups: TCatalogPropGroups);
Public procedure EnumLabelSetsByName(const AName: WideString; AGroups: TCatalogPropGroups);
Public procedure EnumLabelSetsForProp(AProp: TCatalogItemProp; AGroups: TCatalogPropGroups);
Public procedure EnumPropsForLabelSet(AGroup: TCatalogPropGroup; AProps: TCatalogItemProps);
Public procedure EnumLabelSetsForProps(AProps: TCatalogItemProps; AGroups: TCatalogPropGroups);
Public function IsPropInLabelSet(AProp: TCatalogItemProp; AGroup: TCatalogPropGroup): Boolean;
Public function GroupExists (const AGUID: String): Boolean;
Public function FindGroup (AGroup: TCatalogPropGroup): Boolean;
Public function FindGroupsNamed (const AGroupName: WideString; AResult: TCatalogPropGroups): Boolean;
Public procedure EnumGroupContent (AGroup: TCatalogPropGroup);
Public function GroupHasContent (AGroup: TCatalogPropGroup): Boolean;
Public function EnumGroupResult (AGroup: TCatalogPropGroup; AResult: TCatalogItems; const AVersionPHGUID: String = AlbumPlaceHolderGUID; const AFilterGuidList: String = ''; const AFilterClassGUIDs: String = ''; const AExclFilterClassGUIDs: String = ''; AFilterGroups: TCatalogPropGroups = nil; AMaxResults: Integer = -1; AResultKind: TGroupResultKind = grkFullColumns; AForcedDBSorting: Boolean = False): Integer;
Public function EnumGroupResultQuick (AGroup: TCatalogPropGroup; AResult: TCatalogItems; AMaxResults: Integer = -1): Integer;
Public function AddPropToGroup (AGroup: TCatalogPropGroup; AProp: TCatalogItemProp; AType: TCatalogGroupType): Boolean;
Public function RemovePropFromGroup (AGroup: TCatalogPropGroup; AProp: TCatalogItemProp; AType: TCatalogGroupType): Boolean;
Public function RemovePropFromTypedGroups (AProp: TCatalogItemProp; const AGroupType: String): Boolean;
Public function DeleteGroup (AGroup: TCatalogPropGroup): Boolean;
Public function StoreGroup (AGroup: TCatalogPropGroup; AWithContent: Boolean = True): Boolean;
Public function UpdateGroup (AGroup: TCatalogPropGroup): Boolean;
Public function IsGroupInGroup (ACheckGroup, ABaseGroup: TCatalogPropGroup): Boolean;
Public procedure PrepareDeduplicateItems(AItems: TCatalogItems; AResult: TCatalogItemSets; ASettings: TDeduplicateSettings);
Public procedure DeduplicateSet(ASet: TCatalogItemSet; ASettings: TDeduplicateSettings);
Public procedure DeduplicateSets(ASets: TCatalogItemSets; ASettings: TDeduplicateSettings);
Public procedure DeduplicateItems(AItems: TCatalogItems; ASettings: TDeduplicateSettings);
Public procedure DeduplicateGroup(AGroup: TCatalogPropGroup; ASettings: TDeduplicateSettings);
Public function StackItems (AItems: TCatalogItems; const AGroupGUID: String; ATopItem: TCatalogItem): Boolean;
Public function StackItemsInTempList (AItems: TCatalogItems; const AGroupGUID: String; ATopItem: TCatalogItem): Boolean;
Public function UnStackItems (AItems: TCatalogItems): Boolean;
Public function UnStackItemsInTempList (AItems: TCatalogItems): Boolean;
Public function UnstackItemsWithSingleStackCount: Boolean;
Public function RemoveStack (const AGroupGUID: String): Boolean;
Public function EnumItemsInStack (const AGroupGUID: String; AResult: TCatalogItems; AGUIDOnly: Boolean): Boolean;
Public function EnumImagesInStack(const AGroupGUID: String; AResult: TImageItems; AGUIDOnly: Boolean): Boolean;
Public function CountItemsInStack (const AGroupGUID: String): Integer;
Public function EnumStackItemsForItemsInTemplist (AItems: TCatalogItems; AResult: TCatalogItems): Boolean;
Public function EnumStackTopItem (const AGroupGUID: String; AResult: TCatalogItem): Boolean;
Public function DefineStackTopItem (const AGroupGUID: String; AItem: TCatalogItem): Boolean;
Public function DefineStackTopImage (const AGroupGUID: String; AImage: TImageItem): Boolean;
Public function ItemIsStacked (AItem: TCatalogItem): Boolean;
Public function EnumItemsWithSyncState (ASyncState: TSyncState; AResult: TCatalogItems): Boolean;
Public function EnumVersionsWithSyncState (ASyncState: TSyncState; AResult: TCatalogItems): Boolean;
Public function FindOrCreateAILabelsCategory(AResult: TCatalogPropCategory): Boolean;
Public procedure AIEnumBitmapStreamForItem(AItem: TCatalogItem; ABitmap: TvxBitmap32; ABitmapStream: TStream; const ALongestSize: Integer = 0);
Public function APILanguage: String; virtual;
Public function GoogleTranslateText(const AText: WideString; const AFromLanguage, AToLanguage: String; const AGoogleAPIKey: String; var AResult: WideString): Boolean; virtual;
Public function GoogleTranslateTextQuick(const AText: WideString; const AFromLanguage, AToLanguage: String; const AGoogleAPIKey: String): WideString; virtual;
Public procedure AIVision_BaseDetectForItem(AItem: TCatalogItem; ADetectionTypes: TDetectionTypes; ABmp: TvxBitmap32; AStream: TStream; AResult: TDetectionResult);
Public function AIVision_DetectLabelsForItem(AItem: TCatalogItem; ABmp: TvxBitmap32 = nil; AStream: TStream = nil; AProps: TCatalogItemProps = nil; AAssignLabels: TAIAssignLabels = aalNone): Boolean;
Public function AIVision_RecognizeObjectsForItem(AItem: TCatalogItem; ABmp: TvxBitmap32 = nil; AStream: TStream = nil): Boolean;
Public function AIVision_RecognizeLandmarksForItem(AItem: TCatalogItem; ABmp: TvxBitmap32 = nil; AStream: TStream = nil): Boolean;
Public function AIVision_DetectTextAnnotationsForItem(AItem: TCatalogItem; ABmp: TvxBitmap32 = nil; AStream: TStream = nil): Boolean;
Public function AIVision_DetectFacesForItem(AItem: TCatalogItem; ABmp: TvxBitmap32 = nil; AStream: TStream = nil; AFullBitmap: TvxBitmap32 = nil): Integer;
Public procedure AIVisionLabelsToProps(AAILabels: TLabelDetectionItems; AProps: TCatalogItemProps; ATranslate: Boolean);
Public procedure EnumAIVisionPropsForItemsInTempList(const AClassGUID: String; AResult: TCatalogItemProps);
Public procedure EnumAIVisionPropsForItems(AItems: TCatalogItems; AResult: TCatalogItemProps);
Public function CreateOpenAIObject: TidBaseOpenAI;
Public function GenerateDefaultAIContext(const AItemGUID: String; const AAllowEvent, AAllowPlace, AAllowDate: Boolean): WideString; virtual;
Public function AIOpenAI_MetaDescribeItem(AItem: TCatalogItem; AContext: WideString; ABmp: TvxBitmap32; AStream: TStream; AResult: TidOpenAIResult): Boolean;
Public procedure AIOpenAI_ProcessResult(AItem: TCatalogItem; AResult: TidOpenAIResult; const AResultHandling: TOpenAIResultHandling);
Public procedure AIOpenCV_LoadFacesDatabase; virtual;
Public function AIOpenCV_RecognizeFaceInArea(ABmp: TvxBitmap; AArea: TCatalogArea): Boolean;
Public function AIOpenCV_RecognizeFacesForItem(AItem: TCatalogItem; AClearExistingAreas: Boolean; AThreshold: TThreshold; ABmp: TvxBitmap32 = nil; AStream: TStream = nil): Integer;
Public function AIOpenCV_RecognizeObjectsForItem(AItem: TCatalogItem; AClearExistingAreas: Boolean; ABmp: TvxBitmap32 = nil; AStream: TStream = nil): Boolean;
Public procedure AddCollToItemsInTempList (AItems: TCatalogItems; AColl: TImageCollection);
Public procedure AddPropToItemsInTempList (AItems: TCatalogItems; AProp: TCatalogItemProp);
Public procedure AddPropsToItemsInTempList (AItems: TCatalogItems; AProps: TCatalogItemProps);
Public procedure RemovePropsFromItemsInTempList (AItems: TCatalogItems; AProps: TCatalogItemProps);
Public procedure AddPropToItems (AItems: TCatalogItems; AProp: TCatalogItemProp);
Public procedure ChangeRatingForItemsInTempList (AItems: TCatalogItems; AValue: Integer; ACachedXMP: Boolean = True);
Public procedure ChangeLabelForItemsInTempList (AItems: TCatalogItems; const AValue: WideString; ACachedXMP: Boolean = True);
Public procedure ChangeBookmarkForItemsInTempList (AItems: TCatalogItems; AValue: TBookmarker);
Public procedure ChangeStackMarkersForItemsInTempList(AItems: TCatalogItems; AIncludeMarkers, AExcludeMarkers: TStackMarkers);
Public function ChangeColorLabelName (const AOldName, ANewName: WideString): Boolean;
Public function ChangeBookmarkName (const AOldName, ANewName: WideString): Boolean;
Public function ChangeStackMarkerName (const AOldName, ANewName: WideString): Boolean;
Public function CountItemsForGroupInTempList (AItems: TCatalogItems; AGroup: TCatalogPropGroup): Integer;
Public procedure DeletePropFromItems (AItems: TCatalogItems; AProp: TCatalogItemProp);
Public procedure RemovePropFromItems (AItems: TCatalogItems; AProp: TCatalogItemProp);
Public function IsVirtualCollection(AColl: TImageCollection): Boolean;
Public procedure RemovePropFromItemsInTempList (AItems: TCatalogItems; AProp: TCatalogItemProp);
Public procedure DeletePropFromItemsInTempList (AItems: TCatalogItems; AProp: TCatalogItemProp);
Public procedure RemoveCollFromItemsInTempList (AItems: TCatalogItems; AColl: TImageCollection);
Public procedure RemoveItemsFromTempListForClassGUID (const AClassGUID: String);
Public procedure RemoveItemsFromTempList (AItems: TCleanCatalogItems);
Public procedure StoreItemsToTempList (AItems: TCleanCatalogItems; AAllowVersions: Boolean = False);
Public function StoreItemGUIDsToTempList (AGUIDs: TStringList; AAllowVersions: Boolean = False): String;
Public procedure ExportItemsInTempListToNewSQLiteDatabase(const AClassGUID: String; const AFileName: WideString);
Public procedure EnumItemsFromTempListGUID (const AClassGUID: String; AResult: TCatalogItems);
Public procedure EnumItemsFromTempList (AItems: TCatalogItems; AResult: TCatalogItems);
Public procedure EnumItemsSyncStateFromTempListGUID(const AClassGUID: String; AResult: TCatalogItems);
Public procedure EnumItemsSyncStateFromTempList(AItems: TCatalogItems);
Public procedure EnumItemGUIDsFromTempList (AItems: TCatalogItems; AResult: TStringList);
Public procedure EnumItemGUIDsFromTempListGUID (const AClassGUID: String; AResult: TStringList);
Public procedure EnumCleanItemsFromTempList (AItems: TCatalogItems; AResult: TCleanCatalogItems);
Public procedure EnumCleanItemsFromTempListGUID (const AClassGUID: String; AResult: TCleanCatalogItems);
Public procedure StoreGroupResultToTempList (AGroup: TCatalogPropGroup; ACombined: Boolean = False);
Public procedure StoreFileListToTempFileList (const AGUID: String; ASl: TxomStrings);
Public procedure RemoveFromTempFileList (const AGUID: String);
Public procedure EnumItemsFromTempFileList(const AGUID: String; AResult: TCleanCatalogItems);
Public function CascadeXMPForItem (ASource: TCatalogItem; AWithRatingsLabels: Boolean): Boolean;
Public function CascadeMetaForItem (AItem: TCatalogItem): Boolean;
Public function CascadeMetaForImage (AImage: TImageItem): Boolean;
Public procedure CascadeToTargetsForItem (ASource: TCatalogItem; ATargets: TCatalogItems; ATypes: TCatalogCascadeTypes; AOptions: TOptions; const AOnProgress: TNotifySingleEvent = nil);
Public function _AddPropToItem (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False; AUpdateLastUsed: Boolean = True): Boolean;
Public function AddPropToItem (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
Public function AddPropsToItem (AItem: TCatalogItem; AProps: TCatalogItemProps; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
Public function AddPropToImage (AImage: TImageItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
Public function AddPropToMainItemFor (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
Public function _UpdateArea (AArea: TCatalogArea; AWithNotify: Boolean = True): Boolean;
Public function UpdateArea (AArea: TCatalogArea): Boolean;
Public function DeleteArea (AArea: TCatalogArea; AUnassignLabel: Boolean): Boolean;
Public function DeleteAreasForItem(AItem: TCatalogItem; AOnlyDetected: Boolean; AOnlyRecognized: Boolean; AUnassignLabel: Boolean): Boolean;
Public function DeleteAreasForImage(AImage: TImageItem; AOnlyDetected: Boolean; AOnlyRecognized: Boolean; AUnassignLabel: Boolean): Boolean;
Public function CreatePropStructure (AParent: TCatalogItemProp; AStructure: TxomStrings; AResult: TCatalogItemProps): Boolean;
Public procedure EnumDefinitionForItem (AItem: TCatalogItem);
Public function ItemHasProp (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = True): Boolean;
Public function ImageHasProp (AImage: TImageItem; AProp: TCatalogItemProp; Recursive: Boolean = True): Boolean;
Public function ItemHasProps (AItem: TCatalogItem; AProps: TCatalogItemProps; Recursive: Boolean = False): Boolean;
Public function ImageHasProps (AImage: TImageItem; AProps: TCatalogItemProps; Recursive: Boolean = False): Boolean;
Public function FindPropForItem (AItem: TCatalogItem; AProp, AResult: TCatalogItemProp; Recursive: Boolean = True): Boolean;
Public function ItemPropsAsString (AItem: TCatalogItem; Short: Boolean = False; IncludeAutoProps: Boolean = True): WideString;
Public function ItemPropsAsIDImagerCore (AItem: TCatalogItem; ATagStructure: TObject; IncludeAutoProps: Boolean = True; AProps: TCatalogItemProps = nil): Boolean;
Public function IsPrivateProp (AProp: TCatalogItemProp): Boolean;
Public function IsPrivatePropGUID (const AGUID: String): Boolean;
Public function IsPropInPrivateCategory (AProp: TCatalogItemProp): Boolean;
Public function PropIsPrivate (AProp: TCatalogItemProp): Boolean;
Public function PropExists (const AGUID: String): Boolean;
Public function CatExists (const AGUID: String): Boolean;
Public function EnumMetadataEventPropForItem(AItem: TCatalogItem; AResult: TCatalogItemProp): Boolean;
Public procedure MapPropsToXMPForItem (AItem: TCatalogItem; AProps: TCatalogItemProps; AXmp: TXMP; ASettings: TXMPSyncWriteSettings; ASearchData: TidElement);
Public function _WriteItemToXMP (ACatItem: TCatalogItem; ASyncSettings: TXMPSyncWriteSettings; AToAllVersions: Boolean; ACached: Boolean; ASaveCached: Boolean): Boolean;
Public function WriteItemToXMPAdvanced (ACatItem: TCatalogItem; ASettings: TXMPSyncWriteSettings; ALoadCached: Boolean; ASaveCached: Boolean): Boolean;
Public function ReadIPTCForItem (AItem: TCatalogItem): Boolean;
Public function _ReadXMPForItem (AItem: TCatalogItem; ASyncSettings: TXMPSyncReadSettings; AXmpObject: TObject = nil): Boolean;
Public function ReadXMPForItemAdvanced (AItem: TCatalogItem; ASettings: TXMPSyncReadSettings; AXmpObject: TObject = nil): Boolean;
Public function ReadXMPForImageAdvanced (AImage: TImageItem; ASettings: TXMPSyncReadSettings; AXmpObject: TObject = nil): Boolean;
Public procedure GenerateEventLabelFromXMP (AItem: TCatalogItem; AXmp: TXMP);
Public procedure GeneratePlacesLabelsFromXMP (AItem: TCatalogItem; AXmp: TXMP; ALevel: TXMPSyncGEOLevel);
Public procedure GeneratePeopleLabelsFromXMP (AItem: TCatalogItem; AXmp: TXMP; AWithGetty: Boolean);
Public procedure GenerateObjectLabelsFromXMP (AItem: TCatalogItem; AXmp: TXMP);
Public function FindOrCreateGEOPropEntry( const AParentGUID: String; const AName: WideString; const AXMPLink: WideString; const AXmpFieldsDefs: WideString; const ALoc: TGPSLocation; const APlaceProps: TStrings ): String;
Public procedure ImportFile(const AFileName: WideString; ACreateSessionLabel: Boolean = True; AFolderAsLabels: TScanFolderAsLabel = sflNone);
Public procedure ImportFolder(const ADir: WideString; ASubFolders: Boolean; ACreateSessionLabel: Boolean = True; AFolderAsLabels: TScanFolderAsLabel = sflNone);
Public procedure ImportFiles(var ASessionGUID: AnsiString; AFiles: TxomStrings; ACreateSessionLabel: Boolean = True; AFolderAsLabels: TScanFolderAsLabel = sflNone);
Public function RemovePropsFromItem (AItem: TCatalogItem; AProps: TCatalogItemProps): Boolean;
Public function RemovePropFromItem (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
Public function RemovePropFromImage (AImage: TImageItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
Public function RemoveAllPropsFromItem (AItem: TCatalogItem): Boolean;
Public function RemovePropFromMainItem (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
Public function RemovePropFromUser (AUser: TidUser; AProp: TCatalogItemProp): Boolean;
Public function StoreItemToDataBase (AItem: TCatalogItem; const AWithDefinition: Boolean = False; const AWithNotify: Boolean = True): Boolean;
Public procedure UpdateItemSyncState (AItem: TCatalogItem; const AIncludeStates: TSyncState = []; const AExcludeStates: TSyncState = []; const AVersionsToo: Boolean = False; const AWithNotify: Boolean = True);
Public function IsItemPropped (AItem: TCatalogItem): Boolean;
Public function EnumCounterForItem (AItem: TCatalogItem): Integer;
Public function IncreaseCounterForItem (AItem: TCatalogItem): Integer;
Public function DecreaseCounterForItem (AItem: TCatalogItem): Integer;
Public procedure ValidateFiles (AFiles: TxomStrings; AItems: TCatalogItems);
Public procedure ValidateImages (AImages: TImageItems; AOnlyMarked: Boolean; AAddUnknown: Boolean = True; AQuick: Boolean = True; AWithThumbs: Boolean = False; AOnProgress: TNotifyEvent = nil);
Public function CopyItemLabels (ASource, ATarget: TCatalogItem): Boolean;
Public function CopyImageLabels (ASource, ATarget: TImageItem; AAsVersion: Boolean = True): Boolean;
Public function CopyImageLabelsToFileName (ASource: TImageItem; const ATargetFile: WideString; AAsVersion: Boolean = True): Boolean;
Public function CopyItemCollections (ASource, ATarget: TCatalogItem): Boolean;
Public function CopyItemsToClipBoard (AItems: TCatalogItems): Boolean;
Public function PasteFromClipBoardToItems (AItems: TCatalogItems; AXMPWriteSettings: TXMPSyncWriteSettings; ACached: Boolean; AProps: TCatalogItemProps = nil): Boolean;
Public procedure BuildNewPropNameForProp (AProp: TCatalogItemProp; const AParentGUID: String);
Public procedure PathNameForProps (AProps: TCatalogItemProps; const ASeparator: WideString = '::'; AReferred: Boolean = False; const APreText: WideString = ''; const APostText: WideString = ''; AInclusive: Boolean = True);
Public function PathNameForProp (AProp: TCatalogItemProp; const ASeparator: WideString = '::'; AReferred: Boolean = False): WideString;
Public function PathNameToProp (const APathName: WideString; const ASeparator: WideString; AResult: TCatalogItemProp; ACreateIfNeeded: Boolean = True): Boolean;
Public function PropHasSubs (AProp: TCatalogItemProp): Boolean;
Public function PropHasRelations (AProp: TCatalogItemProp): Boolean;
Public function PropHasSubsOrRelations (AProp: TCatalogItemProp): Boolean;
Public function PropHasRelationsWithExclude (AProp: TCatalogItemProp; const AExcludeGUID: String): Boolean;
Public function PropHasSubsOrRelationsWithExclude (AProp: TCatalogItemProp; const AExcludeGUID: String): Boolean;
Public function PropHasItems (AProp: TCatalogItemProp): Boolean;
Public function PropIsChildOf (AProp: TCatalogItemProp; const AParentGUID: String; Hierarchical: Boolean = False): Boolean;
Public function PropIsParentOf (AProp: TCatalogItemProp; AChild: TCatalogitemProp): Boolean;
Public function PropParentGUID (AProp: TCatalogItemProp): String;
Public function PropCategoryExists (const AGUID: String; var AName: WideString): Boolean;
Public function FilePathIsChildOf (AFilePath: TCatalogFilePath; const AParentGUID: String; Hierarchical: Boolean = False): Boolean;
Public function FilePathIsParentOf (AFilePath: TCatalogFilePath; AChild: TCatalogFilePath): Boolean;
Public procedure StorePropToDatabase (AProp: TCatalogItemProp; const AParentGUID: String; WithSubs: Boolean = True);
Public procedure StorePropsToDatabase (AProps: TCatalogItemProps; const AParentGUID: String);
Public procedure UpdateProp (AProp: TCatalogItemProp);
Public procedure UpdateParentForProp (AProp: TCatalogItemProp; const AParentGUID: String);
Public function MergePropWithProp (AProp, ATarget: TCatalogItemProp; WithSubs: Boolean = True): Boolean;
Public procedure UpdateSyncStateForProp (AProp: TCatalogItemProp; const AIncludeStates, AExcludeStates: TSyncState; ARecursive: Boolean = True);
Public procedure UpdateSyncStateForItem (AItem: TCatalogItem; const AIncludeStates: TSyncState = []; const AExcludeStates: TSyncState = []);
Public procedure UpdateSignatureForItem(const AItemGUID: String; const ASignature, AFileSignature: AnsiString; AWithNotify: Boolean = True);
Public procedure EnumParentGUIDsForProp (APropItem: TCatalogItemProp; AParents: TStrings);
Public procedure EnumParentGUIDsForProps (APropItems: TCatalogItemProps; AParents: TStrings);
Public function EnumParentGUIDForProp (APropItem: TCatalogItemProp): String;
Public function EnumParentForProp(const AGUID: String; AParent: TCatalogItemProp): Boolean;
Public function TopParentGUIDForProp (APropItem: TCatalogItemProp): String;
Public function TopParentGUIDForPropGUID (const AGUID: String): String;
Public function PropsHasSubs (AProps: TCatalogItemProps): Boolean;
Public procedure EnumParentGUIDsForFilePath (AFilePath: TCatalogFilePath; AParents: TStrings);
Public function CountItemsForCategory (ACat: TCatalogPropCategory): Integer;
Public function CountItemsForProp (APropItem: TCatalogItemProp): Integer;
Public function CountItemsForRating (ARating: Integer): Integer;
Public function CountItemsForLabel (const ALabel: WideString): Integer;
Public function CountItemsForState (AState: TCatalogStateObject): Integer;
Public function CountItemsForPeriod (APeriod: TCatalogPeriod): Integer;
Public function CountItemsForFilePath (AFilePath: TCatalogFilePath): Integer;
Public function CountItemsForFilePathState (AState: TFilePathStateObject): Integer;
Public function CountItemsForStackMarker (AMarker: TStackMarkerObject): Integer;
Public function CountItemsForFileType (AFileType: TCatalogFileType): Integer;
Public function CountItemsForImport (AImport: TCatalogImport): Integer;
Public function CountItemsForCatalogPeriod (AFilePeriod: TCatalogPeriod): Integer;
Public function CountItemsForVersionPlaceHolder (APlaceHolder: TCatalogPlaceHolder): Integer;
Public function CountItemsForXMPProperty (const AXMPProperty: WideString): Integer;
Public function CountItemsForMetaOccurrence (AOccurrence: TMetaSchemaItemOccurence): Integer;
Public function CountItemsForGroup (AGroup: TCatalogPropGroup): Integer;
Public function CountItemsForAlbum (AAlbum: TImageModel): Integer;
Public function CountItemsForCollection (AColl: TImageCollection): Integer;
Public function CountPropsForParent (const AParentGUID: String): Integer;
Public function CountPropsForItem (AItem: TCatalogItem; AIncludeAutoProps: Boolean = True): Integer;
Public function CountPropsForImage (AImage: TImageItem; AIncludeAutoProps: Boolean = True): Integer;
Public function CountRelationsForProp(AProp: TCatalogItemProp): Integer;
Public function AddPropToProps (AProps: TCatalogItemProps; AParentGUID: String): TCatalogItemProp;
Public function IsIgnoredMetaParamForcascading (const AParamCommand: WideString): Boolean;
Public function WriteXMPForItem (AItem: TCatalogItem): Boolean;
Public procedure WriteXMPParamsForItem (AItem: TCatalogItem; AParms: TList; ADeleteKind: TSearchDataDeleteKind);
Public procedure DeleteXMPParamsForItem (AItem: TCatalogItem; AParms: TList);
Public function WriteXMPTagsForItem (AItem: TCatalogItem; AXmp: TObject; AWithStoreXMPToDB: Boolean = True): Boolean;
Public function WriteXMPTagForItem (AItem: TCatalogItem; AParam: TObject): Boolean;
Public function WriteXMPTagForImage (AImage: TImageItem; AParam: TObject): Boolean;
Public function ReadXMPTagForItem (AItem: TCatalogItem; AParam: TObject): WideString;
Public function DeleteXMPTagForItem (AItem: TCatalogItem; const AParamCommand: WideString; const AIsStructure: Boolean): Boolean;
Public function WriteXMPCacheToItem (AItem: TCatalogItem; AXmp: TObject = nil; AFullReplace: Boolean = False): Boolean;
Public function WriteXMPCacheToImage (AImage: TImageItem; AXmp: TObject = nil; AFullReplace: Boolean = False): Boolean;
Public function _SynchronizeToItem (AItem: TCatalogItem; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; AKeepXMP: Boolean = False): Boolean;
Public function SynchronizeToItem (AItem: TCatalogItem; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; AKeepXMP: Boolean = False; AThreaded: Boolean = True; ASyncCommand: TXMPSyncCommand = scAuto): Boolean;
Public function SynchronizeToItems (AItems: TCatalogItems; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; AKeepXMP: Boolean = False; AThreaded: Boolean = True; ASyncCommand: TXMPSyncCommand = scAuto; ADetectVersions: Boolean = False; ADetectStacks: Boolean = False; const APostNotification: WideString = ''; const ATitleAddition: WideString = ''): Boolean;
Public function SynchronizeToImage (AImage: TImageItem; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; AKeepXMP: Boolean = False; AThreaded: Boolean = True; ASyncCommand: TXMPSyncCommand = scAuto): Boolean;
Public procedure SynchronizeGroup (AGroup: TCatalogPropGroup; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; ASyncCommand: TXMPSyncCommand);
Public procedure SynchronizeGroupWithJobs (AGroup: TCatalogPropGroup; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; ASyncCommand: TXMPSyncCommand);
Public procedure SynchronizeOutOfSync (AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; ASyncCommand: TXMPSyncCommand);
Public procedure SynchronizeOutOfSyncWithJobs (AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; ASyncCommand: TXMPSyncCommand);
Public function IgnoreXMPTag (const AXMPProperty: WideString): Boolean;
Public function ReadGEOLocationFromXMP (AItem: TCatalogItem; AXmp: TObject): Boolean;
Public procedure _LoadXMPForItem (AItem: TCatalogItem; AXMP: TObject; const ACheckCache: Boolean; const ASchemaURL: WideString = '');
Public procedure LoadXMPForItem (AItem: TCatalogItem; AXMP: TObject; ACheckCache: Boolean);
Public procedure LoadIntersectedXMPForItems(AItems: TCleanCatalogItems; AXMP: TObject; const ACheckCache: Boolean; const AVolumeThreshold: Integer);
Public function _LoadXMPForImage (AImage: TImageItem; AXMP: TObject; const ACheckCache: Boolean; const ACreateIfNotExists: Boolean = True; const ASchemaURL: WideString = ''): Boolean;
Public function LoadXMPForImage (AImage: TImageItem; AXMP: TObject; ACheckCache: Boolean): Boolean;
Public procedure _SaveXMPForItem (AItem: TCatalogItem; AXMP: TObject; ACheckCache: Boolean; AWithTags: Boolean; AWithStoreXMPToDB: Boolean; ACanAffectSyncState: Boolean);
Public procedure _SaveXMPForImage (AImage: TImageItem; AXMP: TObject; ACheckCache: Boolean; AWithTags: Boolean; AWithStoreXMPToDB: Boolean; ACanAffectSyncState: Boolean);
Public procedure SaveXMPForItem (AItem: TCatalogItem; AXMP: TObject; ACheckCache: Boolean);
Public procedure SaveXMPForImage (AImage: TImageItem; AXMP: TObject; ACheckCache: Boolean);
Public procedure DeleteXMPForItem (AItem: TCatalogItem);
Public procedure DeleteXMPForImage (AImage: TImageItem);
Public function LoadTransferDataForImage (AImage: TImageItem; AData: TidElement): Boolean;
Public function LoadTransferDataForItem (AItem: TCatalogItem; AData: TidElement): Boolean;
Public function LoadTransferDataForGUID (const AGUID: String; AData: TidElement): Boolean;
Public function TransferDataForItemExists (AItem: TCatalogItem): Boolean;
Public function TransferDataForGUIDExists (const AGUID: String): Boolean;
Public procedure SaveTransferDataForImage (AImage: TImageItem; AData: TidElement);
Public procedure SaveTransferDataForItem (AItem: TCatalogItem; AData: TidElement);
Public procedure SaveTransferDataForGUID (const AGUID: String; AData: TidElement);
Public function FindXMPCachedTagValueForItem (AItem: TCatalogItem; const AXmpTag: WideString; var AResult: WideString): Boolean;
Public function FindXMPCachedTagValueForImage (AImage: TImageItem; const AXmpTag: WideString; var AResult: WideString): Boolean;
Public function ItemHasXMPProperty (AItem: TCatalogItem; AXmpTag: WideString): Boolean;
Public function ImageHasXMPProperty (AImage: TImageItem; const AXmpTag: WideString): Boolean;
Public function ReadCachedXMPForItem (AItem: TCatalogItem; AResult: TidElement): Boolean;
Public function WriteCachedXMPForItem (AItem: TCatalogItem; ACachedValues: TidElement): Boolean;
Public function ReadCachedDataForItem (AItem: TCatalogItem; AResult: TidElement): Boolean;
Public function ReadCachedDataForItemsInTempList (AItems: TCatalogItems; AResult: TidElement; AContentType: WideString = ''): Boolean;
Public function ReadCachedDataForItemsInTempListIntersected (AItems: TCleanCatalogItems; AResult: TidElement; AContentType: WideString = ''): Boolean;
Public function WriteCachedDataForItem (AItem: TCatalogItem; ACachedValues: TidElement; ADeleteKind: TSearchDataDeleteKind = sddkAll): Boolean;
Public procedure BuildSearchData;
Public procedure BuildFilePathCache;
Public procedure BuildPropCache;
Public procedure BuildSimilarityData;
Public procedure LoadCatalogCrossPlatformItems;
Public procedure SaveCatalogCrossPlatformItems;
Public procedure ResetCrossPlatformMediumItems;
Public function UpdateSearchData (const ARelatedGUID: String; const AContentType, AContentGroup, AContentValue: WideString): Boolean;
Public function DeleteSearchData (const ARelatedGUID: String; const AContentType: WideString = ''; const AContentGroup: WideString = ''): Boolean;
Public function WriteTextSearchData (const ARelatedGUID: String; const AContentType: WideString; ASearchValues: TxomStrings; const ADeleteKind: TSearchDataDeleteKind = sddkAll): Boolean;
Public function WriteSearchData (const ARelatedGUID: String; ASearchValues: TidElement; const ADeleteKind: TSearchDataDeleteKind = sddkAll): Boolean;
Public function AddCollection (ACollection: TImageCollection): Boolean;
Public function RemoveImagesInCollection (ACollection: TImageCollection): Boolean;
Public function FindImage (AImage: TImageItem; AResult: TCatalogItem; const WithDefinition: Boolean = False): Boolean;
Public function FindFileName (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItem; WithDefinition: Boolean = False): Boolean;
Public function FindFileQuick (const AFileName: WideString; AResult: TCatalogItem; ACheckVersionToo: Boolean): Boolean;
Public function FindFilesQuick (const AFileName: WideString; AResult: TCatalogItems; ACheckVersionToo: Boolean): Boolean;
Public function FindVersion (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItem): Boolean;
Public function FindVersionInMain (AMain: TCatalogItem; const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItem): Boolean;
Public function FindVersionItemInMain (AMain: TCatalogItem; AItem: TCatalogItem; AResult: TCatalogItem): Boolean;
Public function FindVersionTypeInMain (AMain: TCatalogItem; AType: TCatalogPlaceHolderType; AResult: TCatalogItem): Boolean;
Public function FindVersionTypeInMainImage (AMain: TImageItem; AType: TCatalogPlaceHolderType; AResult: TCatalogItem): Boolean;
Public function FindVersionItem (AItem: TCatalogItem; AResult: TCatalogItem): Boolean;
Public function FindVersionImage (AImage: TImageItem; AResult: TCatalogItem): Boolean;
Public function FindItemCombined (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItem; WithDefinition: Boolean = False; AMainVersionIfVersion: Boolean = False; AMainPlaceHolderType: TCatalogPlaceHolderType = vptNone): Boolean;
Public function FindItemCombined2 (AItem: TCatalogItem; AResult: TCatalogItem; AMainVersionIfVersion: Boolean = False; AMainPlaceHolderType: TCatalogPlaceHolderType = vptNone): Boolean;
Public function FindImageCombined (AImage: TImageItem; AResult: TCatalogItem; AMainVersionIfVersion: Boolean = False; AMainPlaceHolderType: TCatalogPlaceHolderType = vptNone): Boolean;
Public function FindItemSyncStateCombinedByGUID(const AGUID: String; var ASyncState: TSyncState): Boolean;
Public function FindMainVersion (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItem): Boolean;
Public function FindMainVersionForItem (AItem: TCatalogItem; AResult: TCatalogItem): Boolean;
Public function FindMainVersionForItemGUID (const AVersionGUID: String; AResult: TCatalogItem): Boolean;
Public function EnumVersionForPlaceHolderInMain (AMainItem: TCatalogItem; APlaceHolder: TCatalogPlaceHolder; AResult: TCatalogItem): Boolean;
Public function EnumVersionForMainVersionInCollection (AMainItem: TCatalogItem; ACollection: TImageCollection; AResult: TCatalogItem): Boolean;
Public function EnumPlaceHolderForVersionInMain (AMainItem: TCatalogItem; AVersion: TCatalogItem; AResult: TCatalogPlaceHolder): Boolean;
Public function EnumPlaceHoldersForVersionInMain (AMainItem: TCatalogItem; AVersion: TCatalogItem; AResult: TCatalogPlaceHolders): Boolean;
Public function RemoveVersionForPlaceHolderInMain (AMainItem: TCatalogItem; APlaceHolder: TCatalogPlaceHolder): Boolean;
Public function RemovePlaceHoldersOfVersion (AVersion: TCatalogItem): Boolean;
Public function AssignPlaceHolderToVersionInMain (AMainItem, AVersion: TCatalogItem; APlaceHolder: TCatalogPlaceHolder): Boolean;
Public function AssignPlaceHolderTypeToVersionInMain (AMainItem, AVersion: TCatalogItem; APlaceHolderType: TCatalogPlaceHolderType): Boolean;
Public procedure SwapPlaceHoldersForItem (AMainItem: TCatalogItem; ASourcePH, ATargetPH: TCatalogPlaceHolder);
Public procedure SwapPlaceHoldersForImage (AImage: TImageItem; ASourcePH, ATargetPH: TCatalogPlaceHolder);
Public function FindMainVersionForImage (AImage: TImageItem; AResult: TCatalogItem): Boolean;
Public function RelocateFile (const AOldFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; const ANewFileName: WideString; AResult: TCatalogItem): Boolean;
Public function RelocateFolder (const AOldFolderName, ANewFolderName: WideString; var ACount: Integer): Boolean;
Public function RelocateFilePath (AOldPath: TCatalogFilePath; const ANewFolderName: WideString; var ACount: Integer): Boolean;
Public function DeleteCatItem (AItem: TCatalogItem; DeleteIfIsVersionToo: Boolean = True): Boolean;
Public function DeleteItem (AImageItem: TImageItem; DeleteIfIsVersionToo: Boolean = True): Boolean;
Public function DeleteFileName (const AFileName: WideString; DeleteIfIsVersionToo: Boolean = True): Boolean;
Public function DeleteFileItem (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; const DeleteIfIsVersionToo: Boolean = True): Boolean;
Public procedure DeleteItemsInTempList (AItems: TCatalogItems);
Public function DeleteFolder (const AFolderName: WideString): Boolean;
Public procedure RemoveProp (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AProp: TCatalogItemProp);
Public procedure RemoveRating (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer);
Public procedure RemoveLabel (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer);
Public function RenameFileName (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; const ANewFileName: WideString; AResult: TCatalogItem): Boolean;
Public function RenameItem (AItem: TCatalogItem; const ANewFileName: WideString): Boolean;
Public function RenameImage (AImage: TImageItem; const ANewFileName: WideString): Boolean;
Public function FindRatingFor (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer): Integer;
Public function FindLabelFor (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer): WideString;
Public procedure UpdateCollectionDetails (ACollection: TImageCollection);
Public function MoveCollection (ACollection: TImageCollection; const ANewParentGUID: String): Boolean;
Public function CopyCollection (ACollection: TImageCollection; const ANewParentGUID: String): Boolean;
Public function GalleryExists (const AGalleryGUID: String): Boolean;
Public function GalleryHasCollections (const AGalleryGUID: String): Boolean;
Public function ModelHasCollections (const AModelGUID: String): Boolean;
Public function CollectionHasCollections (const ACollectionGUID: String): Boolean;
Public function CollectionHasItems (const ACollectionGUID: String): Boolean;
Public procedure LockCollection (ACollection: TImageCollection; ALockState: Boolean);
Public function ItemInCollection (AItem: TCatalogItem; AColl: TImageCollection): Boolean;
Public function CreateThumbForObjectFromItem (ACatItem: TCatalogItem; ACatObject: TObject; AThumbSettings: TResizeSettings = nil): String;
Public function EnumItemsImport(AImport: TCatalogImport; AResult: TCatalogItems): Boolean;
Public function EnumItemsWithStateObject (AState: TCatalogStateObject; AResult: TCatalogItems): Boolean;
Public function EnumItemsWithState (AState: TCatalogState; AResult: TCatalogItems): Boolean;
Public function EnumItemsCollection (ACollection: TImageCollection; AResult: TCatalogItems; const ARecursive: Boolean; const AVersionPHGUID: String = AlbumPlaceHolderGUID): Boolean;
Public function EnumItemsGallery (AGallery: TImageGallery; AResult: TCatalogItems; const AVersionPHGUID: String = AlbumPlaceHolderGUID): Boolean;
Public function EnumItemsAlbum (AAlbum: TImageModel; AResult: TCatalogItems; const AVersionPHGUID: String = AlbumPlaceHolderGUID): Boolean;
Public function EnumItemsForCatalogPeriod (ACatPeriod: TCatalogPeriod; AResult: TCatalogItems; ARecursive: Boolean): Boolean;
Public function EnumItemsForPeriod (APeriod: TPeriod; AResult: TCatalogItems): Boolean;
Public function EnumItemsForVersionPlaceHolder (ACatPlaceHolder: TCatalogPlaceHolder; AResult: TCatalogItems): Boolean;
Public function EnumItemsForMetaItem (AMetaItem: TMetaSchemaItem; AResult: TCatalogItems): Boolean;
Public function EnumItemsForMetaItemOccurrence (AOccurrence: TMetaSchemaItemOccurence; AResult: TCatalogItems): Boolean;
Public procedure EnumAreaItems (const AText: WideString; AResult: TCatalogItems);
Public procedure EnumPropsForParent (const AParentGUID: String; AResult: TCatalogItemProps; const ARecursive: Boolean = False; const AWithCount: Boolean = False);
Public function EnumParentsForProp (AProp: TCatalogItemProp; AParents: TCatalogItemProps; ACatAsProp: Boolean = True): Boolean;
Public function EnumPropsWithTextExpansion(AResult: TCatalogItemProps): boolean;
Public function EnumSuggestionsForProps (AProps: TCatalogItemProps; AResult: TCatalogItemProps; const AMaxResults: Integer = 10; const AWithCounts: Boolean = False): Boolean;
Public function EnumSuggestionsForProp (AProp: TCatalogItemProp; AResult: TCatalogItemProps; const AMaxResults: Integer = 10; const AWithCounts: Boolean = False): Boolean;
Public function EnumSuggestionsForItem (AItem: TCatalogItem; AResult: TCatalogItemProps; const AMaxResults: Integer = 10; const AWithCounts: Boolean = False): Boolean;
Public function EnumSuggestionsForItemsInTempList (AItems: TCatalogItems; AResult: TCatalogItemProps; const AMaxResults: Integer = 10; const AWithCounts: Boolean = False): Boolean;
Public function EnumSuggestionsForImage (AImage: TImageItem; AResult: TCatalogItemProps; const AMaxResults: Integer = 10; const AWithCounts: Boolean = False): Boolean;
Public function EnumPropsRelatedToProps (AProps: TCatalogItemProps; AResult: TCatalogItemProps; const AWithCounts: Boolean = False): Boolean;
Public function EnumPropsRelatedToProp (AProp: TCatalogItemProp; AResult: TCatalogItemProps; const AWithCounts: Boolean = False): Boolean;
Public procedure EnumRelationPropsForParent (const AParentGUID: String; AResult: TCatalogItemProps; const ARecursive: Boolean = False; const AWithCount: Boolean = False);
Public function EnumRelationBetweenProps (AProp1, AProp2: TCatalogItemProp; AResult: TCatalogPropRelation): Boolean;
Public procedure EnumRelationsForPropGUID (const AGUID: String; AResult: TCatalogPropRelations);
Public procedure EnumRelationsForItemGUIDWithPropGUID (const AItemGUID, APropGUID: String; AResult: TCatalogPropRelations);
Public procedure EnumRelationsForProp (AProp: TCatalogItemProp; AResult: TCatalogPropRelations);
Public procedure EnumRelationsForItemWithProp(AItem: TCatalogItem; AProp: TCatalogItemProp; AResult: TCatalogPropRelations);
Public procedure UpdateRelation (ARel: TCatalogPropRelation);
Public procedure DeleteRelation (ARel: TCatalogPropRelation);
Public function EnumRelation (const AGUID: String; AResult: TCatalogPropRelation): Boolean;
Public function CountRating (const ARating: Integer): Integer;
Public function CountLabel (const ALabel: WideString): Integer;
Public procedure EnumLastUsedProps (AProps: TCatalogItemProps; const ACount: Integer = 5; const AWithCounts: Boolean = True);
Public function EnumProp (const AGUID: String; AProp: TCatalogItemProp; const AWithCount: Boolean = False): Boolean;
Public function EnumPropName (const AParentGUID: String; const AName: WideString; AProp: TCatalogItemProp; const AWithSynonyms: Boolean = False): Boolean;
Public procedure EnumAllItems (ACatalogItems: TCatalogItems);
Public procedure EnumAllItemGUIDs (ACatalogItems: TCleanCatalogItems);
Public procedure EnumAllOutOfSyncItems (ACatalogItems: TCatalogItems);
Public procedure EnumItemsWithoutThumbs (ACatalogItems: TCleanCatalogItems; AMaxResults: Integer = -1);
Public function CountItemsWithoutThumbs: Integer;
Public procedure EnumThumbsWithoutItems (AResult: TThumbItems);
Public function CountThumbsWithoutItems: Integer;
Public procedure EnumItemsWithoutSearchData(ACatalogItems: TCleanCatalogItems; AMaxResults: Integer = -1);
Public function CountItemsWithoutSearchData: Integer;
Public procedure EnumAllBookmarkedItems (ACatalogItems: TCatalogItems);
Public procedure EnumPropsForItem (AItem: TCatalogItem; AResult: TCatalogItemProps; AQuick: Boolean; AIncludeAutoCatalog: Boolean = True; AIncludePrivate: Boolean = True);
Public procedure EnumPropsForImage (AImage: TImageItem; AResult: TCatalogItemProps; AQuick: Boolean; AIncludeAutoCatalog: Boolean = True);
Public procedure EnumPropsForItemsInTempList (AItems: TCatalogItems; AResult: TCatalogItemProps; AQuick: Boolean; AIncludeAutoCatalog: Boolean = True; AWithCounts: Boolean = False);
Public procedure EnumPropsForItemsInGroup (AGroup: TCatalogPropGroup; AResult: TCatalogItemProps; AQuick: Boolean; AIncludeAutoCatalog: Boolean = True; AWithCounts: Boolean = False);
Public procedure EnumCollectionsForItemsInTempList (AItems: TCatalogItems; AResult: TImageCollections);
Public procedure EnumPropsForMainItem (AItem: TCatalogItem; AResult: TCatalogItemProps; AQuick: Boolean; AIncludeAutoCatalog: Boolean = True);
Public procedure EnumPropsInParentForItem (AItem: TCatalogItem; const AParentGUID: String; AResult: TCatalogItemProps; const AQuick: Boolean; const AIncludeAutoProps: Boolean = True; const AIncludePrivateProps: Boolean = True; const AHierarchical: Boolean = False; const AMaxResults: Integer = -1);
Public function EnumCollectionDetails (ACollection: TImageCollection): Boolean;
Public function EnumCollectionByGUID(const AGUID: String; AResult: TImageCollection): Boolean;
Public procedure EnumAllProps (AProps: TCatalogItemProps);
Public function EnumAllPropsWithShortcuts (AProps: TCatalogItemProps): Boolean;
Public function EnumAllPropsWithShortcut (AShortcut: TShortCut; AResult: TCatalogItemProps): Boolean;
Public function EnumAllPropsWithGPS (AProps: TCatalogItemProps; AMinimumRadius: Integer = -1): Boolean;
Public function EnumPropsForGeoLocation(AGPSLat: Double; AGPSLon: Double; AGPSRadiusMeters: Double; AResult: TCatalogItemProps; AMaxResults: Integer = 0): Boolean;
Public function EnumPropsOverlappingGeoLocation(AGPSLat: Double; AGPSLon: Double; AResult: TCatalogItemProps; AMaxResults: Integer = 0): Boolean;
Public function EnumPropsInRadiusForLocs (ALocs: TGPSLocations; ARadiusMeters: Double; AResult: TCatalogItemProps; AMaxResults: Integer = 0): Boolean;
Public function EnumPropsInRadius (AGPSLat: Double; AGPSLon: Double; ARadiusMeters: Double; AResult: TCatalogItemProps; AMaxResults: Integer = 0): Boolean;
Public function PropOverlapsGeoLocation(AProp: TCatalogItemProp; AGPSLat: Double; AGPSLon: Double): Boolean;
Public function PropGUIDOverlapsGeoLocation(const AGUID: String; AGPSLat: Double; AGPSLon: Double): Boolean;
Public function EnumItemsForGeoLocation(AGPSLat: Double; AGPSLon: Double; AGPSRadiusMeters: Double; AResult: TCatalogItems; AMaxResults: Integer = 0): Boolean;
Public procedure FindUnPropped (AResult: TCatalogItems; AModel: TImageModel = nil; AGallery: TImageGallery = nil; ACollection: TImageCollection = nil; AVersionPHGUID: String = AlbumPlaceHolderGUID);
Public function ItemDataHashKey(AItem: TCatalogItem; const ADataName: WideString): String;
Public procedure UpdateDataHashKey(AItem: TCatalogItem; const ADataName: WideString; const AHash: String);
Public function GUIDHasData (const AGUID: String; const ADataName: WideString): Boolean;
Public function EnumGUIDDatas (const AGUID: String; const ADataName: WideString; AResult: TxomResources): Boolean;
Public function EnumGUIDData (const AGUID: String; const ADataName: WideString; AResult: TxomResource): Boolean;
Public function EnumGUIDDataDetails (const AGUID: String; const ADataName: WideString; AResult: TxomResource): Boolean;
Public function UpdateGUIDData (const AGUID: String; const ADataName: WideString; AResult: TxomResource): Boolean;
Public function StoreGUIDData (const AGUID: String; const ADataName: WideString; AData: TxomResource): Boolean;
Public function EnumData (AData: TxomResource): Boolean;
Public function UpdateData (AData: TxomResource): Boolean;
Public function DeleteData (AData: TxomResource): Boolean;
Public function RemoveGUIDData (const AGUID: String; const ADataName: WideString): Boolean;
Public function RenameGUIDData (const AGUID: String; const AOldDataName, ANewDataName: WideString): Boolean;
Public function EnumGUIDNamedDataDetails (const AGUID: String; const ADataName: WideString; AResult: TxomResource): Boolean;
Public function EnumGUIDDataStream (const AGUID: String; const ADataName: WideString; AResult: TStream): Boolean;
Public function StoreGUIDDataStream (const AGUID: String; const ADataName: WideString; AData: TStream): Boolean;
Public function DeleteGUIDDataStream (const AGUID: String; const ADataName: WideString): Boolean;
Public function ItemHasData (AItem: TCatalogItem; const ADataName: WideString): Boolean;
Public function EnumItemData (AItem: TCatalogItem; const ADataName: WideString; AResult: TxomResource): Boolean;
Public function StoreItemData (AItem: TCatalogItem; const ADataName: WideString; AData: TxomResource): Boolean;
Public function RemoveItemData (AItem: TCatalogItem; const ADataName: WideString): Boolean;
Public procedure EnumAllItemsWithData (ACatalogItems: TCatalogItems; const ADataName: WideString; AMarked, AUnMarked: Boolean);
Public function LoadOptions (AOptions, AUserOptions: TOptions): Boolean; virtual;
Public function SaveOptions (AOptions, AUserOptions: TOptions): Boolean; virtual;
Public procedure StoreMultiUserNotification (ANot: TidMultiUserNotificationItem);
Public procedure EnumMultiUserNotificationsSince(ATimestamp: TDateTime; AResult: TidMultiUserNotificationItems);
Public procedure CleanUpMultiUserNotifications;
Public procedure StoreJob(AJob: TJob);
Public procedure ResetLockedJobs;
Public procedure CleanupJobs;
Public procedure FinishUnfinishedJobs;
Public function DeleteJob(const AGUID: String): Boolean;
Public function JobExists(const AGUID: String): Boolean;
Public function JobIsFinished(const AGUID: String): Boolean;
Public function JobTimeFrame(const AGUID: String): TJobRepeatTimeFrame;
Public function CreateJobForGUID(const AGUID: String; const AJobTask: TJobTask; const AData: TidElement; const AChainLinkSize: Integer; const AJobGroupGUID: String; const APriority: TJobPriority): String;
Public function CreateJobForItem(const AItem: TCleanCatalogItem; const AJobTask: TJobTask; const AData: TidElement; const AChainLinkSize: Integer; const AJobGroupGUID: String; const APriority: TJobPriority): String;
Public function CreateJobForItems(const AItems: TCleanCatalogItems; const AJobTask: TJobTask; const AData: TidElement; AChainLinkSize: Integer; const AJobGroupGUID: String; const APriority: TJobPriority): String;
Public function CreateJobForItemsList(const AList: TList; const AJobTask: TJobTask; const AData: TidElement; const AChainLinkSize: Integer; const AJobGroupGUID: String; const APriority: TJobPriority): String;
Public function EnumLockedJobs(const AUserGUID: String; AJobs: TJobs): Boolean;
Public function EnumNextJob(const AUserGUID: String; AJob: TJob): Boolean;
Public function EnumJob(const AGUID: String; AJob: TJob): Boolean;
Public function EnumJobs(AJobs: TJobs): Boolean;
Public function EnumJobsWithTimeFrame(ATimeFrame: TJobRepeatTimeFrame; AResult: TJobs): Boolean;
Public function EnumJobGUIDsWithTimeFrame(ATimeFrame: TJobRepeatTimeFrame; AResult: TStrings): Boolean;
Public function ResetJob(AJob: TJob): Boolean;
Public function ChangeJobEnabled(const AGUID: String; ANewState: Boolean): Boolean;
Public function EnumJobGroup(const AGUID: String; AJobGroup: TJobGroup): Boolean;
Public procedure HandleJob(AJob: TJob; AASync: Boolean = True);
Public function CountJobsForJobGroup(const AGroupGUID: String): Integer;
Public function IsJobGroupStarted(const AGroupGUID: String): Boolean;
Public function DeleteFacesForItem(AItem: TCatalogItem): Boolean;
Public function StoreFacesForItem(AItem: TCatalogItem; AFaces: TxomFaces): Boolean;
Public function ItemHasFaces(AItem: TCatalogItem): Boolean;
Public function ItemGUIDHasFaces(const AGUID: String): Boolean;
Public function EnumItemXMPDataHashKey (AItem: TCatalogItem): String;
Public procedure UpdateItemXMPDataHashKey (AItem: TCatalogItem; const AHash: String);
Public function ItemHasXMPData (AItem: TCatalogItem): Boolean;
Public function ImageHasXMPData (AImage: TImageItem): Boolean;
Public function EnumItemXMPData (AItem: TCatalogItem; AXmp: TObject; var AState: Boolean; const ASchemaURL: WideString = ''): Boolean;
Public function EnumImageXMPData (AImage: TImageItem; AXmp: TObject; var AState: Boolean): Boolean;
Public function ItemStoreXMPData (AItem: TCatalogItem; AXmp: TObject): Boolean;
Public function RemoveItemXMPData (AItem: TCatalogItem): Boolean;
Public procedure EnumAllItemsWithXMPData (ACatalogItems: TCatalogItems; AMarked, AUnMarked: Boolean);
Public function EnumDetailsForMedium (const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; var AAlternateName: WideString; var ARootGUID: String): boolean;
Public function UpdateMedium (AMedium: TCatalogMedium): Boolean;
Public function UpdateMediumDetails (AOld, ANew: TCatalogMedium): Boolean;
Public function DeleteMedium (const AGUID: String): Boolean;
Public function CountForMedium (AMedium: TCatalogMedium): Integer;
Public function RequestMedium (AImage: TImageItem): Boolean;
Public function IsExistingPropName (const AParentGUID: String; const APropName: WideString; AProp: TCatalogItemProp = nil): Boolean;
Public procedure ReConstructFromIPTC (const AFileName: WideString);
Public function ReConstructFromXMP (const AFileName: WideString; ASyncSettings: TXMPSyncReadSettings; AWithTags: Boolean = True): Boolean;
Public function ReConstructMainItemICSFromXMPObject (AItem: TCatalogItem; AXmpObject: TObject): Boolean;
Public procedure ReConstructFromKeywords (ACatItem: TCatalogItem; const AParentPropGUID: String; const AKeywords: WideString; const ADotted: Boolean; const ADottedSeparator: WideString = '.'; const ASyncType: TXMPSyncKeywordSetting = ksReplace);
Public procedure ReConstructFromXMPKeywords (const AFileName: WideString; const AParentPropGUID: String; ASyncSettings: TXMPSyncReadSettings; const AImportAllXMP: Boolean = False);
Public procedure ReConstructFromXMPObjectKeywords (ACatItem: TCatalogItem; AXmpObject: TObject; ASyncSettings: TXMPSyncReadSettings; const AImportAllXMP: Boolean = False);
Public function ShouldCompact: Boolean;
Public procedure CompactAndRepairDatabase;
Public procedure UpdateLastCompactStamp;
Public procedure ReadRowsAffectedList;
Public procedure UpdateRowsAffectedList;
Public procedure ExportStructureForCategories(AResult: TCatalogPropGroup; ACats: TCatalogPropCategories = nil);
Public procedure ImportStructureForCategories(AGroup: TCatalogPropGroup; AImportStyle: TImportStyle);
Public procedure DeletePropAndFree (AProp: TCatalogItemProp);
Public procedure DeleteProp (AProp: TCatalogItemProp);
Public procedure UpdateItemFromImageItem (AImageItem: TImageItem; CreateIfNotExists: Boolean);
Public procedure UpdateItemSimilarityCode (AItem: TCatalogItem; const ASimilarityCode: String);
Public procedure UpdateItemClassification (AItem: TCatalogItem; const AAIClassification: WideString);
Public procedure UpdateItemDetails (AItem: TCatalogItem; const ADims: WideString; const ASimilarityCode: String; const AAvgColor: String; const ARatio, ASharpness: Double; const AColorChannel: TColorChannel; const AAIClassification: WideString);
Public procedure UpdateImageDetails (AImageItem: TImageItem; const ADims: WideString; const ASimilarityCode: String; const AAvgColor: String; const ARatio, ASharpness: Double; const AColorChannel: TColorChannel; const AAIClassification: WideString);
Public procedure StoreModelToDatabase (AModel: TImageModel);
Public procedure ReadModelFromDatabase (AModel: TImageModel; AWithStructure: Boolean; AWithContent: Boolean; ARecursiveCols: Boolean = True; ARecursiveLevels: Integer = -1; AAsFlat: Boolean = False; AFlatResult: TImageCollection = nil; AVersionPHGUID: String = '');
Public procedure DeleteModelFromDatabase (AModel: TImageModel);
Public procedure UpdateModelToDatabase (AModel: TImageModel);
Public function PropListForItem (AItem: TCatalogItem): WideString;
Public procedure ReadGalleryFromDatabase (AGallery: TImageGallery; const AWithContent: Boolean; const AAsFlat: Boolean = False; AFlatResult: TImageCollection = nil; const AVersionPHGUID: String = ''; const ARecursiveCols: Boolean = True; const ARecursiveLevels: Integer = -1);
Public procedure ReadCollectionFromDatabase (ACollection: TImageCollection; const AWithContent: Boolean; const AVersionPHGUID: String = ''; const AAsFlat: Boolean = False);
Public function CountModels: Integer;
Public procedure EnumModels (AResult: TImageModelItems; const AWithStructure: Boolean = False; const AWithContent: Boolean = False; const AAllowVirtual: Boolean = False);
Public procedure EnumTypedModels (const ATypes: TCatalogPropAccessibilities; AResult: TImageModels; const AAllowVirtual: Boolean = False);
Public function EnumModel(const AGUID: String; AResult: TImageModel): Boolean;
Public function EnumModelNamed(const AName: WideString; AResult: TImageModel): Boolean;
Public function NewManualOrderForModel: Integer;
Public function PreviousManualOrderForModel (const AModelGUID: String): Integer;
Public function NextManualOrderForModel (const AModelGUID: String): Integer;
Public procedure EnumVirtualModel(AResult: TImageModel);
Public procedure EnumImageBasket(AResult: TImageCollection);
Public procedure EnumSharesBasket(AResult: TImageCollection);
Public function IsSharedCollection(AGUID: String): Boolean;
Public function FindModelsByName(const AName: WideString; AResult: TImageModelItems; const ASearchStyle: TSearchStyle = ssExact): boolean;
Public procedure EnumModelGalleries (AModel: TImageModel; AResult: TImageGalleries);
Public function EnumModelGallery (AResult: TImageGallery): Boolean;
Public function EnumModelGalleryGUID (const AGUID: String; AResult: TImageGallery): Boolean;
Public function EnumModelGalleryNamed (const AName: WideString; AModel: TImageModel; AResult: TImageGallery): Boolean;
Public function EnumGalleryCollection (AResult: TImageCollection; const AWithCount: Boolean = False): Boolean;
Public procedure EnumGalleryCollections (AGallery: TImageGallery; AResult: TImageCollections);
Public function EnumModelCollection (AResult: TImageCollection): Boolean;
Public procedure EnumModelCollections (AModel: TImageModel; AResult: TImageCollections);
Public function FindCollectionsByName(const AName: WideString; AResult: TImageCollections; const ASearchStyle: TSearchStyle = ssExact): boolean;
Public function CollectionHasSubs (AColl: TImageCollection): Boolean;
Public function NewParentOrderForCollection (const AParentGUID: String): Integer;
Public function PreviousParentOrderForCollection (const AColGUID: String): Integer;
Public function NextParentOrderForCollection (const AColGUID: String): Integer;
Public function NewItemOrderForCollection (const AColGUID: String): Integer;
Public function PreviousItemOrderForCollection (const AColGUID, AItemGUID: String): Integer;
Public function NextItemOrderForCollection (const AColGUID, AItemGUID: String): Integer;
Public function EnumItemOrderForCollection (const AColGUID, AItemGUID: String): Integer;
Public procedure EnumCollectionCollections (ACollection: TImageCollection; AResult: TImageCollections);
Public procedure EnumCollectionsForParent( AParentGUID: String; AResult: TImageCollections; const ARecursive: Boolean = False);
Public function CountCollectionsForParent ( AParentGUID: String): Integer;
Public procedure EnumAccessCollections(const AAccessTypes: TCatalogPropAccessibilities; AResult: TImageCollections);
Public procedure EnumTypedCollections(const ATypes: TImageCollectionTypes; AResult: TImageCollections);
Public procedure EnumDynamicCollections(AResult: TImageCollections);
Public procedure EmptyCollection(ACollection: TImageCollection; const ARecursive: Boolean);
Public procedure EnumItemsInCollection (ACollection: TImageCollection; AResult: TCatalogItems);
Public procedure EnumCollectionContent (ACollection: TImageCollection; AWithContent: Boolean; const ARecursive: Boolean = True; const ARecursiveLevels: Integer = -1; const AVersionPHGUID: String = ''; const ABufferInfo: Boolean = False; const AMax: Integer = -1);
Public function IsModelCollection (ACollection: TImageCollection): Boolean;
Public procedure StoreItemToCollection (AItem: TCatalogItem; ACollection: TImageCollection; ASyncSettings: TXMPSyncReadSettings; const AStoreMeta: Boolean = False);
Public procedure StoreItemsToCollection (AItems: TCatalogItems; ACollection: TImageCollection);
Public procedure StoreItemsInTempListToCollection (AItems: TCatalogItems; AColl: TImageCollection);
Public procedure RemoveItemsInTempListFromCollection (AItems: TCatalogItems; AColl: TImageCollection);
Public procedure AddImageToCollection (AItem: TImageItem; ACollection: TImageCollection; ASyncSettings: TXMPSyncReadSettings; AStoreMeta: Boolean = False);
Public procedure AddImageToCollections (AItem: TImageItem; ACollections: TImageCollections; ASyncSettings: TXMPSyncReadSettings; AStoreMeta: Boolean = False);
Public procedure RemoveImageFromCollection (AItem: TImageItem; ACollection: TImageCollection);
Public procedure RemoveItemFromCollection (ACatItem: TCatalogItem; ACollection: TImageCollection);
Public procedure RemoveItemsFromCollection (ACatItems: TCatalogItems; ACollection: TImageCollection);
Public procedure UpdateCollectionImage (AItem: TImageItem; ACollection: TImageCollection; AColOrder: Integer = -1);
Public procedure UpdateCollectionOrders (ACollection: TImageCollection);
Public procedure StoreCollection (const AGalleryGUID: String; const AParentGUID: String; ACollection: TImageCollection; AWithContent: Boolean; AWithMeta: Boolean; ASyncSettings: TXMPSyncReadSettings; AProgress: TNotifyTextEvent2 = nil);
Public procedure StoreCollectionToParent (const AGalleryGUID: String; const AParentGUID: String; ACollection: TImageCollection);
Public procedure StoreCollectionToParentSimple (const AParentGUID: String; ACollection: TImageCollection);
Public procedure UpdateCollection (ACollection: TImageCollection);
Public procedure DeleteCollection (ACollection: TImageCollection);
Public function EnumCollectionItem (const ACollectionGUID: String; const AItemGUID: String; AResult: TImageItem): Boolean;
Public procedure UpdateGalleryDetails (const AModelGUID: String; AGallery: TImageGallery);
Public procedure UpdateGallery (AGallery: TImageGallery);
Public procedure SortGalleriesForModel (AModel: TImageModel);
Public procedure SortCollectionsForGallery (AGallery: TImageGallery);
Public procedure SortCollectionsForCollection (ACollection: TImageCollection);
Public procedure StoreGallery (const AModelGUID: String; AGallery: TImageGallery; const AWithContent: Boolean);
Public procedure DeleteGallery (AGallery: TImageGallery);
Public function ModelContainsItem (AModel: TImageModel; AItem: TCatalogItem): Boolean;
Public function ModelContainsCollection (AModel: TImageModel; ACollection: TImagecollection): Boolean;
Public function CollectionContainsItem (const ACollectionGUID: String; AItem: TCatalogItem; const ARecursive: Boolean = True): Boolean;
Public function CollectionIsChildOf (AColl: TImageCollection; const AParentGUID: String; const Hierarchical: Boolean = False): Boolean;
Public function EnumCollectionsForItem (AItem: TCatalogItem; AResult: TImageCollections): Boolean;
Public function EnumCollectionsForItemGUID (const AItemGUID: String; AResult: TImageCollections): Boolean;
Public function EnumNamedCollectionInParent (const AName: WideString; const AParentGUID: String; AResult: TImageCollection): Boolean;
Public function EnumCollectionsForImage (AImage: TImageItem; AResult: TImageCollections): Boolean;
Public function EnumParentCollectionForCollection (ACollection: TImageCollection; AResult: TImageCollection): Boolean;
Public function EnumParentGUIDForCollection (ACollection: TImageCollection): String;
Public function EnumTopCollectionForCollection (ACollection: TImageCollection; AResult: TImageCollection): Boolean;
Public function EnumGalleryForCollection (ACollection: TImageCollection; AResult: TImageGallery): Boolean;
Public function EnumModelForCollection (ACollection: TImageCollection; AResult: TImageModel): Boolean;
Public function EnumModelForGallery (AGallery: TImageGallery; AResult: TImageModel): Boolean;
Public function ItemCollectionPath (ACollection: TImageCollection; const ASeparator: WideString = '.'; const AReferred: Boolean = False): WideString;
Public function PathNameForCollection (ACollection: TImageCollection; const ASeparator: WideString = '.'; const AReferred: Boolean = False): WideString;
Public procedure PathNameForCollections (ACollections: TImageCollections; const ASeparator: WideString = '.'; const AReferred: Boolean = False);
Public function ParentGUIDsForCollection (ACollection: TImageCollection; AParentsGUIDs: TStrings): Boolean;
Public function ItemGalleryPath (AGallery: TImageGallery; const ASeparator: WideString = '.'): WideString;
Public function PathNameForGallery (AGallery: TImageGallery; const ASeparator: WideString = '.'): WideString;
Public function EnumCollectionSubs (const ACollectionGUID: String; ASubs: TStringList): Boolean;
Public function EnumCollectionParents (const ACollectionGUID: String; AParents: TStringList): Boolean;
Public function EnumCollectionParentCollections (const ACollectionGUID: String; AParents: TImageCollections): Boolean;
Public procedure AddItemComment (AItem: TCatalogItem; AComment: TCatalogItemComment);
Public procedure AddImageComment (AImage: TImageItem; AComment: TCatalogItemComment);
Public function EnumCommentsForItem (AItem: TCatalogItem; AResult: TCatalogItemComments): Boolean;
Public function EnumCommentsForImage (AImage: TImageItem; AResult: TCatalogItemComments): Boolean;
Public function RemoveComment (AComment: TCatalogItemComment): Boolean;
Public function RemoveCommentGUID (const AGUID: String): Boolean;
Public function EnumCommentByGUID (const AGUID: String; AResult: TCatalogItemComment): Boolean;
Public function EnumCommentedItems (AResult: TCatalogItems; const AMaxLimit: Integer = -1): Boolean;
Public function EnumCommentedItemsSince (AResult: TCatalogItems; const AFromDate: TDateTime): Boolean;
Public function NewDataSet: TDBXOMClientDataSet;
Public procedure FreeDataSet (var ADataset: TDBXOMClientDataSet);
Public procedure StoreStreamAsBlob(ADataSet: TDBXOMClientDataSet; AField: TBlobField; AContent: TStream);
Public procedure ReadStreamFromBlob (ADataSet: TDBXOMClientDataSet; AField: TBlobField; AContent: TStream);
Public function ServerTimeStamp: TDateTime;
Public function RunSQLScript (AScript: TxomStrings): Boolean;
Public function PlaceHolderName (const APlaceHolder: TCatalogPlaceHolderType): WideString;
Public function IsFixedCategory (ACat: TCatalogPropCategory): Boolean;
Public function IsFixedCategoryGUID (const AGUID: String): Boolean;

Properties

Public property CatUser : TidUser read GetCatUser;
Public property TotalLabels: Integer read GetTotalLabels;
Public property TotalImages: Integer read GetTotalImages;
Public property EstimatedTotalImages: Integer read GetEstimatedTotalImages;
Public property TotalVersionSets: Integer read GetTotalVersionSets;
Public property TotalVersions: Integer read GetTotalVersions;
Public property TotalStacked: Integer read GetTotalStacked;
Public property TotalStacks: Integer read GetTotalStacks;
Public property ImportSessionCatalogGUID: String read GetImportSessionCatalogGUID;
Public property KeywordsGUID: String read GetKeywordsGUID;
Public property SQLDBLoginRegistryKey: String read GetSQLDBLoginRegistryKey;
Public property SQLDBServer: WideString read GetSQLDBServer;
Public property SQLDBName: WideString read GetSQLDBName;
Public property SQLDBNamePlain: WideString read GetSQLDBNamePlain;
Public property SQLDBFileName: WideString read GetSQLDBFileName;
Public property ThumbsDBFolder: WideString read GetThumbsDBFolder;
Public property Entities: TCatalogPropCategory read GetEntities;
Public property Styles: TCatalogPropCategory read GetStyles;
Public property Objects: TCatalogPropCategory read GetObjects;
Public property Places: TCatalogPropCategory read GetPlaces;
Public property Events: TCatalogPropCategory read GetEvents;
Public property Keywords: TCatalogPropCategory read GetKeywords;
Public property Dm: TDBXOMDataModule read FDm;
Public property Connection: TXOMConnection read GetConnection;
Public property CurrentUser: TidUser read GetCurrentUser;
Public property IsRestrictedUser: Boolean read GetIsRestrictedUser;
Public property PostCatalogActions: TCatalogActionsStringList read GetPostCatalogActions;
Public property LicenseClaimDurationMins: Double read FLicenseClaimDurationMins write FLicenseClaimDurationMins;
Published property CatalogItems : TCatalogItems read FCatalogItems write FCatalogItems;
Published property Categories : TCatalogPropCategories read FCategories write FCategories;
Published property Groups : TCatalogPropGroups read FGroups write FGroups;
Published property FilePaths : TCatalogFilePaths read FFilePaths write FFilePaths;
Published property PlaceHolders : TCatalogPlaceHolders read FPlaceHolders write FPlaceHolders;

Description

Fields

Public internal const cLiteLimit = 2500;
 
Public internal const cImageBasketPrefix = 'vc';
 
Public internal const cSharesBasketPrefix = 'shrs';
 
Public internal const cSharedCollectionMarker = 'share';
 
Public internal const cSyncBatchSize = 10000;
 
Public internal const cThumbBatchSize = 10000;

trivially chosen

Public internal const cUpdateSignatureBatchSize = 10000;

trivially chosen

Public internal const cCompactAfterRows = 2000000;

trivially chosen

Methods

Public constructor Create; reintroduce; virtual;
 
Public constructor CreateRegisterOwnedByThread; virtual;
 
Public procedure AfterConstruction; override;
 
Public procedure BeforeDestruction; override;
 
Public class procedure LoadApplicationSettingsFromOptions(AOptions: TOptions); virtual;
 
Public procedure InitGUIDs;

re-initialze the GUIDs for the main category classes like Entities, Keywords, Events, ...

Public function TotalRowsAffected: Int64;
 
Public function Login (const ADBName: WideString = ''): Boolean;
 
Public function CurrentUserCanSeeFullCatalog: Boolean;
 
Public function IsSQLite: Boolean;

is this a SQLite database (true/false)

Public function IsPostgreSQL: Boolean;

is this a PostgreSQL database (true/false)

Public function IsRestSQL: Boolean;

is this a RestSQL database (true/false)

Public function IsSQLServer: Boolean;

is this a SQLServer database (true/false)

Public function IsMySQL: Boolean;

is this a MySQL database (true/false)

Public function FullColumnList (const ATablePrefix: WideString = ''): WideString;

returns a comma separated list of table fields, relevant to retrieve a TCatalogItem

Public function IsValidPathString (const APathString: WideString): Boolean;
 
Public procedure CheckLiteRestriction(const ANumberToAdd: Integer);
 
Public function IsDefaultCatalogDir: Boolean;

is the current database in the default catalog folder? (SQLite only; always True for other database formats)

Public function NewCatalog (var ADBName: WideString): Boolean;

create a new catalog

Public procedure CloseCatalogDatabase;

close the catalog database. It will be re-opened automatically if needed

Public function CatalogDatabaseIsOpen: Boolean;

returns True or False, prepresenting the database open state

Public procedure CatalogDatabaseFileName (const AFileName: WideString);

change the catalog database file name (not used for SQLServer Editions)

Public procedure CatalogAlterDatabase;

update the catalog database to the latest version. There should never be a reason to call this directly

Public function CatalogFileName: WideString;

returns the catalog file name being used

Public function DBVersion: Integer;

returns the catalog database version number

Public procedure DBExecuteSQL (const ASql: WideString);

execute a plain SQL-statement against the catalog database. Use with care.

Public function ChangePassword (AUser: TidUser; const ANewPassword: WideString): Boolean;
 
Public function CreateSqlDatabase (var ADBServer: WideString; var ADBPort: Integer; var ADBName: WideString): Boolean;
 
Public procedure ExportToFile(const AFileName: WideString);
 
Public procedure ImportFromFile(const AFileName: WideString);
 
Public function LicenseValidityPeriodString(const APeriodMins: Double): AnsiString;
 
Public function LicenseValidityPeriodStringToDateTime( AStr: String): TDateTime;
 
Public function LicenseValidityPeriodStringIsValid(const AStr: String): Boolean;
 
Public procedure Locked_HandleLicensePoolCheck(Sender: TObject; ADataset: TDBXOMClientDataSet; AData: TidElement);
 
Public function HandleLicensePoolCheck(ALicRes: TxomResource; const ALicType: TLicenseType; const AAllowTrial: Boolean; var AErrorLine1: WideString; var AErrorLine2: WideString): Boolean;
 
Public function AcquireLicense(ALicRes: TxomResource; const ALicType: TLicenseType; const AAllowTrial: Boolean): Boolean;
 
Public function RefetchLicenseGUID(ALicRes: TxomResource): Boolean;
 
Public function RenewLicenseValidityPeriod(ALicRes: TxomResource): Boolean;
 
Public function ReleaseLicense(ALicRes: TxomResource): Boolean;
 
Public function StoreLicense(const ALic: TLicenseInfo): Boolean;
 
Public function FindLicenseGUID(const ALic: TLicenseInfo; var AGUID: String): Boolean;
 
Public function DeleteLicense(const ALic: TLicenseInfo): Boolean;
 
Public function DeleteExpiredLicenses: Boolean;
 
Public function LicenseExists(const ALic: TLicenseInfo): Boolean;
 
Public procedure LoadVocabularyEvent(Sender: TObject; const AMetaProperty: WideString; AStrings: TxomStrings);
 
Public procedure SaveVocabularyEvent(Sender: TObject; const AMetaProperty: WideString; AStrings: TxomStrings);
 
Public function BackupDataToFile (const AFileName: WideString; AWithVerify: Boolean; var AVerifyResult: Boolean): Boolean;

Start the backup of the current catalog database to the file specified

Public function RestoreDataFromFile (const AFileName: WideString): Boolean;

Restore a previously backupped file to the current catalog database

Public function HandleLogin (const AServerName: WideString; const AServerPort: Integer; const ADatabase, AUserName, APassword: WideString; var ALastError: WideString): Boolean;

handles the log in to the database. If an error occurred, this is passed to the AResultText variable

Public function CheckIntegrity: Boolean;

check the integrity of the database (true/false). Only used on SQLite

Public function EncodePassword (const APassword: WideString): WideString;

return the encoded version of a password

Public function EnumUserGroup (const AGUID: String; AResult: TUserGroup): Boolean;

find a user group based on its unique identifier (GUID)

Public function EnumLoginDetails (const AUserName, AEncodedPassword: WideString; AResult: TidUser; var ALastError: WideString): Boolean;

find a user based on its username and password. The password should be passed encoded

Public function EnumUser (const AGUID: String; AResult: TidUser): Boolean;

find a user based on its unique identifier (GUID)

Public function EnumUserByUserName (const AUserName: WideString; AResult: TidUser): Boolean;

find a user based on its unique identifier (GUID)

Public function EnumUserByWebAddress(const AWebAddress: WideString; AResult: TidUser): Boolean;

find a user based on its web address

Public function StoreUserGroup (AGroup: TUserGroup): Boolean;

Store a user group to the database. If the user does not exist yet, it will be created

Public function StoreUser (AUser: TidUser): Boolean;

Store a user to the database. If the user does not exist yet, it will be created

Public function DeleteUserGroupGUID (const AUserGroupGUID: String): Boolean;

Remove an existing user group from the database.

Public function DeleteUserGUID (const AUserGUID: String): Boolean;

Remove an existing user from the database.

Public procedure EnumAllUserGroups (AGroups: TUserGroups);

Populate all existing user groups

Public procedure EnumUsersForUserGroup (const AUserGroupGUID: String; AUsers: TidUsers);

Populate all existing users for a user group

Public procedure EnumAllUsers (AUsers: TidUsers);

Populate all existing users

Public function UserGroupNameExists (AUserGroupName: WideString): Boolean;

check if a specific usergroup name already exists

Public function UserNameExists (const AUserName: WideString): Boolean;

check if a specific username already exists

Public function IsRestrictedCatalogUser(AUser: TidUser): Boolean;

check if a specific user has a restricted view of the catalog

Public function AuthorizationObjectForUser(AUser: TidUser): TAuthorizationObject;

get an authorization object for a user

Public function SortOrderString (ASort: TCollectionSort; ASortOrder: TSortType): WideString;
 
Public function BuildQuickItemsList (AImageList: TList; AResult: TCatalogItems; AStoreInTempList: Boolean = True; AIncludeGroupItems: TIncludeGroupItems = []; AIncludeVersionItems: TIncludeVersionItems = []; AShowProgress: Boolean = True; AOnlyMarked: Boolean = True; AAlwaysAcceptExplorerItems: Boolean = False): Boolean;
 
Public function BuildQuickItemsListForItem (AItem: TCatalogItem; AResult: TCatalogItems; AStoreInTempList: Boolean = True; AIncludeGroupItems: TIncludeGroupItems = []; AIncludeVersionItems: TIncludeVersionItems = []; AShowProgress: Boolean = True): Boolean;
 
Public function FindUser (const AUserGUID: String; AResult: TidUser): Boolean;

find a specific user by its GUID

Public function BuildTypedCollection (ASource, ATarget: TImageCollection; AVersionPHGUID: String; ACheckMarked: Boolean = True): Boolean;

For an image collection; this method will build a new collection that contains versions of a specific type.

Public function BuildTypedCollectionForPlaceHolder (ASource, ATarget: TImageCollection; APlaceHolder: TCatalogPlaceHolder; ACheckMarked: Boolean = True): Boolean;

For an image collection; this method will build a new collection that contains versions of a specific place holder

Public function BuildMainVersionCollection (ASource, ATarget: TImageCollection; ACheckMarked: Boolean = True): Boolean;

For an image collection; this method will build a new collection that contains only main versions

Public function MemFindPropByGUID (const AGUID: String): TCatalogItemProp;

Find a catalog label based on its unique identifier (GUID); this is not searched in the database but in memory

Public function WriteHistoryLog(const AServiceName: WideString; const AReferenceGUID: String; const ALogLine, ALogDetails: WideString; ALogData: TStream): Boolean;

write a line to history table

Public function EnumUserHistoryLog(const AUserGUID: String; AResult: TCatalogHistoryItems; ALimit: Integer = -1): Boolean;

enum history for a specific user

Public function EnumUserPeriodHistoryLog(const AUserGUID: String; APeriod: TPeriod; AResult: TCatalogHistoryItems; ALimit: Integer = -1): Boolean;

enum history for a specific user in a period

Public procedure EnumSearchDataForItem(AItem: TCatalogItem; AResult: TCatalogSearchResultItems);

get the search data values for a catalog item

Public procedure EnumSearchDataForImage(AImage: TImageItem; AResult: TCatalogSearchResultItems);

get the search data values for an image item

Public procedure FreeTextSearch (const AValue: WideString; AResult: TCatalogSearchResultItems; const AContentType: WideString = ''; const AContentGroup: WideString = ''; AMaxResults: Integer = 0);

get the result of a Free Text Search; you can optionally use a search value that is formatted as 'Type.Group=Value'; e.g. search for PROP.PropName=Hert*

Public procedure FreeTextSearchItems (const AValue: WideString; AResult: TCatalogItems; const AContentType: WideString = ''; const AContentGroup: WideString = ''; AMaxResults: Integer = 0);

get the images that match the result of a Free Text Search; you can optionally use a search value that is formatted as 'Type.Group=Value'; e.g. search for PROP.PropName=Hert*

Public procedure FreeTextSearchAlternatives ( AValue: WideString; AResult: TCatalogSearchAlternatives; const AContentType: WideString = ''; const AContentGroup: WideString = ''; AMaxResults: Integer = 20);

get Free Text Search alternatives; you can optionally use a search value that is formatted as 'Type.Group=Value'; e.g. search for PROP.PropName=Hert*

Public function FindCategoriesByName(const AName: WideString; AResult: TCatalogPropCategories; ASearchStyle: TSearchStyle = ssExact; AMaxResult: Integer = -1): boolean;

Find catalog categories based on a name. This may return none, one or more labels that match the conditions passed

Public function FindPropsByName(const AName: WideString; AResult: TCatalogItemProps; const AParentGUID: String = ''; ASearchStyle: TSearchStyle = ssExact; ARecursive: Boolean = True; AMaxResult: Integer = -1; AWithSynonyms: Boolean = False): boolean;

Find catalog labels based on a name. This may return none, one or more labels that match the conditions passed

Public function FindPropByName (const AName: WideString; AResult: TCatalogItemProp; const AParentGUID: String = ''; ARecursive: Boolean = True; AWithSynonyms: Boolean = False): boolean;

Find a catalog label based on a name. If more than one images are found, the first will be returned

Public function FindPropGUIDByName (const AName: WideString; const AParentGUID: String = ''; ARecursive: Boolean = True): String;

Find a catalog label's unique GUID based on a name. If more than one images are found, the first GUID will be returned

Public function FindPropByPathName (const APathName: WideString; AResult: TCatalogItemProp; const ASeparator: WideString = '::'; ACreateIfNeeded: Boolean = False): Boolean;

Find a catalog label based on its path name (e.g. Events.Birthdays.Children). Optionally specify if the label should be created it it doesn't exist yet

Public function FindFilePathsNamed (const AFolderName: WideString; AResult: TCatalogFilePaths; ASearchStyle: TSearchStyle = ssExact; ASearchFullPath: Boolean = False; AMaxResult: Integer = -1): Boolean;

find file paths based on the folder name

Public function FindItemByGUID (const AGUID: String; ACatItem: TCatalogItem): Boolean;

Find a catalog item, based on its unique identifier (GUID)

Public function FindItemCombinedByGUID (const AGUID: String; ACatItem: TCatalogItem): Boolean;

Find a catalog item, based on its unique identifier (GUID). If it does not exist, it will check for a version with this GUID and return that one

Public function FindImageCombinedByGUID (const AGUID: String; AImageItem: TImageItem): Boolean;

Find a image item, based on its unique identifier (GUID). If it does not exist, it will check for a version with this GUID and return that one

Public function FindItemCombinedByAvgColor (const AAvgColor: String; ACatItem: TCatalogItem; ATreshold: Single = 0.1): Boolean;

Find a catalog item, based on its average color. If it does not exist, it will check for a version with this average color and return that one

Public function FindVersionItemByGUID (const AGUID: String; ACatItem: TCatalogItem): Boolean;

Find a version item, based on its unique identifier (GUID)

Public function UpdateItemGUID (const AOldGUID, ANewGUID: String): Boolean;

Update a catalog item's unique identifier (GUID) throughout the database

Public function UpdateItemGroupGUID (const AItemGUID, ANewGroupGUID: String; ANewGroupOrder: Integer): Boolean;

Update a catalog item's stack GUID

Public function UpdateItemGroupMarkers (const AItemGUID: String; ANewGroupMarkers: TStackMarkers): Boolean;

Update a catalog item's stack markers

Public function CatalogItemExists (const AGUID: String): Boolean;

Check if a catalog item with a specific unique identifier (GUID) exists

Public function ItemExistsCombined (const AGUID: String): Boolean;

Check if a a specific unique identifier (GUID) exists, either as CatalogItem or as VersionItem

Public procedure EnumCameraDisplayInfo(AItem: TCatalogItem; ACustoms: TCustomFieldItems; AResult: TidElement);

populate the details of an item for a camera display box

Public procedure EnumCameraDisplayInfoForItems(AItems: TCleanCatalogItems; ACustoms: TCustomFieldItems; AResult: TidElement);

populate the details of a set of items for a camera display box

Public function EnumItemsForFilePath (AFilePath: TCatalogFilePath; AResult: TCatalogItems; AVersionsDisplay: TVersionsDisplay = vdDefault): Boolean;

return all items for a certain path object

Public function EnumItemsForPath (APath: WideString; AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItems): Boolean;

return all items for a certain path

Public function EnumItemsForProp (AProp: TCatalogItemProp; AResult: TCatalogItems; ARecursive: Boolean = False; const AVersionPHGUID: String = ''): Boolean;

return all items for a certain catalog label

Public function EnumItemsForPathGUID (APathGUID: String; AResult: TCatalogItems): Boolean;

return all items for a specific file path guid

Public function PathGUIDForFileName (const AFilename: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; const ACreateIfNew: Boolean = True): String;

return the path guid for a specific file

Public function PathGUIDForFolder (const AFolder: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; const ACreateIfNew: Boolean = True): String;

return the path guid for a specific file

Public function EnumSimilarItemsForSimilarityCode (const ASimCode: String; AResult: TCatalogItems): Boolean;

return all items with a specific similarity code

Public function EnumSimilarItemsForItem (AItem: TCatalogItem; AResult: TCatalogItems): Boolean;

return all similar items for an item

Public function EnumSimilarItemsForImage (AImage: TImageItem; AResult: TCatalogItems): Boolean;

return all similar items for an image

Public function EnumSimilarItemsForItemsInTempList (AItems: TCatalogItems; AResult: TCatalogItems): Boolean;

return all similar items for all items in the templist

Public function EnumFileTypes (AResult: TCatalogFileTypes; AWithCounts: Boolean = True): Boolean;

retrieve all available file types from catalog

Public function EnumFileTypesForGroup (AGroup: TCatalogPropGroup; AResult: TCatalogFileTypes; AWithCounts: Boolean = True): Boolean;

retrieve all available file types in the result of a search group

Public function EnumPeriodForGroup (AGroup: TCatalogPropGroup; AResult: TPeriod): Boolean;

retrieve the min-max period in the result of a search group

Public function EnumXMPOccurrences (const AXMPProperty: WideString; AResult: TMetaSchemaItemOccurences; const AWithCount: Boolean = True; const AMaxResults: Integer = -1; const ASortedByPhotoCount: Boolean = False): Boolean;

retrieve all unique occurrences of a XMP-Property (e.g. dc:title)

Public function EnumPlaceHolders (AResult: TCatalogPlaceHolders; AWithCount: Boolean = True): Boolean;

retrieve all available version place holders

Public function EnumPlaceHolder (const AGUID: String; AResult: TCatalogPlaceHolder; AWithCount: Boolean = False): Boolean;

retrieve a single place holder based on a GUID

Public function EnumPlaceHolderByName (const AName: WideString; AResult: TCatalogPlaceHolder; AWithCount: Boolean = False): Boolean;

retrieve a single place holder based on it full name

Public function EnumPlaceHolderForType (AType: TCatalogPlaceHolderType; AResult: TCatalogPlaceHolder; AWithCount: Boolean = False): Boolean;

retrieve a placeholder based on one of the predefined types

Public function EnumPlaceHoldersForMainVersion (AResult: TCatalogPlaceHolders; const AMainVersionGUID: String; AOnlyUsed: Boolean = False): Boolean;

retrieve all available place holders, matched against a main version

Public function DeletePlaceHolder (APlaceHolder: TCatalogPlaceHolder): Boolean;

remove a specified placeholder from the database

Public function UpdatePlaceHolder (APlaceHolder: TCatalogPlaceHolder): Boolean;

update an existing placeholder, or it it doesn't exist, a new one is created for it

Public function EnumItemForPlaceHolderInMain (AMain: TCatalogItem; APlaceHolder: TCatalogPlaceHolder; AResult: TCatalogItem): Boolean;

retrieve the catalog item for a specific placeholder in a version set

Public function EnumLastImportSessions(AImports: TCatalogImports; AMaxCount: Integer = -1): Boolean;

get the last import sessions

Public function ItemNeedsSync (ACatItem: TCatalogItem): Boolean;

returns if a specific catalog items needs to be sync'ed or not

Public function LoadRecipeForItem (AItem: TCatalogItem; AResult: TRecipe): Boolean;

load the active recipe for a specific catalog item; returns true is a recipe is found

Public function LoadRecipeForImage (AImage: TImageItem; AResult: TRecipe): Boolean;

load the active recipe for a specific image; returns true is a recipe is found

Public function SaveRecipeForItem (AItem: TCatalogItem; ARecipe: TRecipe; AAppend: Boolean = False): Boolean;

save a recipe for a catalog item

Public function SaveRecipeForImage (AImage: TImageItem; ARecipe: TRecipe; AAppend: Boolean = False): Boolean;

save a recipe for an image item

Public function SaveRecipeForItems (AItems: TCatalogItems; ARecipe: TRecipe; AAppend: Boolean = False): Boolean;

save a recipe for all items in a set of catalog items

Public function ItemHasRecipe (AItem: TCatalogItem): Boolean;

check if a catalog item has a defined recipe

Public function ImageHasRecipe (AImage: TImageItem): Boolean;

check if an image item has a defined recipe

Public function RemoveRecipeForItem (AItem: TCatalogItem): Boolean;

remove a complete recipe for an item

Public function RemoveRecipeForImage (AImage: TImageItem): Boolean;

remove a complete recipe for an image

Public function FilePathExists (AFilePath: TCatalogFilePath; AExact: Boolean = False): Boolean;

check if a specific file path also exists in the database

Public function FilePathHasSubs(AFilePath: TCatalogFilePath): Boolean;

check if a file path has sub paths

Public function EnumFilePath (const AFolderName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogFilePath; const AExact: Boolean = True): Boolean;

find a specific file path entry based on the exact details

Public function EnumFilePathForFolder (const AFolderName: WideString; AResult: TCatalogFilePath; AExact: Boolean = True): Boolean;

find a specific file path entry based on an *online*(!) folder

Public function EnumFilePathForItem (AItem: TCatalogItem; AResult: TCatalogFilePath): Boolean;

find a specific file path entry for a catalog item

Public function EnumFilePathForItemGUID (const AItemGUID: String; AResult: TCatalogFilePath): Boolean;

find a specific file path entry for a catalog item

Public function EnumFolderDetails (const AFolderName: WideString; AResult: TCatalogFilePath): Boolean;

find a specific file path entry based on an (offline) folder

Public function EnumFilePaths (AParent: TCatalogFilePath; AResult: TCatalogFilePaths; ASubLevels: Integer = 0; AMaxResults: Integer = -1): Boolean;

retrieve all ofset file paths known to the catalog; optionally for a parent (aparent = nil for the top roots)

Public function EnumFilePathsRecursive (AParent: TCatalogFilePath; AResult: TCatalogFilePaths): Boolean;

retrieve all sub paths for a parent in a flat list

Public function EnumAllFilePaths (AResult: TCatalogFilePaths): Boolean;

retrieve all file paths known to the catalog

Public function EnumFilePathsMarked (AResult: TCatalogFilePaths): Boolean;

retrieve all file paths that have a marking

Public function EnumFilePathsWithState (AStates: TFilePathStates; ARecursive: Boolean; AResult: TCatalogFilePaths): Boolean;

find all file paths with markings

Public function EnumFilePathByGUID (const AGUID: string; AResult: TCatalogFilePath): Boolean;

find the a file path by its GUID as stored in the database

Public function DeleteFilePath (APath: TCatalogFilePath; ARecursive: Boolean = True): Boolean;

remove all images from catalog for a certain file path

Public function UpdateFilePath (AFilePath: TCatalogFilePath): Boolean;

update the details of a file path

Public procedure UpdateMediaV4;

do not use!! it is intended to migrate the database from IDimager V3 to V4

Public function EnumTimeLinePeriods (AParent: TCatalogPeriod; AResult: TCatalogPeriods; ASubLevels: Integer = 0): Boolean;

retrieve time line periods for a parent (aparent = nil => top level years)

Public function EnumTimeLineStructure (AResult: TCatalogPeriods): Boolean;

retrieve the full time line structure known to the catalog. It holds 3 levels: year, month, day

Public function AddFile (ASourceItem: TImageItem; AResult: TCatalogItem; AQuick: Boolean = False): Boolean;

Create a new catalog entry based on an image item. This will return true if successful (either exists or created). Fase is returned when it could not be created (commonly, already a version)

Public function AddFile2 (const AFileName: WideString; AResult: TCatalogItem; AQuick: Boolean = False): Boolean;
 
Public function AddVersionItem (AItem: TCatalogItem; AVersionItem: TCatalogItem; ATypes: TCatalogPlaceHolderTypes = [vptNone]): Boolean;
 
Public function AddVersion (AItem: TCatalogItem; AVersion: TImageItem; ATypes: TCatalogPlaceHolderTypes = [vptNone]; AResult: TCatalogItem = nil): Boolean;
 
Public function AddVersionFile (const AMainFileName: WideString; const AVersionFileName: WideString; ATypes: TCatalogPlaceHolderTypes = [vptNone]): Boolean;
 
Public function AddVersionFilePlaceHolders (const AMainFileName: WideString; const AVersionFileName: WideString; APlaceHolders: TCatalogPlaceHolders): Boolean;
 
Public function AddVersionFilePlaceHolder (const AMainFileName: WideString; const AVersionFileName: WideString; APlaceHolder: TCatalogPlaceHolder): Boolean;
 
Public function AddVersionForImage (AImage: TImageItem; AVersion: TImageItem; ATypes: TCatalogPlaceHolderTypes = [vptNone]): Boolean;
 
Public function DeleteVersionItem (AVersionItem: TCatalogItem): Boolean;
 
Public function DeleteVersion (AVersion: TImageItem): Boolean;
 
Public function DestroyVersionSetForItem (AVersion: TCatalogItem): Boolean;
 
Public function DestroyVersionSetForImage (AVersion: TImageItem): Boolean;
 
Public function ItemHasVersions (AItem: TCatalogItem): Boolean;
 
Public function ItemIsVersion (AItem: TCatalogItem): Boolean;
 
Public function ImageIsVersion (AImage: TImageItem): Boolean;
 
Public function ImageHasVersions (AImage: TImageItem): Boolean;
 
Public function UpdateVersionFromImage (AImage: TImageItem; ANewImage: TImageItem = nil): Boolean;
 
Public procedure UpdateVersionForItemInCollection (const AColGUID: String; const AMainVersionGUID: String; const AVersionGUID: String);
 
Public function VersionItemExists (const AGUID: String): Boolean;
 
Public function UpdateVersionFromItem (AItem: TCatalogItem): Boolean;
 
Public function EnumVersionsForItem (AItem: TCatalogItem; AResult: TCatalogItems): Boolean;

find all versions for an item. If this is a sub version, the main version its versions will be returned

Public function EnumVersionStackForItem (AItem: TCatalogItem; AResult: TCatalogItems): Boolean;

find all versions for an item. If this is a sub version, the main version its versions will be returned. The main version is also included so the result contains the full stack

Public function EnumVersionStackForImage (AImage: TImageItem; AResult: TCatalogItems): Boolean;
 
Public function CountItemsInVersionStack (const AMainVersionGUID: String; AIncludeMainVersion: Boolean): Integer;
 
Public function EnumVersionStacksForItemsInTemplist (AItems: TCatalogItems; AResult: TCatalogItems): Boolean;
 
Public function EnumMainVersionsForItemsInTemplist (AResult: TCatalogItems): Boolean;
 
Public function EnumVersionsForImage (AImage: TImageItem; AResult: TCatalogItems): Boolean;
 
Public function UpdateMainVersion (AOld, ANew: TCatalogItem): Boolean;
 
Public procedure EnumAllVersions (ACatalogItems: TCatalogItems);
 
Public procedure EnumAllVersionGUIDs (ACatalogItems: TCleanCatalogItems);
 
Public procedure EnumAllMainVersions (ACatalogItems: TCatalogItems);
 
Public procedure HandlePropDetailsForItem (AProp: TCatalogItemProp; AItem: TCatalogItem; ATargetXMP: TXMP = nil);
 
Public procedure EnumFolder (const AFolderName: WideString; AResult: TCatalogItems; ARecursive: Boolean = False);
 
Public function EnumAllMedia (AResult: TCatalogMediums): Boolean;
 
Public function EnumMediumItems (AMedium: TCatalogMedium; AResult: TCatalogItems): Boolean;
 
Public function EnumMedium (const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogMedium): Boolean;
 
Public function EnumAllAreas (AResult: TCatalogAreas): Boolean;

find all areas in the catalog and put them in AResult. The function returns True if areas are found

Public function CountAllAreasWithFeatures: Integer;

count all areas in the catalog that have features

Public function EnumAllAreasWithFeatures (AResult: TCatalogAreas): Boolean;

find all areas in the catalog that have features and put them in AResult. The function returns True if areas are found

Public function EnumAllAreasWithoutProp(AResult: TCatalogAreas): Boolean;

find all areas in the catalog that are unlinked to a catalog label. The function returns True if areas are found

Public function EnumAllAreasWithFeaturesForProp (AProp: TCatalogItemProp; AResult: TCatalogAreas): Boolean;

find all areas in the catalog for a specific prop that have features and put them in AResult. The function returns True if areas are found

Public function EnumAllFaceAreas (AResult: TCatalogAreas; AHasFeatures: Boolean = False): Boolean;

find all defined facial areas and put them in AResult. The function returns True if faces are found

Public function EnumAllFaceAreasWithoutProp (AResult: TCatalogAreas): Boolean;

find all defined facial areas that have no linked Catalog Label and put them in AResult. The function returns True if faces are found

Public function EnumAreasForItem (AItem: TCatalogItem; AResult: TCatalogAreas): Boolean;

find all defined areas (including faces) for a catalog item and put them in AResult. The function returns True if areas are found

Public function EnumAreasForProp (const APropGUID: String; AResult: TCatalogAreas): Boolean;

find all defined areas (including faces) for a catalog label. The function returns True if areas are found

Public function EnumAreasWithoutImageForItem (AItem: TCatalogItem; AResult: TCatalogAreas): Boolean;

find all defined areas (including faces) for a catalog item that have no image thumb stored for it, and put them in AResult. The function returns True if areas are found

Public function EnumAreasForImage (AImage: TImageItem; AResult: TCatalogAreas): Boolean;

find all defined areas (including faces) for an image item and put them in AResult. The function returns True if areas are found

Public function EnumFaceAreasForItem (AItem: TCatalogItem; AResult: TCatalogAreas): Boolean;

find all defined face areas for a catalog item and put them in AResult. The function returns True if faces are found

Public function EnumFaceAreasForImage (AImage: TImageItem; AResult: TCatalogAreas): Boolean;

find all defined face areas for an image item and put them in AResult. The function returns True if faces are found

Public function FindAreaByGUID (const AGUID: String; AResult: TCatalogArea): Boolean;

find a specific area by its GUID amd put it in AResult. The function returns True if an area with matching GUID is found

Public function ItemHasAreas (AItem: TCatalogItem): Boolean;

returns True if a catalog item has areas defined for it

Public function ImageHasAreas (AImage: TImageItem): Boolean;

returns True if an image item has areas defined for it

Public function EnumUnmatchedFaces(AResult: TxomFaces; AExcludeIgnored: Boolean): Boolean;

find all unmatched faces

Public function EnumFacesForGUID(const AGUID: String; AExcludeIgnored: Boolean; AResult: TxomFaces): Boolean;

find all faces for an image GUID

Public function EnumFacesForItem(AItem: TCatalogItem; AExcludeIgnored: Boolean; AResult: TxomFaces): Boolean;

find all faces for an item

Public function EnumFacesForImage(AImage: TImageItem; AExcludeIgnored: Boolean; AResult: TxomFaces): Boolean;

find all faces for an image

Public function MatchFacesForArea(const AAreaGUID: String; AResult: TxomFaces; AMaxResults: Integer): Boolean;

find face matches for a "confirmed" area (with FaceFeatures) with

Public function MatchFacesForProp(AProp: TCatalogItemProp; AResult: TxomFaces; AMaxResults: Integer): Boolean;

find face matches for a catalog label

Public function MatchFacesForPropGUID(const APropGUID: String; AResult: TxomFaces; AMaxResults: Integer): Boolean;

find face matches for a catalog label GUID

Public function MatchFacesForFeatureAreas(AAreas: TCatalogAreas; AResult: TxomFaces; AMaxResults: Integer): Boolean;

find face matches for a set of areas with face-features

Public function MatchedFace(AFace: TxomFace; ASetting: Boolean): Boolean;

change the matched state of a face

Public function MatchedFaceByGUID(const AFaceGUID: String; ASetting: Boolean): Boolean;

change the matched state of a face

Public function IgnoreFace(AFace: TxomFace; ASetting: Boolean): Boolean;

change the ignore state of a face

Public function IgnoreFaceByGUID(const AFaceGUID: String; ASetting: Boolean): Boolean;

change the ignore state of a face

Public function EnumAttachmentsForItemGUID (AGUID: String; AResult: TCatalogAttachments): Boolean;

find all defined attachments for a catalog item its GUID and put them in AResult. The function returns True if attachments are found

Public function EnumAttachmentsForItem (AItem: TCatalogItem; AResult: TCatalogAttachments): Boolean;

find all defined attachments for a catalog item and put them in AResult. The function returns True if attachments are found

Public function ItemHasAttachments (AItem: TCatalogItem): Boolean;

returns True if a catalog item has attachments defined for it

Public function ImageHasAttachments (AImage: TImageItem): Boolean;

returns True if an image item has attachments defined for it

Public function UpdateAttachment (AAtt: TCatalogAttachment): Boolean;

update an attachment

Public function DeleteAttachment (AAtt: TCatalogAttachment): Boolean;

delete an attachment from the catalog

Public function DeleteAttachmentsForItem(AItem: TCatalogItem): Boolean;

delete all attachments for an item

Public function CreateAndLoadTifForItem(AItem: TCatalogItem): TTif;
 
Public function EnumCategories (AResult: TCatalogPropCategories; AWithCounts: Boolean = False): Boolean;
 
Public function EnumTypedCategories (ATypes: TCatalogPropAccessibilities; AResult: TCatalogPropCategories; AWithCounts: Boolean = False): Boolean;
 
Public function EnumCategory (const AGUID: String; AResult: TCatalogPropCategory; AWithCount: Boolean = False): Boolean;
 
Public function EnumCategoryNamed (const ACategory: WideString; ACat: TCatalogPropCategory): Boolean;
 
Public function EnumCategoryForProp (AProp: TCatalogItemProp; AResult: TCatalogPropCategory): Boolean;
 
Public function EnumCategoriesForProps (AProps: TCatalogItemProps; AResult: TCatalogPropCategories): Boolean;
 
Public function EnumCategoryGUIDForProp(AProp: TCatalogItemProp): String;
 
Public function UpdateCategory (ACat: TCatalogPropCategory): Boolean;
 
Public function DeleteCategory (ACat: TCatalogPropCategory): Boolean;
 
Public function CategoryHasSubs (ACat: TCatalogPropCategory): Boolean;
 
Public function CategoryExists (const AGUID: String): Boolean;
 
Public function CheckImportSessionCategory (ACreateIfNeeded: Boolean = True): Boolean;
 
Public procedure ReadGroupsFromDatabase;
 
Public procedure EnumGroups (AResult: TCatalogPropGroups);

find all groups in the database

Public procedure EnumTypedGroups (const AType: String; AGroups: TCatalogPropGroups);

find all groups of a specific type

Public procedure EnumTypedGroupsNamed(const AType: String; const AName: WideString; AGroups: TCatalogPropGroups);

find all groups of a specific type and name

Public procedure EnumLabelSets(AGroups: TCatalogPropGroups);

invert the content of a catalog prop group (not functional yet) procedure InvertGroup(AGroup: TCatalogPropGroup); populate all the existing label sets

Public procedure EnumLabelSetsByName(const AName: WideString; AGroups: TCatalogPropGroups);

populate all the existing label sets with a specific name

Public procedure EnumLabelSetsForProp(AProp: TCatalogItemProp; AGroups: TCatalogPropGroups);

populate all the label sets that a catalog label is part of

Public procedure EnumPropsForLabelSet(AGroup: TCatalogPropGroup; AProps: TCatalogItemProps);

populate all the catalog labels that are part of a catalog label set

Public procedure EnumLabelSetsForProps(AProps: TCatalogItemProps; AGroups: TCatalogPropGroups);

populate all the label sets that a sets of catalog labels is part of

Public function IsPropInLabelSet(AProp: TCatalogItemProp; AGroup: TCatalogPropGroup): Boolean;

check if a specific catalog label is part of a specific label set

Public function GroupExists (const AGUID: String): Boolean;

does a specific group GUID exist?

Public function FindGroup (AGroup: TCatalogPropGroup): Boolean;

find the details of a group (content is not included)

Public function FindGroupsNamed (const AGroupName: WideString; AResult: TCatalogPropGroups): Boolean;
 
Public procedure EnumGroupContent (AGroup: TCatalogPropGroup);
 
Public function GroupHasContent (AGroup: TCatalogPropGroup): Boolean;
 
Public function EnumGroupResult (AGroup: TCatalogPropGroup; AResult: TCatalogItems; const AVersionPHGUID: String = AlbumPlaceHolderGUID; const AFilterGuidList: String = ''; const AFilterClassGUIDs: String = ''; const AExclFilterClassGUIDs: String = ''; AFilterGroups: TCatalogPropGroups = nil; AMaxResults: Integer = -1; AResultKind: TGroupResultKind = grkFullColumns; AForcedDBSorting: Boolean = False): Integer;
 
Public function EnumGroupResultQuick (AGroup: TCatalogPropGroup; AResult: TCatalogItems; AMaxResults: Integer = -1): Integer;
 
Public function AddPropToGroup (AGroup: TCatalogPropGroup; AProp: TCatalogItemProp; AType: TCatalogGroupType): Boolean;
 
Public function RemovePropFromGroup (AGroup: TCatalogPropGroup; AProp: TCatalogItemProp; AType: TCatalogGroupType): Boolean;
 
Public function RemovePropFromTypedGroups (AProp: TCatalogItemProp; const AGroupType: String): Boolean;
 
Public function DeleteGroup (AGroup: TCatalogPropGroup): Boolean;
 
Public function StoreGroup (AGroup: TCatalogPropGroup; AWithContent: Boolean = True): Boolean;
 
Public function UpdateGroup (AGroup: TCatalogPropGroup): Boolean;

UpdateGroup is identical to StoreGroup but won't store the content of the group

Public function IsGroupInGroup (ACheckGroup, ABaseGroup: TCatalogPropGroup): Boolean;
 
Public procedure PrepareDeduplicateItems(AItems: TCatalogItems; AResult: TCatalogItemSets; ASettings: TDeduplicateSettings);
 
Public procedure DeduplicateSet(ASet: TCatalogItemSet; ASettings: TDeduplicateSettings);
 
Public procedure DeduplicateSets(ASets: TCatalogItemSets; ASettings: TDeduplicateSettings);
 
Public procedure DeduplicateItems(AItems: TCatalogItems; ASettings: TDeduplicateSettings);
 
Public procedure DeduplicateGroup(AGroup: TCatalogPropGroup; ASettings: TDeduplicateSettings);
 
Public function StackItems (AItems: TCatalogItems; const AGroupGUID: String; ATopItem: TCatalogItem): Boolean;

stacking features

Public function StackItemsInTempList (AItems: TCatalogItems; const AGroupGUID: String; ATopItem: TCatalogItem): Boolean;
 
Public function UnStackItems (AItems: TCatalogItems): Boolean;
 
Public function UnStackItemsInTempList (AItems: TCatalogItems): Boolean;
 
Public function UnstackItemsWithSingleStackCount: Boolean;
 
Public function RemoveStack (const AGroupGUID: String): Boolean;
 
Public function EnumItemsInStack (const AGroupGUID: String; AResult: TCatalogItems; AGUIDOnly: Boolean): Boolean;
 
Public function EnumImagesInStack(const AGroupGUID: String; AResult: TImageItems; AGUIDOnly: Boolean): Boolean;
 
Public function CountItemsInStack (const AGroupGUID: String): Integer;
 
Public function EnumStackItemsForItemsInTemplist (AItems: TCatalogItems; AResult: TCatalogItems): Boolean;
 
Public function EnumStackTopItem (const AGroupGUID: String; AResult: TCatalogItem): Boolean;
 
Public function DefineStackTopItem (const AGroupGUID: String; AItem: TCatalogItem): Boolean;
 
Public function DefineStackTopImage (const AGroupGUID: String; AImage: TImageItem): Boolean;
 
Public function ItemIsStacked (AItem: TCatalogItem): Boolean;
 
Public function EnumItemsWithSyncState (ASyncState: TSyncState; AResult: TCatalogItems): Boolean;
 
Public function EnumVersionsWithSyncState (ASyncState: TSyncState; AResult: TCatalogItems): Boolean;
 
Public function FindOrCreateAILabelsCategory(AResult: TCatalogPropCategory): Boolean;

general AI

Public procedure AIEnumBitmapStreamForItem(AItem: TCatalogItem; ABitmap: TvxBitmap32; ABitmapStream: TStream; const ALongestSize: Integer = 0);
 
Public function APILanguage: String; virtual;
 
Public function GoogleTranslateText(const AText: WideString; const AFromLanguage, AToLanguage: String; const AGoogleAPIKey: String; var AResult: WideString): Boolean; virtual;

Google API Google Translate

Public function GoogleTranslateTextQuick(const AText: WideString; const AFromLanguage, AToLanguage: String; const AGoogleAPIKey: String): WideString; virtual;
 
Public procedure AIVision_BaseDetectForItem(AItem: TCatalogItem; ADetectionTypes: TDetectionTypes; ABmp: TvxBitmap32; AStream: TStream; AResult: TDetectionResult);

Google Vision AI

Public function AIVision_DetectLabelsForItem(AItem: TCatalogItem; ABmp: TvxBitmap32 = nil; AStream: TStream = nil; AProps: TCatalogItemProps = nil; AAssignLabels: TAIAssignLabels = aalNone): Boolean;
 
Public function AIVision_RecognizeObjectsForItem(AItem: TCatalogItem; ABmp: TvxBitmap32 = nil; AStream: TStream = nil): Boolean;
 
Public function AIVision_RecognizeLandmarksForItem(AItem: TCatalogItem; ABmp: TvxBitmap32 = nil; AStream: TStream = nil): Boolean;
 
Public function AIVision_DetectTextAnnotationsForItem(AItem: TCatalogItem; ABmp: TvxBitmap32 = nil; AStream: TStream = nil): Boolean;
 
Public function AIVision_DetectFacesForItem(AItem: TCatalogItem; ABmp: TvxBitmap32 = nil; AStream: TStream = nil; AFullBitmap: TvxBitmap32 = nil): Integer;
 
Public procedure AIVisionLabelsToProps(AAILabels: TLabelDetectionItems; AProps: TCatalogItemProps; ATranslate: Boolean);
 
Public procedure EnumAIVisionPropsForItemsInTempList(const AClassGUID: String; AResult: TCatalogItemProps);
 
Public procedure EnumAIVisionPropsForItems(AItems: TCatalogItems; AResult: TCatalogItemProps);
 
Public function CreateOpenAIObject: TidBaseOpenAI;

OpenAI

Public function GenerateDefaultAIContext(const AItemGUID: String; const AAllowEvent, AAllowPlace, AAllowDate: Boolean): WideString; virtual;
 
Public function AIOpenAI_MetaDescribeItem(AItem: TCatalogItem; AContext: WideString; ABmp: TvxBitmap32; AStream: TStream; AResult: TidOpenAIResult): Boolean;
 
Public procedure AIOpenAI_ProcessResult(AItem: TCatalogItem; AResult: TidOpenAIResult; const AResultHandling: TOpenAIResultHandling);
 
Public procedure AIOpenCV_LoadFacesDatabase; virtual;

OpenCV AI

Public function AIOpenCV_RecognizeFaceInArea(ABmp: TvxBitmap; AArea: TCatalogArea): Boolean;
 
Public function AIOpenCV_RecognizeFacesForItem(AItem: TCatalogItem; AClearExistingAreas: Boolean; AThreshold: TThreshold; ABmp: TvxBitmap32 = nil; AStream: TStream = nil): Integer;
 
Public function AIOpenCV_RecognizeObjectsForItem(AItem: TCatalogItem; AClearExistingAreas: Boolean; ABmp: TvxBitmap32 = nil; AStream: TStream = nil): Boolean;
 
Public procedure AddCollToItemsInTempList (AItems: TCatalogItems; AColl: TImageCollection);
 
Public procedure AddPropToItemsInTempList (AItems: TCatalogItems; AProp: TCatalogItemProp);
 
Public procedure AddPropsToItemsInTempList (AItems: TCatalogItems; AProps: TCatalogItemProps);
 
Public procedure RemovePropsFromItemsInTempList (AItems: TCatalogItems; AProps: TCatalogItemProps);
 
Public procedure AddPropToItems (AItems: TCatalogItems; AProp: TCatalogItemProp);
 
Public procedure ChangeRatingForItemsInTempList (AItems: TCatalogItems; AValue: Integer; ACachedXMP: Boolean = True);
 
Public procedure ChangeLabelForItemsInTempList (AItems: TCatalogItems; const AValue: WideString; ACachedXMP: Boolean = True);
 
Public procedure ChangeBookmarkForItemsInTempList (AItems: TCatalogItems; AValue: TBookmarker);
 
Public procedure ChangeStackMarkersForItemsInTempList(AItems: TCatalogItems; AIncludeMarkers, AExcludeMarkers: TStackMarkers);
 
Public function ChangeColorLabelName (const AOldName, ANewName: WideString): Boolean;
 
Public function ChangeBookmarkName (const AOldName, ANewName: WideString): Boolean;
 
Public function ChangeStackMarkerName (const AOldName, ANewName: WideString): Boolean;
 
Public function CountItemsForGroupInTempList (AItems: TCatalogItems; AGroup: TCatalogPropGroup): Integer;
 
Public procedure DeletePropFromItems (AItems: TCatalogItems; AProp: TCatalogItemProp);

deprecated, use RemovePropFromItems

Public procedure RemovePropFromItems (AItems: TCatalogItems; AProp: TCatalogItemProp);
 
Public function IsVirtualCollection(AColl: TImageCollection): Boolean;
 
Public procedure RemovePropFromItemsInTempList (AItems: TCatalogItems; AProp: TCatalogItemProp);

identical to DeletePropFromItemsInTempList

Public procedure DeletePropFromItemsInTempList (AItems: TCatalogItems; AProp: TCatalogItemProp);

identical to RemovePropFromItemsInTempList

Public procedure RemoveCollFromItemsInTempList (AItems: TCatalogItems; AColl: TImageCollection);
 
Public procedure RemoveItemsFromTempListForClassGUID (const AClassGUID: String);
 
Public procedure RemoveItemsFromTempList (AItems: TCleanCatalogItems);
 
Public procedure StoreItemsToTempList (AItems: TCleanCatalogItems; AAllowVersions: Boolean = False);
 
Public function StoreItemGUIDsToTempList (AGUIDs: TStringList; AAllowVersions: Boolean = False): String;
 
Public procedure ExportItemsInTempListToNewSQLiteDatabase(const AClassGUID: String; const AFileName: WideString);
 
Public procedure EnumItemsFromTempListGUID (const AClassGUID: String; AResult: TCatalogItems);
 
Public procedure EnumItemsFromTempList (AItems: TCatalogItems; AResult: TCatalogItems);
 
Public procedure EnumItemsSyncStateFromTempListGUID(const AClassGUID: String; AResult: TCatalogItems);
 
Public procedure EnumItemsSyncStateFromTempList(AItems: TCatalogItems);
 
Public procedure EnumItemGUIDsFromTempList (AItems: TCatalogItems; AResult: TStringList);
 
Public procedure EnumItemGUIDsFromTempListGUID (const AClassGUID: String; AResult: TStringList);
 
Public procedure EnumCleanItemsFromTempList (AItems: TCatalogItems; AResult: TCleanCatalogItems);
 
Public procedure EnumCleanItemsFromTempListGUID (const AClassGUID: String; AResult: TCleanCatalogItems);
 
Public procedure StoreGroupResultToTempList (AGroup: TCatalogPropGroup; ACombined: Boolean = False);
 
Public procedure StoreFileListToTempFileList (const AGUID: String; ASl: TxomStrings);
 
Public procedure RemoveFromTempFileList (const AGUID: String);
 
Public procedure EnumItemsFromTempFileList(const AGUID: String; AResult: TCleanCatalogItems);
 
Public function CascadeXMPForItem (ASource: TCatalogItem; AWithRatingsLabels: Boolean): Boolean;

perform a XMP only cascade

Public function CascadeMetaForItem (AItem: TCatalogItem): Boolean;

perform a full cascade (exif+IPTC, XMP, color labels, rating)

Public function CascadeMetaForImage (AImage: TImageItem): Boolean;

perform a full cascade for an image; this internally calls CascadeMetaForItem

Public procedure CascadeToTargetsForItem (ASource: TCatalogItem; ATargets: TCatalogItems; ATypes: TCatalogCascadeTypes; AOptions: TOptions; const AOnProgress: TNotifySingleEvent = nil);

this is the cascading engine and it will cascade from the source to a set of images (atargets). The type of info to be cascaded is included

Public function _AddPropToItem (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False; AUpdateLastUsed: Boolean = True): Boolean;
 
Public function AddPropToItem (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
 
Public function AddPropsToItem (AItem: TCatalogItem; AProps: TCatalogItemProps; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
 
Public function AddPropToImage (AImage: TImageItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
 
Public function AddPropToMainItemFor (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
 
Public function _UpdateArea (AArea: TCatalogArea; AWithNotify: Boolean = True): Boolean;
 
Public function UpdateArea (AArea: TCatalogArea): Boolean;
 
Public function DeleteArea (AArea: TCatalogArea; AUnassignLabel: Boolean): Boolean;
 
Public function DeleteAreasForItem(AItem: TCatalogItem; AOnlyDetected: Boolean; AOnlyRecognized: Boolean; AUnassignLabel: Boolean): Boolean;
 
Public function DeleteAreasForImage(AImage: TImageItem; AOnlyDetected: Boolean; AOnlyRecognized: Boolean; AUnassignLabel: Boolean): Boolean;
 
Public function CreatePropStructure (AParent: TCatalogItemProp; AStructure: TxomStrings; AResult: TCatalogItemProps): Boolean;
 
Public procedure EnumDefinitionForItem (AItem: TCatalogItem);
 
Public function ItemHasProp (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = True): Boolean;
 
Public function ImageHasProp (AImage: TImageItem; AProp: TCatalogItemProp; Recursive: Boolean = True): Boolean;
 
Public function ItemHasProps (AItem: TCatalogItem; AProps: TCatalogItemProps; Recursive: Boolean = False): Boolean;
 
Public function ImageHasProps (AImage: TImageItem; AProps: TCatalogItemProps; Recursive: Boolean = False): Boolean;
 
Public function FindPropForItem (AItem: TCatalogItem; AProp, AResult: TCatalogItemProp; Recursive: Boolean = True): Boolean;
 
Public function ItemPropsAsString (AItem: TCatalogItem; Short: Boolean = False; IncludeAutoProps: Boolean = True): WideString;
 
Public function ItemPropsAsIDImagerCore (AItem: TCatalogItem; ATagStructure: TObject; IncludeAutoProps: Boolean = True; AProps: TCatalogItemProps = nil): Boolean;
 
Public function IsPrivateProp (AProp: TCatalogItemProp): Boolean;
 
Public function IsPrivatePropGUID (const AGUID: String): Boolean;
 
Public function IsPropInPrivateCategory (AProp: TCatalogItemProp): Boolean;
 
Public function PropIsPrivate (AProp: TCatalogItemProp): Boolean;
 
Public function PropExists (const AGUID: String): Boolean;
 
Public function CatExists (const AGUID: String): Boolean;
 
Public function EnumMetadataEventPropForItem(AItem: TCatalogItem; AResult: TCatalogItemProp): Boolean;
 
Public procedure MapPropsToXMPForItem (AItem: TCatalogItem; AProps: TCatalogItemProps; AXmp: TXMP; ASettings: TXMPSyncWriteSettings; ASearchData: TidElement);
 
Public function _WriteItemToXMP (ACatItem: TCatalogItem; ASyncSettings: TXMPSyncWriteSettings; AToAllVersions: Boolean; ACached: Boolean; ASaveCached: Boolean): Boolean;
 
Public function WriteItemToXMPAdvanced (ACatItem: TCatalogItem; ASettings: TXMPSyncWriteSettings; ALoadCached: Boolean; ASaveCached: Boolean): Boolean;
 
Public function ReadIPTCForItem (AItem: TCatalogItem): Boolean;
 
Public function _ReadXMPForItem (AItem: TCatalogItem; ASyncSettings: TXMPSyncReadSettings; AXmpObject: TObject = nil): Boolean;
 
Public function ReadXMPForItemAdvanced (AItem: TCatalogItem; ASettings: TXMPSyncReadSettings; AXmpObject: TObject = nil): Boolean;
 
Public function ReadXMPForImageAdvanced (AImage: TImageItem; ASettings: TXMPSyncReadSettings; AXmpObject: TObject = nil): Boolean;
 
Public procedure GenerateEventLabelFromXMP (AItem: TCatalogItem; AXmp: TXMP);
 
Public procedure GeneratePlacesLabelsFromXMP (AItem: TCatalogItem; AXmp: TXMP; ALevel: TXMPSyncGEOLevel);
 
Public procedure GeneratePeopleLabelsFromXMP (AItem: TCatalogItem; AXmp: TXMP; AWithGetty: Boolean);
 
Public procedure GenerateObjectLabelsFromXMP (AItem: TCatalogItem; AXmp: TXMP);
 
Public function FindOrCreateGEOPropEntry( const AParentGUID: String; const AName: WideString; const AXMPLink: WideString; const AXmpFieldsDefs: WideString; const ALoc: TGPSLocation; const APlaceProps: TStrings ): String;

helper method to create place labels in the hierarchy

Public procedure ImportFile(const AFileName: WideString; ACreateSessionLabel: Boolean = True; AFolderAsLabels: TScanFolderAsLabel = sflNone);
 
Public procedure ImportFolder(const ADir: WideString; ASubFolders: Boolean; ACreateSessionLabel: Boolean = True; AFolderAsLabels: TScanFolderAsLabel = sflNone);
 
Public procedure ImportFiles(var ASessionGUID: AnsiString; AFiles: TxomStrings; ACreateSessionLabel: Boolean = True; AFolderAsLabels: TScanFolderAsLabel = sflNone);
 
Public function RemovePropsFromItem (AItem: TCatalogItem; AProps: TCatalogItemProps): Boolean;
 
Public function RemovePropFromItem (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
 
Public function RemovePropFromImage (AImage: TImageItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
 
Public function RemoveAllPropsFromItem (AItem: TCatalogItem): Boolean;
 
Public function RemovePropFromMainItem (AItem: TCatalogItem; AProp: TCatalogItemProp; Recursive: Boolean = False; WithParent: Boolean = False): Boolean;
 
Public function RemovePropFromUser (AUser: TidUser; AProp: TCatalogItemProp): Boolean;
 
Public function StoreItemToDataBase (AItem: TCatalogItem; const AWithDefinition: Boolean = False; const AWithNotify: Boolean = True): Boolean;
 
Public procedure UpdateItemSyncState (AItem: TCatalogItem; const AIncludeStates: TSyncState = []; const AExcludeStates: TSyncState = []; const AVersionsToo: Boolean = False; const AWithNotify: Boolean = True);
 
Public function IsItemPropped (AItem: TCatalogItem): Boolean;
 
Public function EnumCounterForItem (AItem: TCatalogItem): Integer;
 
Public function IncreaseCounterForItem (AItem: TCatalogItem): Integer;
 
Public function DecreaseCounterForItem (AItem: TCatalogItem): Integer;
 
Public procedure ValidateFiles (AFiles: TxomStrings; AItems: TCatalogItems);

validate a list of file names (optionally including folder names) and validate them against the database. Non existing files will be added to the catalog. The AItems class will contain the list of validate TCatalogItems and those will be store as a templist

Public procedure ValidateImages (AImages: TImageItems; AOnlyMarked: Boolean; AAddUnknown: Boolean = True; AQuick: Boolean = True; AWithThumbs: Boolean = False; AOnProgress: TNotifyEvent = nil);
 
Public function CopyItemLabels (ASource, ATarget: TCatalogItem): Boolean;

copy all labels from one catalogitem to another

Public function CopyImageLabels (ASource, ATarget: TImageItem; AAsVersion: Boolean = True): Boolean;

copy all labels from one imageitem to another

Public function CopyImageLabelsToFileName (ASource: TImageItem; const ATargetFile: WideString; AAsVersion: Boolean = True): Boolean;

copy all labels from one imageitem to a specific image file name

Public function CopyItemCollections (ASource, ATarget: TCatalogItem): Boolean;

copy the collections for a catalogitem to another catalog item. After this, the target catalogitem will be placed in all album collections that the source item is in

Public function CopyItemsToClipBoard (AItems: TCatalogItems): Boolean;
 
Public function PasteFromClipBoardToItems (AItems: TCatalogItems; AXMPWriteSettings: TXMPSyncWriteSettings; ACached: Boolean; AProps: TCatalogItemProps = nil): Boolean;
 
Public procedure BuildNewPropNameForProp (AProp: TCatalogItemProp; const AParentGUID: String);
 
Public procedure PathNameForProps (AProps: TCatalogItemProps; const ASeparator: WideString = '::'; AReferred: Boolean = False; const APreText: WideString = ''; const APostText: WideString = ''; AInclusive: Boolean = True);

return the fully qualified path for every property in the specifield collection. The full name is stored in the Text property of each prop instance

Public function PathNameForProp (AProp: TCatalogItemProp; const ASeparator: WideString = '::'; AReferred: Boolean = False): WideString;

return the fully qualified path for this property inside the catalog

Public function PathNameToProp (const APathName: WideString; const ASeparator: WideString; AResult: TCatalogItemProp; ACreateIfNeeded: Boolean = True): Boolean;

identical to FindPropByPathName

Public function PropHasSubs (AProp: TCatalogItemProp): Boolean;
 
Public function PropHasRelations (AProp: TCatalogItemProp): Boolean;
 
Public function PropHasSubsOrRelations (AProp: TCatalogItemProp): Boolean;
 
Public function PropHasRelationsWithExclude (AProp: TCatalogItemProp; const AExcludeGUID: String): Boolean;
 
Public function PropHasSubsOrRelationsWithExclude (AProp: TCatalogItemProp; const AExcludeGUID: String): Boolean;
 
Public function PropHasItems (AProp: TCatalogItemProp): Boolean;
 
Public function PropIsChildOf (AProp: TCatalogItemProp; const AParentGUID: String; Hierarchical: Boolean = False): Boolean;
 
Public function PropIsParentOf (AProp: TCatalogItemProp; AChild: TCatalogitemProp): Boolean;
 
Public function PropParentGUID (AProp: TCatalogItemProp): String;
 
Public function PropCategoryExists (const AGUID: String; var AName: WideString): Boolean;
 
Public function FilePathIsChildOf (AFilePath: TCatalogFilePath; const AParentGUID: String; Hierarchical: Boolean = False): Boolean;
 
Public function FilePathIsParentOf (AFilePath: TCatalogFilePath; AChild: TCatalogFilePath): Boolean;
 
Public procedure StorePropToDatabase (AProp: TCatalogItemProp; const AParentGUID: String; WithSubs: Boolean = True);

store a catalog label (TCatalogItemProp) to the database in a specific parent

Public procedure StorePropsToDatabase (AProps: TCatalogItemProps; const AParentGUID: String);
 
Public procedure UpdateProp (AProp: TCatalogItemProp);
 
Public procedure UpdateParentForProp (AProp: TCatalogItemProp; const AParentGUID: String);
 
Public function MergePropWithProp (AProp, ATarget: TCatalogItemProp; WithSubs: Boolean = True): Boolean;
 
Public procedure UpdateSyncStateForProp (AProp: TCatalogItemProp; const AIncludeStates, AExcludeStates: TSyncState; ARecursive: Boolean = True);
 
Public procedure UpdateSyncStateForItem (AItem: TCatalogItem; const AIncludeStates: TSyncState = []; const AExcludeStates: TSyncState = []);
 
Public procedure UpdateSignatureForItem(const AItemGUID: String; const ASignature, AFileSignature: AnsiString; AWithNotify: Boolean = True);
 
Public procedure EnumParentGUIDsForProp (APropItem: TCatalogItemProp; AParents: TStrings);
 
Public procedure EnumParentGUIDsForProps (APropItems: TCatalogItemProps; AParents: TStrings);
 
Public function EnumParentGUIDForProp (APropItem: TCatalogItemProp): String;
 
Public function EnumParentForProp(const AGUID: String; AParent: TCatalogItemProp): Boolean;
 
Public function TopParentGUIDForProp (APropItem: TCatalogItemProp): String;
 
Public function TopParentGUIDForPropGUID (const AGUID: String): String;
 
Public function PropsHasSubs (AProps: TCatalogItemProps): Boolean;
 
Public procedure EnumParentGUIDsForFilePath (AFilePath: TCatalogFilePath; AParents: TStrings);
 
Public function CountItemsForCategory (ACat: TCatalogPropCategory): Integer;
 
Public function CountItemsForProp (APropItem: TCatalogItemProp): Integer;
 
Public function CountItemsForRating (ARating: Integer): Integer;
 
Public function CountItemsForLabel (const ALabel: WideString): Integer;
 
Public function CountItemsForState (AState: TCatalogStateObject): Integer;
 
Public function CountItemsForPeriod (APeriod: TCatalogPeriod): Integer;
 
Public function CountItemsForFilePath (AFilePath: TCatalogFilePath): Integer;
 
Public function CountItemsForFilePathState (AState: TFilePathStateObject): Integer;
 
Public function CountItemsForStackMarker (AMarker: TStackMarkerObject): Integer;
 
Public function CountItemsForFileType (AFileType: TCatalogFileType): Integer;
 
Public function CountItemsForImport (AImport: TCatalogImport): Integer;
 
Public function CountItemsForCatalogPeriod (AFilePeriod: TCatalogPeriod): Integer;
 
Public function CountItemsForVersionPlaceHolder (APlaceHolder: TCatalogPlaceHolder): Integer;
 
Public function CountItemsForXMPProperty (const AXMPProperty: WideString): Integer;
 
Public function CountItemsForMetaOccurrence (AOccurrence: TMetaSchemaItemOccurence): Integer;
 
Public function CountItemsForGroup (AGroup: TCatalogPropGroup): Integer;
 
Public function CountItemsForAlbum (AAlbum: TImageModel): Integer;
 
Public function CountItemsForCollection (AColl: TImageCollection): Integer;
 
Public function CountPropsForParent (const AParentGUID: String): Integer;

return the number of labels that are a child of a parent

Public function CountPropsForItem (AItem: TCatalogItem; AIncludeAutoProps: Boolean = True): Integer;

return the number of labels that is assigned to a catalog item

Public function CountPropsForImage (AImage: TImageItem; AIncludeAutoProps: Boolean = True): Integer;

return the number of labels that is assigned to an image item

Public function CountRelationsForProp(AProp: TCatalogItemProp): Integer;
 
Public function AddPropToProps (AProps: TCatalogItemProps; AParentGUID: String): TCatalogItemProp;

add a new Prop to a TCatalodItemProps class and initialize the name of the label

Public function IsIgnoredMetaParamForcascading (const AParamCommand: WideString): Boolean;
 
Public function WriteXMPForItem (AItem: TCatalogItem): Boolean;
 
Public procedure WriteXMPParamsForItem (AItem: TCatalogItem; AParms: TList; ADeleteKind: TSearchDataDeleteKind);
 
Public procedure DeleteXMPParamsForItem (AItem: TCatalogItem; AParms: TList);
 
Public function WriteXMPTagsForItem (AItem: TCatalogItem; AXmp: TObject; AWithStoreXMPToDB: Boolean = True): Boolean;
 
Public function WriteXMPTagForItem (AItem: TCatalogItem; AParam: TObject): Boolean;
 
Public function WriteXMPTagForImage (AImage: TImageItem; AParam: TObject): Boolean;
 
Public function ReadXMPTagForItem (AItem: TCatalogItem; AParam: TObject): WideString;
 
Public function DeleteXMPTagForItem (AItem: TCatalogItem; const AParamCommand: WideString; const AIsStructure: Boolean): Boolean;
 
Public function WriteXMPCacheToItem (AItem: TCatalogItem; AXmp: TObject = nil; AFullReplace: Boolean = False): Boolean;
 
Public function WriteXMPCacheToImage (AImage: TImageItem; AXmp: TObject = nil; AFullReplace: Boolean = False): Boolean;
 
Public function _SynchronizeToItem (AItem: TCatalogItem; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; AKeepXMP: Boolean = False): Boolean;
 
Public function SynchronizeToItem (AItem: TCatalogItem; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; AKeepXMP: Boolean = False; AThreaded: Boolean = True; ASyncCommand: TXMPSyncCommand = scAuto): Boolean;
 
Public function SynchronizeToItems (AItems: TCatalogItems; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; AKeepXMP: Boolean = False; AThreaded: Boolean = True; ASyncCommand: TXMPSyncCommand = scAuto; ADetectVersions: Boolean = False; ADetectStacks: Boolean = False; const APostNotification: WideString = ''; const ATitleAddition: WideString = ''): Boolean;
 
Public function SynchronizeToImage (AImage: TImageItem; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; AKeepXMP: Boolean = False; AThreaded: Boolean = True; ASyncCommand: TXMPSyncCommand = scAuto): Boolean;
 
Public procedure SynchronizeGroup (AGroup: TCatalogPropGroup; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; ASyncCommand: TXMPSyncCommand);
 
Public procedure SynchronizeGroupWithJobs (AGroup: TCatalogPropGroup; AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; ASyncCommand: TXMPSyncCommand);
 
Public procedure SynchronizeOutOfSync (AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; ASyncCommand: TXMPSyncCommand);
 
Public procedure SynchronizeOutOfSyncWithJobs (AReadSettings: TXMPSyncReadSettings; AWriteSettings: TXMPSyncWriteSettings; ASyncCommand: TXMPSyncCommand);
 
Public function IgnoreXMPTag (const AXMPProperty: WideString): Boolean;
 
Public function ReadGEOLocationFromXMP (AItem: TCatalogItem; AXmp: TObject): Boolean;

fill the cache GEO location fields based on the passed XMP object

Public procedure _LoadXMPForItem (AItem: TCatalogItem; AXMP: TObject; const ACheckCache: Boolean; const ASchemaURL: WideString = '');

_LoadXMPForItem is for internal use only; scripts should use LoadXMPForItem instead

Public procedure LoadXMPForItem (AItem: TCatalogItem; AXMP: TObject; ACheckCache: Boolean);

load an XMP block from the database to an XMP object for a specific image

Public procedure LoadIntersectedXMPForItems(AItems: TCleanCatalogItems; AXMP: TObject; const ACheckCache: Boolean; const AVolumeThreshold: Integer);

load and intersect the XMP for a set of items

Public function _LoadXMPForImage (AImage: TImageItem; AXMP: TObject; const ACheckCache: Boolean; const ACreateIfNotExists: Boolean = True; const ASchemaURL: WideString = ''): Boolean;

_LoadXMPForImage is for internal use only; scripts should use LoadXMPForImage instead

Public function LoadXMPForImage (AImage: TImageItem; AXMP: TObject; ACheckCache: Boolean): Boolean;
 
Public procedure _SaveXMPForItem (AItem: TCatalogItem; AXMP: TObject; ACheckCache: Boolean; AWithTags: Boolean; AWithStoreXMPToDB: Boolean; ACanAffectSyncState: Boolean);

_SaveXMPForItem is for internal use only; scripts should use SaveXMPForItem instead

Public procedure _SaveXMPForImage (AImage: TImageItem; AXMP: TObject; ACheckCache: Boolean; AWithTags: Boolean; AWithStoreXMPToDB: Boolean; ACanAffectSyncState: Boolean);

_SaveXMPForImage is for internal use only; scripts should use SaveXMPForImage instead

Public procedure SaveXMPForItem (AItem: TCatalogItem; AXMP: TObject; ACheckCache: Boolean);
 
Public procedure SaveXMPForImage (AImage: TImageItem; AXMP: TObject; ACheckCache: Boolean);
 
Public procedure DeleteXMPForItem (AItem: TCatalogItem);
 
Public procedure DeleteXMPForImage (AImage: TImageItem);
 
Public function LoadTransferDataForImage (AImage: TImageItem; AData: TidElement): Boolean;
 
Public function LoadTransferDataForItem (AItem: TCatalogItem; AData: TidElement): Boolean;
 
Public function LoadTransferDataForGUID (const AGUID: String; AData: TidElement): Boolean;
 
Public function TransferDataForItemExists (AItem: TCatalogItem): Boolean;
 
Public function TransferDataForGUIDExists (const AGUID: String): Boolean;
 
Public procedure SaveTransferDataForImage (AImage: TImageItem; AData: TidElement);
 
Public procedure SaveTransferDataForItem (AItem: TCatalogItem; AData: TidElement);
 
Public procedure SaveTransferDataForGUID (const AGUID: String; AData: TidElement);
 
Public function FindXMPCachedTagValueForItem (AItem: TCatalogItem; const AXmpTag: WideString; var AResult: WideString): Boolean;
 
Public function FindXMPCachedTagValueForImage (AImage: TImageItem; const AXmpTag: WideString; var AResult: WideString): Boolean;
 
Public function ItemHasXMPProperty (AItem: TCatalogItem; AXmpTag: WideString): Boolean;

return a boolean if a specific XMP property exists for a specific item e.g. ItemHasXMPProperty (ACatItem, 'dc:title')

Public function ImageHasXMPProperty (AImage: TImageItem; const AXmpTag: WideString): Boolean;
 
Public function ReadCachedXMPForItem (AItem: TCatalogItem; AResult: TidElement): Boolean;
 
Public function WriteCachedXMPForItem (AItem: TCatalogItem; ACachedValues: TidElement): Boolean;
 
Public function ReadCachedDataForItem (AItem: TCatalogItem; AResult: TidElement): Boolean;
 
Public function ReadCachedDataForItemsInTempList (AItems: TCatalogItems; AResult: TidElement; AContentType: WideString = ''): Boolean;
 
Public function ReadCachedDataForItemsInTempListIntersected (AItems: TCleanCatalogItems; AResult: TidElement; AContentType: WideString = ''): Boolean;
 
Public function WriteCachedDataForItem (AItem: TCatalogItem; ACachedValues: TidElement; ADeleteKind: TSearchDataDeleteKind = sddkAll): Boolean;
 
Public procedure BuildSearchData;
 
Public procedure BuildFilePathCache;
 
Public procedure BuildPropCache;
 
Public procedure BuildSimilarityData;
 
Public procedure LoadCatalogCrossPlatformItems;
 
Public procedure SaveCatalogCrossPlatformItems;
 
Public procedure ResetCrossPlatformMediumItems;
 
Public function UpdateSearchData (const ARelatedGUID: String; const AContentType, AContentGroup, AContentValue: WideString): Boolean;
 
Public function DeleteSearchData (const ARelatedGUID: String; const AContentType: WideString = ''; const AContentGroup: WideString = ''): Boolean;
 
Public function WriteTextSearchData (const ARelatedGUID: String; const AContentType: WideString; ASearchValues: TxomStrings; const ADeleteKind: TSearchDataDeleteKind = sddkAll): Boolean;
 
Public function WriteSearchData (const ARelatedGUID: String; ASearchValues: TidElement; const ADeleteKind: TSearchDataDeleteKind = sddkAll): Boolean;
 
Public function AddCollection (ACollection: TImageCollection): Boolean;
 
Public function RemoveImagesInCollection (ACollection: TImageCollection): Boolean;
 
Public function FindImage (AImage: TImageItem; AResult: TCatalogItem; const WithDefinition: Boolean = False): Boolean;
 
Public function FindFileName (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItem; WithDefinition: Boolean = False): Boolean;
 
Public function FindFileQuick (const AFileName: WideString; AResult: TCatalogItem; ACheckVersionToo: Boolean): Boolean;
 
Public function FindFilesQuick (const AFileName: WideString; AResult: TCatalogItems; ACheckVersionToo: Boolean): Boolean;
 
Public function FindVersion (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItem): Boolean;
 
Public function FindVersionInMain (AMain: TCatalogItem; const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItem): Boolean;
 
Public function FindVersionItemInMain (AMain: TCatalogItem; AItem: TCatalogItem; AResult: TCatalogItem): Boolean;
 
Public function FindVersionTypeInMain (AMain: TCatalogItem; AType: TCatalogPlaceHolderType; AResult: TCatalogItem): Boolean;
 
Public function FindVersionTypeInMainImage (AMain: TImageItem; AType: TCatalogPlaceHolderType; AResult: TCatalogItem): Boolean;
 
Public function FindVersionItem (AItem: TCatalogItem; AResult: TCatalogItem): Boolean;
 
Public function FindVersionImage (AImage: TImageItem; AResult: TCatalogItem): Boolean;
 
Public function FindItemCombined (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItem; WithDefinition: Boolean = False; AMainVersionIfVersion: Boolean = False; AMainPlaceHolderType: TCatalogPlaceHolderType = vptNone): Boolean;
 
Public function FindItemCombined2 (AItem: TCatalogItem; AResult: TCatalogItem; AMainVersionIfVersion: Boolean = False; AMainPlaceHolderType: TCatalogPlaceHolderType = vptNone): Boolean;
 
Public function FindImageCombined (AImage: TImageItem; AResult: TCatalogItem; AMainVersionIfVersion: Boolean = False; AMainPlaceHolderType: TCatalogPlaceHolderType = vptNone): Boolean;
 
Public function FindItemSyncStateCombinedByGUID(const AGUID: String; var ASyncState: TSyncState): Boolean;
 
Public function FindMainVersion (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AResult: TCatalogItem): Boolean;
 
Public function FindMainVersionForItem (AItem: TCatalogItem; AResult: TCatalogItem): Boolean;
 
Public function FindMainVersionForItemGUID (const AVersionGUID: String; AResult: TCatalogItem): Boolean;
 
Public function EnumVersionForPlaceHolderInMain (AMainItem: TCatalogItem; APlaceHolder: TCatalogPlaceHolder; AResult: TCatalogItem): Boolean;
 
Public function EnumVersionForMainVersionInCollection (AMainItem: TCatalogItem; ACollection: TImageCollection; AResult: TCatalogItem): Boolean;
 
Public function EnumPlaceHolderForVersionInMain (AMainItem: TCatalogItem; AVersion: TCatalogItem; AResult: TCatalogPlaceHolder): Boolean;
 
Public function EnumPlaceHoldersForVersionInMain (AMainItem: TCatalogItem; AVersion: TCatalogItem; AResult: TCatalogPlaceHolders): Boolean;
 
Public function RemoveVersionForPlaceHolderInMain (AMainItem: TCatalogItem; APlaceHolder: TCatalogPlaceHolder): Boolean;
 
Public function RemovePlaceHoldersOfVersion (AVersion: TCatalogItem): Boolean;
 
Public function AssignPlaceHolderToVersionInMain (AMainItem, AVersion: TCatalogItem; APlaceHolder: TCatalogPlaceHolder): Boolean;
 
Public function AssignPlaceHolderTypeToVersionInMain (AMainItem, AVersion: TCatalogItem; APlaceHolderType: TCatalogPlaceHolderType): Boolean;
 
Public procedure SwapPlaceHoldersForItem (AMainItem: TCatalogItem; ASourcePH, ATargetPH: TCatalogPlaceHolder);
 
Public procedure SwapPlaceHoldersForImage (AImage: TImageItem; ASourcePH, ATargetPH: TCatalogPlaceHolder);
 
Public function FindMainVersionForImage (AImage: TImageItem; AResult: TCatalogItem): Boolean;
 
Public function RelocateFile (const AOldFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; const ANewFileName: WideString; AResult: TCatalogItem): Boolean;
 
Public function RelocateFolder (const AOldFolderName, ANewFolderName: WideString; var ACount: Integer): Boolean;
 
Public function RelocateFilePath (AOldPath: TCatalogFilePath; const ANewFolderName: WideString; var ACount: Integer): Boolean;
 
Public function DeleteCatItem (AItem: TCatalogItem; DeleteIfIsVersionToo: Boolean = True): Boolean;
 
Public function DeleteItem (AImageItem: TImageItem; DeleteIfIsVersionToo: Boolean = True): Boolean;
 
Public function DeleteFileName (const AFileName: WideString; DeleteIfIsVersionToo: Boolean = True): Boolean;
 
Public function DeleteFileItem (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; const DeleteIfIsVersionToo: Boolean = True): Boolean;
 
Public procedure DeleteItemsInTempList (AItems: TCatalogItems);
 
Public function DeleteFolder (const AFolderName: WideString): Boolean;
 
Public procedure RemoveProp (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; AProp: TCatalogItemProp);
 
Public procedure RemoveRating (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer);
 
Public procedure RemoveLabel (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer);
 
Public function RenameFileName (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; const ANewFileName: WideString; AResult: TCatalogItem): Boolean;
 
Public function RenameItem (AItem: TCatalogItem; const ANewFileName: WideString): Boolean;
 
Public function RenameImage (AImage: TImageItem; const ANewFileName: WideString): Boolean;
 
Public function FindRatingFor (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer): Integer;
 
Public function FindLabelFor (const AFileName: WideString; const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer): WideString;
 
Public procedure UpdateCollectionDetails (ACollection: TImageCollection);
 
Public function MoveCollection (ACollection: TImageCollection; const ANewParentGUID: String): Boolean;
 
Public function CopyCollection (ACollection: TImageCollection; const ANewParentGUID: String): Boolean;
 
Public function GalleryExists (const AGalleryGUID: String): Boolean;
 
Public function GalleryHasCollections (const AGalleryGUID: String): Boolean;
 
Public function ModelHasCollections (const AModelGUID: String): Boolean;
 
Public function CollectionHasCollections (const ACollectionGUID: String): Boolean;
 
Public function CollectionHasItems (const ACollectionGUID: String): Boolean;
 
Public procedure LockCollection (ACollection: TImageCollection; ALockState: Boolean);
 
Public function ItemInCollection (AItem: TCatalogItem; AColl: TImageCollection): Boolean;
 
Public function CreateThumbForObjectFromItem (ACatItem: TCatalogItem; ACatObject: TObject; AThumbSettings: TResizeSettings = nil): String;
 
Public function EnumItemsImport(AImport: TCatalogImport; AResult: TCatalogItems): Boolean;
 
Public function EnumItemsWithStateObject (AState: TCatalogStateObject; AResult: TCatalogItems): Boolean;
 
Public function EnumItemsWithState (AState: TCatalogState; AResult: TCatalogItems): Boolean;
 
Public function EnumItemsCollection (ACollection: TImageCollection; AResult: TCatalogItems; const ARecursive: Boolean; const AVersionPHGUID: String = AlbumPlaceHolderGUID): Boolean;
 
Public function EnumItemsGallery (AGallery: TImageGallery; AResult: TCatalogItems; const AVersionPHGUID: String = AlbumPlaceHolderGUID): Boolean;
 
Public function EnumItemsAlbum (AAlbum: TImageModel; AResult: TCatalogItems; const AVersionPHGUID: String = AlbumPlaceHolderGUID): Boolean;
 
Public function EnumItemsForCatalogPeriod (ACatPeriod: TCatalogPeriod; AResult: TCatalogItems; ARecursive: Boolean): Boolean;
 
Public function EnumItemsForPeriod (APeriod: TPeriod; AResult: TCatalogItems): Boolean;
 
Public function EnumItemsForVersionPlaceHolder (ACatPlaceHolder: TCatalogPlaceHolder; AResult: TCatalogItems): Boolean;
 
Public function EnumItemsForMetaItem (AMetaItem: TMetaSchemaItem; AResult: TCatalogItems): Boolean;
 
Public function EnumItemsForMetaItemOccurrence (AOccurrence: TMetaSchemaItemOccurence; AResult: TCatalogItems): Boolean;
 
Public procedure EnumAreaItems (const AText: WideString; AResult: TCatalogItems);
 
Public procedure EnumPropsForParent (const AParentGUID: String; AResult: TCatalogItemProps; const ARecursive: Boolean = False; const AWithCount: Boolean = False);
 
Public function EnumParentsForProp (AProp: TCatalogItemProp; AParents: TCatalogItemProps; ACatAsProp: Boolean = True): Boolean;
 
Public function EnumPropsWithTextExpansion(AResult: TCatalogItemProps): boolean;

Find catalog labels with HotWords (text expansion)

Public function EnumSuggestionsForProps (AProps: TCatalogItemProps; AResult: TCatalogItemProps; const AMaxResults: Integer = 10; const AWithCounts: Boolean = False): Boolean;

find catalog labels (AResult) that are suggested for the labels in AProps. These are labels that are assigned most frequently together with the specified labels

Public function EnumSuggestionsForProp (AProp: TCatalogItemProp; AResult: TCatalogItemProps; const AMaxResults: Integer = 10; const AWithCounts: Boolean = False): Boolean;

find catalog labels (AResult) that are suggested for a specific catalog label AProp. These are labels that are assigned most frequently together with the specified label

Public function EnumSuggestionsForItem (AItem: TCatalogItem; AResult: TCatalogItemProps; const AMaxResults: Integer = 10; const AWithCounts: Boolean = False): Boolean;

find catalog labels (AResult) that are suggested for a specific catalog item AItem

Public function EnumSuggestionsForItemsInTempList (AItems: TCatalogItems; AResult: TCatalogItemProps; const AMaxResults: Integer = 10; const AWithCounts: Boolean = False): Boolean;
 
Public function EnumSuggestionsForImage (AImage: TImageItem; AResult: TCatalogItemProps; const AMaxResults: Integer = 10; const AWithCounts: Boolean = False): Boolean;

find catalog labels (AResult) that are suggested for a specific catalog item AItem

Public function EnumPropsRelatedToProps (AProps: TCatalogItemProps; AResult: TCatalogItemProps; const AWithCounts: Boolean = False): Boolean;

find all catalog labels that are related to a set of catalog labels

Public function EnumPropsRelatedToProp (AProp: TCatalogItemProp; AResult: TCatalogItemProps; const AWithCounts: Boolean = False): Boolean;

find all catalog labels that are related to a specific catalog label

Public procedure EnumRelationPropsForParent (const AParentGUID: String; AResult: TCatalogItemProps; const ARecursive: Boolean = False; const AWithCount: Boolean = False);
 
Public function EnumRelationBetweenProps (AProp1, AProp2: TCatalogItemProp; AResult: TCatalogPropRelation): Boolean;
 
Public procedure EnumRelationsForPropGUID (const AGUID: String; AResult: TCatalogPropRelations);
 
Public procedure EnumRelationsForItemGUIDWithPropGUID (const AItemGUID, APropGUID: String; AResult: TCatalogPropRelations);
 
Public procedure EnumRelationsForProp (AProp: TCatalogItemProp; AResult: TCatalogPropRelations);
 
Public procedure EnumRelationsForItemWithProp(AItem: TCatalogItem; AProp: TCatalogItemProp; AResult: TCatalogPropRelations);
 
Public procedure UpdateRelation (ARel: TCatalogPropRelation);
 
Public procedure DeleteRelation (ARel: TCatalogPropRelation);
 
Public function EnumRelation (const AGUID: String; AResult: TCatalogPropRelation): Boolean;
 
Public function CountRating (const ARating: Integer): Integer;
 
Public function CountLabel (const ALabel: WideString): Integer;
 
Public procedure EnumLastUsedProps (AProps: TCatalogItemProps; const ACount: Integer = 5; const AWithCounts: Boolean = True);
 
Public function EnumProp (const AGUID: String; AProp: TCatalogItemProp; const AWithCount: Boolean = False): Boolean;
 
Public function EnumPropName (const AParentGUID: String; const AName: WideString; AProp: TCatalogItemProp; const AWithSynonyms: Boolean = False): Boolean;
 
Public procedure EnumAllItems (ACatalogItems: TCatalogItems);
 
Public procedure EnumAllItemGUIDs (ACatalogItems: TCleanCatalogItems);
 
Public procedure EnumAllOutOfSyncItems (ACatalogItems: TCatalogItems);
 
Public procedure EnumItemsWithoutThumbs (ACatalogItems: TCleanCatalogItems; AMaxResults: Integer = -1);
 
Public function CountItemsWithoutThumbs: Integer;
 
Public procedure EnumThumbsWithoutItems (AResult: TThumbItems);
 
Public function CountThumbsWithoutItems: Integer;
 
Public procedure EnumItemsWithoutSearchData(ACatalogItems: TCleanCatalogItems; AMaxResults: Integer = -1);
 
Public function CountItemsWithoutSearchData: Integer;
 
Public procedure EnumAllBookmarkedItems (ACatalogItems: TCatalogItems);
 
Public procedure EnumPropsForItem (AItem: TCatalogItem; AResult: TCatalogItemProps; AQuick: Boolean; AIncludeAutoCatalog: Boolean = True; AIncludePrivate: Boolean = True);
 
Public procedure EnumPropsForImage (AImage: TImageItem; AResult: TCatalogItemProps; AQuick: Boolean; AIncludeAutoCatalog: Boolean = True);
 
Public procedure EnumPropsForItemsInTempList (AItems: TCatalogItems; AResult: TCatalogItemProps; AQuick: Boolean; AIncludeAutoCatalog: Boolean = True; AWithCounts: Boolean = False);
 
Public procedure EnumPropsForItemsInGroup (AGroup: TCatalogPropGroup; AResult: TCatalogItemProps; AQuick: Boolean; AIncludeAutoCatalog: Boolean = True; AWithCounts: Boolean = False);
 
Public procedure EnumCollectionsForItemsInTempList (AItems: TCatalogItems; AResult: TImageCollections);
 
Public procedure EnumPropsForMainItem (AItem: TCatalogItem; AResult: TCatalogItemProps; AQuick: Boolean; AIncludeAutoCatalog: Boolean = True);
 
Public procedure EnumPropsInParentForItem (AItem: TCatalogItem; const AParentGUID: String; AResult: TCatalogItemProps; const AQuick: Boolean; const AIncludeAutoProps: Boolean = True; const AIncludePrivateProps: Boolean = True; const AHierarchical: Boolean = False; const AMaxResults: Integer = -1);
 
Public function EnumCollectionDetails (ACollection: TImageCollection): Boolean;
 
Public function EnumCollectionByGUID(const AGUID: String; AResult: TImageCollection): Boolean;
 
Public procedure EnumAllProps (AProps: TCatalogItemProps);
 
Public function EnumAllPropsWithShortcuts (AProps: TCatalogItemProps): Boolean;

find all catalog labels that have a shortcut defined for it

Public function EnumAllPropsWithShortcut (AShortcut: TShortCut; AResult: TCatalogItemProps): Boolean;

find all catalog labels with a specific shortcut (typically one)

Public function EnumAllPropsWithGPS (AProps: TCatalogItemProps; AMinimumRadius: Integer = -1): Boolean;

find all catalog labels that have GEO location defined for it

Public function EnumPropsForGeoLocation(AGPSLat: Double; AGPSLon: Double; AGPSRadiusMeters: Double; AResult: TCatalogItemProps; AMaxResults: Integer = 0): Boolean;

find all catalog labels that are within a specified radius of a specific GEO Location (Lat/Lon)

Public function EnumPropsOverlappingGeoLocation(AGPSLat: Double; AGPSLon: Double; AResult: TCatalogItemProps; AMaxResults: Integer = 0): Boolean;

find all catalog labels that overlap with a specific GEO Location (Lat/Lon)

Public function EnumPropsInRadiusForLocs (ALocs: TGPSLocations; ARadiusMeters: Double; AResult: TCatalogItemProps; AMaxResults: Integer = 0): Boolean;

find all catalog labels that are located within a radius for a set of locations (lat/lon)

Public function EnumPropsInRadius (AGPSLat: Double; AGPSLon: Double; ARadiusMeters: Double; AResult: TCatalogItemProps; AMaxResults: Integer = 0): Boolean;

find all catalog labels that are located within a radius of a specifc GEO Location (Lat/Lon)

Public function PropOverlapsGeoLocation(AProp: TCatalogItemProp; AGPSLat: Double; AGPSLon: Double): Boolean;

check if a catalog label (Prop) overlaps with a specific GEO Location (Lat/Lon)

Public function PropGUIDOverlapsGeoLocation(const AGUID: String; AGPSLat: Double; AGPSLon: Double): Boolean;

check if a catalog label (Prop), specified with its GUID, overlaps with a specific GEO Location (Lat/Lon)

Public function EnumItemsForGeoLocation(AGPSLat: Double; AGPSLon: Double; AGPSRadiusMeters: Double; AResult: TCatalogItems; AMaxResults: Integer = 0): Boolean;
 
Public procedure FindUnPropped (AResult: TCatalogItems; AModel: TImageModel = nil; AGallery: TImageGallery = nil; ACollection: TImageCollection = nil; AVersionPHGUID: String = AlbumPlaceHolderGUID);
 
Public function ItemDataHashKey(AItem: TCatalogItem; const ADataName: WideString): String;
 
Public procedure UpdateDataHashKey(AItem: TCatalogItem; const ADataName: WideString; const AHash: String);
 
Public function GUIDHasData (const AGUID: String; const ADataName: WideString): Boolean;
 
Public function EnumGUIDDatas (const AGUID: String; const ADataName: WideString; AResult: TxomResources): Boolean;
 
Public function EnumGUIDData (const AGUID: String; const ADataName: WideString; AResult: TxomResource): Boolean;
 
Public function EnumGUIDDataDetails (const AGUID: String; const ADataName: WideString; AResult: TxomResource): Boolean;
 
Public function UpdateGUIDData (const AGUID: String; const ADataName: WideString; AResult: TxomResource): Boolean;
 
Public function StoreGUIDData (const AGUID: String; const ADataName: WideString; AData: TxomResource): Boolean;
 
Public function EnumData (AData: TxomResource): Boolean;
 
Public function UpdateData (AData: TxomResource): Boolean;
 
Public function DeleteData (AData: TxomResource): Boolean;
 
Public function RemoveGUIDData (const AGUID: String; const ADataName: WideString): Boolean;
 
Public function RenameGUIDData (const AGUID: String; const AOldDataName, ANewDataName: WideString): Boolean;
 
Public function EnumGUIDNamedDataDetails (const AGUID: String; const ADataName: WideString; AResult: TxomResource): Boolean;
 
Public function EnumGUIDDataStream (const AGUID: String; const ADataName: WideString; AResult: TStream): Boolean;
 
Public function StoreGUIDDataStream (const AGUID: String; const ADataName: WideString; AData: TStream): Boolean;
 
Public function DeleteGUIDDataStream (const AGUID: String; const ADataName: WideString): Boolean;
 
Public function ItemHasData (AItem: TCatalogItem; const ADataName: WideString): Boolean;
 
Public function EnumItemData (AItem: TCatalogItem; const ADataName: WideString; AResult: TxomResource): Boolean;
 
Public function StoreItemData (AItem: TCatalogItem; const ADataName: WideString; AData: TxomResource): Boolean;
 
Public function RemoveItemData (AItem: TCatalogItem; const ADataName: WideString): Boolean;
 
Public procedure EnumAllItemsWithData (ACatalogItems: TCatalogItems; const ADataName: WideString; AMarked, AUnMarked: Boolean);
 
Public function LoadOptions (AOptions, AUserOptions: TOptions): Boolean; virtual;
 
Public function SaveOptions (AOptions, AUserOptions: TOptions): Boolean; virtual;
 
Public procedure StoreMultiUserNotification (ANot: TidMultiUserNotificationItem);
 
Public procedure EnumMultiUserNotificationsSince(ATimestamp: TDateTime; AResult: TidMultiUserNotificationItems);
 
Public procedure CleanUpMultiUserNotifications;
 
Public procedure StoreJob(AJob: TJob);
 
Public procedure ResetLockedJobs;
 
Public procedure CleanupJobs;
 
Public procedure FinishUnfinishedJobs;
 
Public function DeleteJob(const AGUID: String): Boolean;
 
Public function JobExists(const AGUID: String): Boolean;
 
Public function JobIsFinished(const AGUID: String): Boolean;
 
Public function JobTimeFrame(const AGUID: String): TJobRepeatTimeFrame;
 
Public function CreateJobForGUID(const AGUID: String; const AJobTask: TJobTask; const AData: TidElement; const AChainLinkSize: Integer; const AJobGroupGUID: String; const APriority: TJobPriority): String;
 
Public function CreateJobForItem(const AItem: TCleanCatalogItem; const AJobTask: TJobTask; const AData: TidElement; const AChainLinkSize: Integer; const AJobGroupGUID: String; const APriority: TJobPriority): String;
 
Public function CreateJobForItems(const AItems: TCleanCatalogItems; const AJobTask: TJobTask; const AData: TidElement; AChainLinkSize: Integer; const AJobGroupGUID: String; const APriority: TJobPriority): String;
 
Public function CreateJobForItemsList(const AList: TList; const AJobTask: TJobTask; const AData: TidElement; const AChainLinkSize: Integer; const AJobGroupGUID: String; const APriority: TJobPriority): String;
 
Public function EnumLockedJobs(const AUserGUID: String; AJobs: TJobs): Boolean;
 
Public function EnumNextJob(const AUserGUID: String; AJob: TJob): Boolean;
 
Public function EnumJob(const AGUID: String; AJob: TJob): Boolean;
 
Public function EnumJobs(AJobs: TJobs): Boolean;
 
Public function EnumJobsWithTimeFrame(ATimeFrame: TJobRepeatTimeFrame; AResult: TJobs): Boolean;
 
Public function EnumJobGUIDsWithTimeFrame(ATimeFrame: TJobRepeatTimeFrame; AResult: TStrings): Boolean;
 
Public function ResetJob(AJob: TJob): Boolean;
 
Public function ChangeJobEnabled(const AGUID: String; ANewState: Boolean): Boolean;
 
Public function EnumJobGroup(const AGUID: String; AJobGroup: TJobGroup): Boolean;
 
Public procedure HandleJob(AJob: TJob; AASync: Boolean = True);
 
Public function CountJobsForJobGroup(const AGroupGUID: String): Integer;
 
Public function IsJobGroupStarted(const AGroupGUID: String): Boolean;
 
Public function DeleteFacesForItem(AItem: TCatalogItem): Boolean;
 
Public function StoreFacesForItem(AItem: TCatalogItem; AFaces: TxomFaces): Boolean;
 
Public function ItemHasFaces(AItem: TCatalogItem): Boolean;
 
Public function ItemGUIDHasFaces(const AGUID: String): Boolean;
 
Public function EnumItemXMPDataHashKey (AItem: TCatalogItem): String;
 
Public procedure UpdateItemXMPDataHashKey (AItem: TCatalogItem; const AHash: String);
 
Public function ItemHasXMPData (AItem: TCatalogItem): Boolean;
 
Public function ImageHasXMPData (AImage: TImageItem): Boolean;
 
Public function EnumItemXMPData (AItem: TCatalogItem; AXmp: TObject; var AState: Boolean; const ASchemaURL: WideString = ''): Boolean;
 
Public function EnumImageXMPData (AImage: TImageItem; AXmp: TObject; var AState: Boolean): Boolean;
 
Public function ItemStoreXMPData (AItem: TCatalogItem; AXmp: TObject): Boolean;
 
Public function RemoveItemXMPData (AItem: TCatalogItem): Boolean;
 
Public procedure EnumAllItemsWithXMPData (ACatalogItems: TCatalogItems; AMarked, AUnMarked: Boolean);
 
Public function EnumDetailsForMedium (const AMediumType: TMediumType; const AMediumName: WideString; const AMediumSerial: Integer; var AAlternateName: WideString; var ARootGUID: String): boolean;
 
Public function UpdateMedium (AMedium: TCatalogMedium): Boolean;
 
Public function UpdateMediumDetails (AOld, ANew: TCatalogMedium): Boolean;
 
Public function DeleteMedium (const AGUID: String): Boolean;
 
Public function CountForMedium (AMedium: TCatalogMedium): Integer;
 
Public function RequestMedium (AImage: TImageItem): Boolean;

open the dialog where a request if made to request the user to attach a medium

Public function IsExistingPropName (const AParentGUID: String; const APropName: WideString; AProp: TCatalogItemProp = nil): Boolean;
 
Public procedure ReConstructFromIPTC (const AFileName: WideString);
 
Public function ReConstructFromXMP (const AFileName: WideString; ASyncSettings: TXMPSyncReadSettings; AWithTags: Boolean = True): Boolean;
 
Public function ReConstructMainItemICSFromXMPObject (AItem: TCatalogItem; AXmpObject: TObject): Boolean;
 
Public procedure ReConstructFromKeywords (ACatItem: TCatalogItem; const AParentPropGUID: String; const AKeywords: WideString; const ADotted: Boolean; const ADottedSeparator: WideString = '.'; const ASyncType: TXMPSyncKeywordSetting = ksReplace);
 
Public procedure ReConstructFromXMPKeywords (const AFileName: WideString; const AParentPropGUID: String; ASyncSettings: TXMPSyncReadSettings; const AImportAllXMP: Boolean = False);
 
Public procedure ReConstructFromXMPObjectKeywords (ACatItem: TCatalogItem; AXmpObject: TObject; ASyncSettings: TXMPSyncReadSettings; const AImportAllXMP: Boolean = False);
 
Public function ShouldCompact: Boolean;
 
Public procedure CompactAndRepairDatabase;
 
Public procedure UpdateLastCompactStamp;
 
Public procedure ReadRowsAffectedList;
 
Public procedure UpdateRowsAffectedList;
 
Public procedure ExportStructureForCategories(AResult: TCatalogPropGroup; ACats: TCatalogPropCategories = nil);
 
Public procedure ImportStructureForCategories(AGroup: TCatalogPropGroup; AImportStyle: TImportStyle);
 
Public procedure DeletePropAndFree (AProp: TCatalogItemProp);
 
Public procedure DeleteProp (AProp: TCatalogItemProp);
 
Public procedure UpdateItemFromImageItem (AImageItem: TImageItem; CreateIfNotExists: Boolean);
 
Public procedure UpdateItemSimilarityCode (AItem: TCatalogItem; const ASimilarityCode: String);
 
Public procedure UpdateItemClassification (AItem: TCatalogItem; const AAIClassification: WideString);
 
Public procedure UpdateItemDetails (AItem: TCatalogItem; const ADims: WideString; const ASimilarityCode: String; const AAvgColor: String; const ARatio, ASharpness: Double; const AColorChannel: TColorChannel; const AAIClassification: WideString);
 
Public procedure UpdateImageDetails (AImageItem: TImageItem; const ADims: WideString; const ASimilarityCode: String; const AAvgColor: String; const ARatio, ASharpness: Double; const AColorChannel: TColorChannel; const AAIClassification: WideString);
 
Public procedure StoreModelToDatabase (AModel: TImageModel);
 
Public procedure ReadModelFromDatabase (AModel: TImageModel; AWithStructure: Boolean; AWithContent: Boolean; ARecursiveCols: Boolean = True; ARecursiveLevels: Integer = -1; AAsFlat: Boolean = False; AFlatResult: TImageCollection = nil; AVersionPHGUID: String = '');
 
Public procedure DeleteModelFromDatabase (AModel: TImageModel);
 
Public procedure UpdateModelToDatabase (AModel: TImageModel);
 
Public function PropListForItem (AItem: TCatalogItem): WideString;
 
Public procedure ReadGalleryFromDatabase (AGallery: TImageGallery; const AWithContent: Boolean; const AAsFlat: Boolean = False; AFlatResult: TImageCollection = nil; const AVersionPHGUID: String = ''; const ARecursiveCols: Boolean = True; const ARecursiveLevels: Integer = -1);
 
Public procedure ReadCollectionFromDatabase (ACollection: TImageCollection; const AWithContent: Boolean; const AVersionPHGUID: String = ''; const AAsFlat: Boolean = False);
 
Public function CountModels: Integer;
 
Public procedure EnumModels (AResult: TImageModelItems; const AWithStructure: Boolean = False; const AWithContent: Boolean = False; const AAllowVirtual: Boolean = False);
 
Public procedure EnumTypedModels (const ATypes: TCatalogPropAccessibilities; AResult: TImageModels; const AAllowVirtual: Boolean = False);
 
Public function EnumModel(const AGUID: String; AResult: TImageModel): Boolean;
 
Public function EnumModelNamed(const AName: WideString; AResult: TImageModel): Boolean;
 
Public function NewManualOrderForModel: Integer;
 
Public function PreviousManualOrderForModel (const AModelGUID: String): Integer;
 
Public function NextManualOrderForModel (const AModelGUID: String): Integer;
 
Public procedure EnumVirtualModel(AResult: TImageModel);

the virtual model is the model that contains non-portfolio collections; e.g. the Image Basket

Public procedure EnumImageBasket(AResult: TImageCollection);
 
Public procedure EnumSharesBasket(AResult: TImageCollection);
 
Public function IsSharedCollection(AGUID: String): Boolean;
 
Public function FindModelsByName(const AName: WideString; AResult: TImageModelItems; const ASearchStyle: TSearchStyle = ssExact): boolean;

Find portfolios based on a name.

Public procedure EnumModelGalleries (AModel: TImageModel; AResult: TImageGalleries);
 
Public function EnumModelGallery (AResult: TImageGallery): Boolean;
 
Public function EnumModelGalleryGUID (const AGUID: String; AResult: TImageGallery): Boolean;
 
Public function EnumModelGalleryNamed (const AName: WideString; AModel: TImageModel; AResult: TImageGallery): Boolean;
 
Public function EnumGalleryCollection (AResult: TImageCollection; const AWithCount: Boolean = False): Boolean;
 
Public procedure EnumGalleryCollections (AGallery: TImageGallery; AResult: TImageCollections);
 
Public function EnumModelCollection (AResult: TImageCollection): Boolean;
 
Public procedure EnumModelCollections (AModel: TImageModel; AResult: TImageCollections);
 
Public function FindCollectionsByName(const AName: WideString; AResult: TImageCollections; const ASearchStyle: TSearchStyle = ssExact): boolean;

Find portfolio collections based on a name.

Public function CollectionHasSubs (AColl: TImageCollection): Boolean;

return true or false depending if the collection specified has subcollections or not

Public function NewParentOrderForCollection (const AParentGUID: String): Integer;
 
Public function PreviousParentOrderForCollection (const AColGUID: String): Integer;
 
Public function NextParentOrderForCollection (const AColGUID: String): Integer;
 
Public function NewItemOrderForCollection (const AColGUID: String): Integer;
 
Public function PreviousItemOrderForCollection (const AColGUID, AItemGUID: String): Integer;
 
Public function NextItemOrderForCollection (const AColGUID, AItemGUID: String): Integer;
 
Public function EnumItemOrderForCollection (const AColGUID, AItemGUID: String): Integer;
 
Public procedure EnumCollectionCollections (ACollection: TImageCollection; AResult: TImageCollections);
 
Public procedure EnumCollectionsForParent( AParentGUID: String; AResult: TImageCollections; const ARecursive: Boolean = False);
 
Public function CountCollectionsForParent ( AParentGUID: String): Integer;
 
Public procedure EnumAccessCollections(const AAccessTypes: TCatalogPropAccessibilities; AResult: TImageCollections);
 
Public procedure EnumTypedCollections(const ATypes: TImageCollectionTypes; AResult: TImageCollections);
 
Public procedure EnumDynamicCollections(AResult: TImageCollections);
 
Public procedure EmptyCollection(ACollection: TImageCollection; const ARecursive: Boolean);
 
Public procedure EnumItemsInCollection (ACollection: TImageCollection; AResult: TCatalogItems);
 
Public procedure EnumCollectionContent (ACollection: TImageCollection; AWithContent: Boolean; const ARecursive: Boolean = True; const ARecursiveLevels: Integer = -1; const AVersionPHGUID: String = ''; const ABufferInfo: Boolean = False; const AMax: Integer = -1);
 
Public function IsModelCollection (ACollection: TImageCollection): Boolean;
 
Public procedure StoreItemToCollection (AItem: TCatalogItem; ACollection: TImageCollection; ASyncSettings: TXMPSyncReadSettings; const AStoreMeta: Boolean = False);
 
Public procedure StoreItemsToCollection (AItems: TCatalogItems; ACollection: TImageCollection);
 
Public procedure StoreItemsInTempListToCollection (AItems: TCatalogItems; AColl: TImageCollection);
 
Public procedure RemoveItemsInTempListFromCollection (AItems: TCatalogItems; AColl: TImageCollection);
 
Public procedure AddImageToCollection (AItem: TImageItem; ACollection: TImageCollection; ASyncSettings: TXMPSyncReadSettings; AStoreMeta: Boolean = False);
 
Public procedure AddImageToCollections (AItem: TImageItem; ACollections: TImageCollections; ASyncSettings: TXMPSyncReadSettings; AStoreMeta: Boolean = False);
 
Public procedure RemoveImageFromCollection (AItem: TImageItem; ACollection: TImageCollection);
 
Public procedure RemoveItemFromCollection (ACatItem: TCatalogItem; ACollection: TImageCollection);
 
Public procedure RemoveItemsFromCollection (ACatItems: TCatalogItems; ACollection: TImageCollection);
 
Public procedure UpdateCollectionImage (AItem: TImageItem; ACollection: TImageCollection; AColOrder: Integer = -1);
 
Public procedure UpdateCollectionOrders (ACollection: TImageCollection);
 
Public procedure StoreCollection (const AGalleryGUID: String; const AParentGUID: String; ACollection: TImageCollection; AWithContent: Boolean; AWithMeta: Boolean; ASyncSettings: TXMPSyncReadSettings; AProgress: TNotifyTextEvent2 = nil);
 
Public procedure StoreCollectionToParent (const AGalleryGUID: String; const AParentGUID: String; ACollection: TImageCollection);
 
Public procedure StoreCollectionToParentSimple (const AParentGUID: String; ACollection: TImageCollection);
 
Public procedure UpdateCollection (ACollection: TImageCollection);
 
Public procedure DeleteCollection (ACollection: TImageCollection);
 
Public function EnumCollectionItem (const ACollectionGUID: String; const AItemGUID: String; AResult: TImageItem): Boolean;
 
Public procedure UpdateGalleryDetails (const AModelGUID: String; AGallery: TImageGallery);
 
Public procedure UpdateGallery (AGallery: TImageGallery);
 
Public procedure SortGalleriesForModel (AModel: TImageModel);
 
Public procedure SortCollectionsForGallery (AGallery: TImageGallery);
 
Public procedure SortCollectionsForCollection (ACollection: TImageCollection);
 
Public procedure StoreGallery (const AModelGUID: String; AGallery: TImageGallery; const AWithContent: Boolean);
 
Public procedure DeleteGallery (AGallery: TImageGallery);
 
Public function ModelContainsItem (AModel: TImageModel; AItem: TCatalogItem): Boolean;
 
Public function ModelContainsCollection (AModel: TImageModel; ACollection: TImagecollection): Boolean;
 
Public function CollectionContainsItem (const ACollectionGUID: String; AItem: TCatalogItem; const ARecursive: Boolean = True): Boolean;
 
Public function CollectionIsChildOf (AColl: TImageCollection; const AParentGUID: String; const Hierarchical: Boolean = False): Boolean;
 
Public function EnumCollectionsForItem (AItem: TCatalogItem; AResult: TImageCollections): Boolean;
 
Public function EnumCollectionsForItemGUID (const AItemGUID: String; AResult: TImageCollections): Boolean;
 
Public function EnumNamedCollectionInParent (const AName: WideString; const AParentGUID: String; AResult: TImageCollection): Boolean;
 
Public function EnumCollectionsForImage (AImage: TImageItem; AResult: TImageCollections): Boolean;
 
Public function EnumParentCollectionForCollection (ACollection: TImageCollection; AResult: TImageCollection): Boolean;
 
Public function EnumParentGUIDForCollection (ACollection: TImageCollection): String;
 
Public function EnumTopCollectionForCollection (ACollection: TImageCollection; AResult: TImageCollection): Boolean;
 
Public function EnumGalleryForCollection (ACollection: TImageCollection; AResult: TImageGallery): Boolean;
 
Public function EnumModelForCollection (ACollection: TImageCollection; AResult: TImageModel): Boolean;
 
Public function EnumModelForGallery (AGallery: TImageGallery; AResult: TImageModel): Boolean;
 
Public function ItemCollectionPath (ACollection: TImageCollection; const ASeparator: WideString = '.'; const AReferred: Boolean = False): WideString;

return a delimited path name reference to the specified collection

Public function PathNameForCollection (ACollection: TImageCollection; const ASeparator: WideString = '.'; const AReferred: Boolean = False): WideString;

identical to ItemCollectionPath

Public procedure PathNameForCollections (ACollections: TImageCollections; const ASeparator: WideString = '.'; const AReferred: Boolean = False);
 
Public function ParentGUIDsForCollection (ACollection: TImageCollection; AParentsGUIDs: TStrings): Boolean;

return a delimited path name reference to the specified collection

Public function ItemGalleryPath (AGallery: TImageGallery; const ASeparator: WideString = '.'): WideString;

return a delimited path name reference to the specified gallery

Public function PathNameForGallery (AGallery: TImageGallery; const ASeparator: WideString = '.'): WideString;

identical to ItemGalleryPath

Public function EnumCollectionSubs (const ACollectionGUID: String; ASubs: TStringList): Boolean;
 
Public function EnumCollectionParents (const ACollectionGUID: String; AParents: TStringList): Boolean;
 
Public function EnumCollectionParentCollections (const ACollectionGUID: String; AParents: TImageCollections): Boolean;
 
Public procedure AddItemComment (AItem: TCatalogItem; AComment: TCatalogItemComment);

add a new comment to a catalog item

Public procedure AddImageComment (AImage: TImageItem; AComment: TCatalogItemComment);

add a new comment to an image

Public function EnumCommentsForItem (AItem: TCatalogItem; AResult: TCatalogItemComments): Boolean;

enumerate all the comments for a specific catalog item

Public function EnumCommentsForImage (AImage: TImageItem; AResult: TCatalogItemComments): Boolean;

enumerate all the comments for a specific image

Public function RemoveComment (AComment: TCatalogItemComment): Boolean;

remove a specific comment item

Public function RemoveCommentGUID (const AGUID: String): Boolean;

remove a specific comment item, based on the comment's GUID

Public function EnumCommentByGUID (const AGUID: String; AResult: TCatalogItemComment): Boolean;

remove a specific comment item, based on the comment's GUID

Public function EnumCommentedItems (AResult: TCatalogItems; const AMaxLimit: Integer = -1): Boolean;

find all catalog items with stored comments; optionally specify the number of items. the result is sorted by comment date (moment) descending

Public function EnumCommentedItemsSince (AResult: TCatalogItems; const AFromDate: TDateTime): Boolean;

find all catalog items with stored comments after a specific date (>= date) ; the result is sorted by comment date (moment) descending

Public function NewDataSet: TDBXOMClientDataSet;

to help script developers getting direct access to the database

Public procedure FreeDataSet (var ADataset: TDBXOMClientDataSet);
 
Public procedure StoreStreamAsBlob(ADataSet: TDBXOMClientDataSet; AField: TBlobField; AContent: TStream);
 
Public procedure ReadStreamFromBlob (ADataSet: TDBXOMClientDataSet; AField: TBlobField; AContent: TStream);
 
Public function ServerTimeStamp: TDateTime;

end scripter methods

Public function RunSQLScript (AScript: TxomStrings): Boolean;
 
Public function PlaceHolderName (const APlaceHolder: TCatalogPlaceHolderType): WideString;
 
Public function IsFixedCategory (ACat: TCatalogPropCategory): Boolean;
 
Public function IsFixedCategoryGUID (const AGUID: String): Boolean;
 

Properties

Public property CatUser : TidUser read GetCatUser;
 
Public property TotalLabels: Integer read GetTotalLabels;
 
Public property TotalImages: Integer read GetTotalImages;
 
Public property EstimatedTotalImages: Integer read GetEstimatedTotalImages;
 
Public property TotalVersionSets: Integer read GetTotalVersionSets;
 
Public property TotalVersions: Integer read GetTotalVersions;
 
Public property TotalStacked: Integer read GetTotalStacked;
 
Public property TotalStacks: Integer read GetTotalStacks;
 
Public property ImportSessionCatalogGUID: String read GetImportSessionCatalogGUID;
 
Public property KeywordsGUID: String read GetKeywordsGUID;
 
Public property SQLDBLoginRegistryKey: String read GetSQLDBLoginRegistryKey;
 
Public property SQLDBServer: WideString read GetSQLDBServer;
 
Public property SQLDBName: WideString read GetSQLDBName;
 
Public property SQLDBNamePlain: WideString read GetSQLDBNamePlain;
 
Public property SQLDBFileName: WideString read GetSQLDBFileName;
 
Public property ThumbsDBFolder: WideString read GetThumbsDBFolder;
 
Public property Entities: TCatalogPropCategory read GetEntities;
 
Public property Styles: TCatalogPropCategory read GetStyles;
 
Public property Objects: TCatalogPropCategory read GetObjects;
 
Public property Places: TCatalogPropCategory read GetPlaces;
 
Public property Events: TCatalogPropCategory read GetEvents;
 
Public property Keywords: TCatalogPropCategory read GetKeywords;
 
Public property Dm: TDBXOMDataModule read FDm;
 
Public property Connection: TXOMConnection read GetConnection;
 
Public property CurrentUser: TidUser read GetCurrentUser;
 
Public property IsRestrictedUser: Boolean read GetIsRestrictedUser;
 
Public property PostCatalogActions: TCatalogActionsStringList read GetPostCatalogActions;
 
Public property LicenseClaimDurationMins: Double read FLicenseClaimDurationMins write FLicenseClaimDurationMins;
 
Published property CatalogItems : TCatalogItems read FCatalogItems write FCatalogItems;
 
Published property Categories : TCatalogPropCategories read FCategories write FCategories;
 
Published property Groups : TCatalogPropGroups read FGroups write FGroups;
 
Published property FilePaths : TCatalogFilePaths read FFilePaths write FFilePaths;
 
Published property PlaceHolders : TCatalogPlaceHolders read FPlaceHolders write FPlaceHolders;
 

Generated by PasDoc 0.15.0.