ACF $AcfVersion:0$
Public Member Functions | List of all members
idoc::CStandardDocumentMetaInfo Class Reference

Implementation of the basic document's meta information. More...

#include <CStandardDocumentMetaInfo.h>

Inheritance diagram for idoc::CStandardDocumentMetaInfo:
idoc::IDocumentMetaInfo iser::ISerializable istd::IChangeable istd::IChangeable istd::IPolymorphic istd::IPolymorphic idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument > idoc::TMultiPageDocumentWrap< Base > iimg::CMultiPageBitmapBase iimg::CMultiPageBitmapSequenceComp iimg::CMultiPageBitmapComp iimg::TMultiPageBitmap< BitmapImpl >

Public Member Functions

virtual MetaInfoTypes GetMetaInfoTypes (bool allowReadOnly=true) const override
 Get list of contained meta info types.
 
virtual QVariant GetMetaInfo (int metaInfoType) const override
 Get document's meta info.
 
virtual bool SetMetaInfo (int metaInfoType, const QVariant &metaInfo) override
 Set new document's meta information for a given meta type.
 
virtual void RemoveMetaInfo (int metaInfoType) override
 Remove document's meta information for a given meta type.
 
virtual QByteArray GetMetaInfoId (int metaInfoType) const override
 Get an unique ID of the meta information.
 
virtual QString GetMetaInfoName (int metaInfoType) const override
 Get a human readable name for a given meta information type.
 
virtual QString GetMetaInfoDescription (int metaInfoType) const override
 Get a human readable description for a given meta information type.
 
virtual bool IsMetaInfoWritable (int metaInfoType) const override
 Check if meta information can be changed.
 
virtual bool Serialize (iser::IArchive &archive) override
 Load or store state of this object as a archive stream.
 
virtual bool IsEqual (const IChangeable &object) const override
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const override
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS) override
 Reset data to its default state.
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 
- Public Member Functions inherited from iser::ISerializable
virtual quint32 GetMinimalVersion (int versionId) const
 Get minimal needed version to correct storing of this data.
 

Additional Inherited Members

- Public Types inherited from idoc::IDocumentMetaInfo
enum  ChangeFlags { CF_METAINFO = 0xd83067d }
 Data model change notification flags. More...
 
enum  MetaInfoType {
  MIT_TITLE , MIT_AUTHOR , MIT_CREATOR , MIT_DESCRIPTION ,
  MIT_CREATION_TIME , MIT_MODIFICATION_TIME , MIT_CREATOR_VERSION , MIT_DOCUMENT_VERSION ,
  MIT_CONTENT_CHECKSUM , MIT_USER = 1024
}
 Type of the meta information. More...
 
typedef QSet< int > MetaInfoTypes
 
- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 
- Static Public Member Functions inherited from idoc::IDocumentMetaInfo
template<class T >
static std::optional< T > GetMetaInfoT (const idoc::IDocumentMetaInfo &metaInfo, int key)
 Type-safe retrieval of metadata values.
 
- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 

Detailed Description

Implementation of the basic document's meta information.

Provides a standard implementation of IDocumentMetaInfo that stores metadata in a map structure. Supports all standard metadata types defined in IDocumentMetaInfo::MetaInfoType and custom user-defined types.

The implementation is serializable, allowing metadata to be saved and loaded along with document content.

Supported Standard Metadata
  • MIT_TITLE - Document title
  • MIT_AUTHOR - Document author name
  • MIT_CREATOR - Tool used to create the document
  • MIT_DESCRIPTION - Document description
  • MIT_CREATION_TIME - When document was created (QDateTime)
  • MIT_MODIFICATION_TIME - When document was last modified (QDateTime)
  • MIT_CREATOR_VERSION - Version of creation tool
  • MIT_DOCUMENT_VERSION - Document format version
  • MIT_CONTENT_CHECKSUM - Checksum of document data
Usage Example
// Create meta info instance
// Set standard metadata
QDateTime::currentDateTime());
// Add custom metadata
const int MIT_PROJECT = idoc::IDocumentMetaInfo::MIT_USER + 1;
metaInfo.SetMetaInfo(MIT_PROJECT, "PROJECT-123");
// Read metadata
QString title = metaInfo.GetMetaInfo(
// List all metadata
for (int type : types) {
QString name = metaInfo.GetMetaInfoName(type);
QVariant value = metaInfo.GetMetaInfo(type);
qDebug() << name << "=" << value;
}
// Serialize metadata
iser::CXmlArchive archive;
if (archive.OpenForWrite("metadata.xml")) {
metaInfo.Serialize(archive);
archive.Close();
}
Implementation of the basic document's meta information.
virtual MetaInfoTypes GetMetaInfoTypes(bool allowReadOnly=true) const override
Get list of contained meta info types.
virtual QVariant GetMetaInfo(int metaInfoType) const override
Get document's meta info.
virtual bool SetMetaInfo(int metaInfoType, const QVariant &metaInfo) override
Set new document's meta information for a given meta type.
virtual bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
virtual QString GetMetaInfoName(int metaInfoType) const override
Get a human readable name for a given meta information type.
@ MIT_TITLE
Title of the document.
@ MIT_AUTHOR
Person, who has created the document.
@ MIT_CREATION_TIME
Document creation time.
@ MIT_USER
Starting of user defined meta info types.
See also
IDocumentMetaInfo, IMultiPageDocument

Definition at line 76 of file CStandardDocumentMetaInfo.h.

Member Function Documentation

◆ CloneMe()

virtual istd::TUniqueInterfacePtr< istd::IChangeable > idoc::CStandardDocumentMetaInfo::CloneMe ( CompatibilityMode  mode = CM_WITHOUT_REFS) const
overridevirtual

Make a copy of this object.

Returns
new instance or NULL, if this operation is not supported.

Reimplemented from istd::IChangeable.

Reimplemented in iimg::TMultiPageBitmap< BitmapImpl >.

◆ CopyFrom()

virtual bool idoc::CStandardDocumentMetaInfo::CopyFrom ( const IChangeable &  object,
CompatibilityMode  mode = CM_WITHOUT_REFS 
)
overridevirtual

◆ GetMetaInfo()

virtual QVariant idoc::CStandardDocumentMetaInfo::GetMetaInfo ( int  metaInfoType) const
overridevirtual

Get document's meta info.

Implements idoc::IDocumentMetaInfo.

◆ GetMetaInfoDescription()

virtual QString idoc::CStandardDocumentMetaInfo::GetMetaInfoDescription ( int  metaInfoType) const
overridevirtual

Get a human readable description for a given meta information type.

Implements idoc::IDocumentMetaInfo.

◆ GetMetaInfoId()

virtual QByteArray idoc::CStandardDocumentMetaInfo::GetMetaInfoId ( int  metaInfoType) const
overridevirtual

Get an unique ID of the meta information.

Implements idoc::IDocumentMetaInfo.

◆ GetMetaInfoName()

virtual QString idoc::CStandardDocumentMetaInfo::GetMetaInfoName ( int  metaInfoType) const
overridevirtual

Get a human readable name for a given meta information type.

Implements idoc::IDocumentMetaInfo.

◆ GetMetaInfoTypes()

virtual MetaInfoTypes idoc::CStandardDocumentMetaInfo::GetMetaInfoTypes ( bool  allowReadOnly = true) const
overridevirtual

Get list of contained meta info types.

Parameters
allowReadOnlyif enabled, read only types will be also listed out, if this flag is false only the writable types will be returned.
See also
IsMetaInfoWritable.

Implements idoc::IDocumentMetaInfo.

◆ IsEqual()

virtual bool idoc::CStandardDocumentMetaInfo::IsEqual ( const IChangeable &  object) const
overridevirtual

◆ IsMetaInfoWritable()

virtual bool idoc::CStandardDocumentMetaInfo::IsMetaInfoWritable ( int  metaInfoType) const
overridevirtual

Check if meta information can be changed.

Implements idoc::IDocumentMetaInfo.

◆ RemoveMetaInfo()

virtual void idoc::CStandardDocumentMetaInfo::RemoveMetaInfo ( int  metaInfoType)
overridevirtual

Remove document's meta information for a given meta type.

Implements idoc::IDocumentMetaInfo.

◆ ResetData()

virtual bool idoc::CStandardDocumentMetaInfo::ResetData ( CompatibilityMode  mode = CM_WITHOUT_REFS)
overridevirtual

Reset data to its default state.

Default implementation in istd::IChangeable does nothing.

Returns
true if the operation was successful, and false otherwise.

Reimplemented from istd::IChangeable.

Reimplemented in idoc::TMultiPageDocumentWrap< Base >, idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument >, and iimg::CMultiPageBitmapBase.

◆ Serialize()

virtual bool idoc::CStandardDocumentMetaInfo::Serialize ( iser::IArchive archive)
overridevirtual

Load or store state of this object as a archive stream.

Type of operation is depending on archive type.

See also
iser::IArchive

Implements iser::ISerializable.

Reimplemented in idoc::TMultiPageDocumentWrap< Base >, and idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument >.

Referenced by idoc::TMultiPageDocumentWrap< Base >::SerializePage().

◆ SetMetaInfo()

virtual bool idoc::CStandardDocumentMetaInfo::SetMetaInfo ( int  metaInfoType,
const QVariant &  metaInfo 
)
overridevirtual

Set new document's meta information for a given meta type.

Implements idoc::IDocumentMetaInfo.


The documentation for this class was generated from the following file: