ACF $AcfVersion:0$
Classes | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
idoc::TMultiPageDocumentWrap< Base > Class Template Reference

Generic implementation of IMultiPageDocument interface. More...

#include <TMultiPageDocumentWrap.h>

Inheritance diagram for idoc::TMultiPageDocumentWrap< Base >:
idoc::CStandardDocumentMetaInfo iprm::IOptionsList idoc::IDocumentMetaInfo iser::ISerializable istd::IChangeable istd::IChangeable istd::IChangeable istd::IPolymorphic istd::IPolymorphic istd::IPolymorphic

Classes

struct  Page
 

Public Types

typedef Base BaseClass
 
typedef CStandardDocumentMetaInfo BaseClass2
 
- 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
 
- Public Types inherited from iprm::IOptionsList
enum  ChangeFlags { CF_OPTIONS_CHANGED = 0x8263d86 , CF_OPTION_RENAMED }
 Flags for changes related to this interface. More...
 
enum  OptionsFlags { SCF_NONE = 0 , SCF_SUPPORT_UNIQUE_ID = 256 , SFC_DISABLE_ALLOWED = 32 }
 Flags for controlling constraints behavior. More...
 

Public Member Functions

virtual int GetPagesCount () const override
 
virtual const istd::IChangeableGetDocumentPage (int pageIndex) const override
 
virtual const idoc::IDocumentMetaInfoGetPageMetaInfo (int pageIndex) const override
 
virtual void ResetPages () override
 
virtual bool RemovePage (int pageIndex) override
 
virtual const IDocumentMetaInfoGetDocumentMetaInfo () const override
 
virtual int GetOptionsFlags () const override
 Get constraints flags.
 
virtual int GetOptionsCount () const override
 Get number of managed options.
 
virtual QString GetOptionName (int index) const override
 Get name of specified option.
 
virtual QString GetOptionDescription (int index) const override
 Get human-readable description for an option.
 
virtual QByteArray GetOptionId (int index) const override
 Get option ID.
 
virtual bool IsOptionEnabled (int index) const override
 Return true if the option is enabled and can be selected.
 
virtual bool Serialize (iser::IArchive &archive) override
 Load or store state of this object as a archive stream.
 
virtual bool CopyFrom (const istd::IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
 Copy this object from another one.
 
virtual bool ResetData (CompatibilityMode mode) override
 Reset data to its default state.
 
- Public Member Functions inherited from idoc::CStandardDocumentMetaInfo
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 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.
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
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.
 

Protected Types

typedef QList< PagePages
 

Protected Member Functions

virtual bool SerializePage (iser::IArchive &archive, Page &pageItem)
 Serialize a single page item into or from the archive.
 
- 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.
 

Protected Attributes

Pages m_documentPages
 

Additional Inherited Members

- 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.
 

Detailed Description

template<class Base>
class idoc::TMultiPageDocumentWrap< Base >

Generic implementation of IMultiPageDocument interface.

Definition at line 27 of file TMultiPageDocumentWrap.h.

Member Typedef Documentation

◆ BaseClass

template<class Base >
typedef Base idoc::TMultiPageDocumentWrap< Base >::BaseClass

Definition at line 33 of file TMultiPageDocumentWrap.h.

◆ BaseClass2

template<class Base >
typedef CStandardDocumentMetaInfo idoc::TMultiPageDocumentWrap< Base >::BaseClass2

Definition at line 34 of file TMultiPageDocumentWrap.h.

◆ Pages

template<class Base >
typedef QList<Page> idoc::TMultiPageDocumentWrap< Base >::Pages
protected

Definition at line 73 of file TMultiPageDocumentWrap.h.

Member Function Documentation

◆ CopyFrom()

template<class Base >
bool idoc::TMultiPageDocumentWrap< Base >::CopyFrom ( const istd::IChangeable object,
CompatibilityMode  mode = CM_WITHOUT_REFS 
)
overridevirtual

◆ GetDocumentMetaInfo()

template<class Base >
const IDocumentMetaInfo & idoc::TMultiPageDocumentWrap< Base >::GetDocumentMetaInfo ( ) const
overridevirtual

Definition at line 135 of file TMultiPageDocumentWrap.h.

◆ GetDocumentPage()

template<class Base >
const istd::IChangeable & idoc::TMultiPageDocumentWrap< Base >::GetDocumentPage ( int  pageIndex) const
overridevirtual

Definition at line 91 of file TMultiPageDocumentWrap.h.

◆ GetOptionDescription()

template<class Base >
QString idoc::TMultiPageDocumentWrap< Base >::GetOptionDescription ( int  index) const
overridevirtual

Get human-readable description for an option.

Returns detailed description or tooltip text for an option.

Parameters
indexOption index (0-based).
Returns
Option description as QString, or empty string if no description exists or index is out of range.
QString description = options->GetOptionDescription(2);
if (!description.isEmpty())
{
qDebug() << "Description:" << description;
}
See also
GetOptionName

Implements iprm::IOptionsList.

Definition at line 168 of file TMultiPageDocumentWrap.h.

◆ GetOptionId()

template<class Base >
QByteArray idoc::TMultiPageDocumentWrap< Base >::GetOptionId ( int  index) const
overridevirtual

Get option ID.

Returns the unique identifier for an option. The ID is stable and doesn't change when options are reordered, making it suitable for persistent references.

Parameters
indexOption index (0-based).
Returns
Option ID as QByteArray, or empty array if index is out of range.
Note
The ID must be unique if SCF_SUPPORT_UNIQUE_ID flag is set.
Use FindOptionIndexById() to find an option by its ID.
QByteArray id = options->GetOptionId(1);
qDebug() << "Option ID:" << id;
// Later, find the option by ID
int index = iprm::FindOptionIndexById(id, *options);
int FindOptionIndexById(const QByteArray &id, const iprm::IOptionsList &list)
Find the option index by the given ID.
See also
OptionsFlags, FindOptionIndexById

Implements iprm::IOptionsList.

Definition at line 175 of file TMultiPageDocumentWrap.h.

◆ GetOptionName()

template<class Base >
QString idoc::TMultiPageDocumentWrap< Base >::GetOptionName ( int  index) const
overridevirtual

Get name of specified option.

Returns the display name for an option.

Parameters
indexOption index (0-based).
Returns
Option name as QString, or empty string if index is out of range.
QString name = options->GetOptionName(0);
qDebug() << "First option:" << name;
See also
GetOptionDescription, GetOptionId

Implements iprm::IOptionsList.

Definition at line 158 of file TMultiPageDocumentWrap.h.

References idoc::IDocumentMetaInfo::MIT_TITLE.

◆ GetOptionsCount()

template<class Base >
int idoc::TMultiPageDocumentWrap< Base >::GetOptionsCount ( ) const
overridevirtual

Get number of managed options.

Returns
Total count of options in the list (including disabled options).
int count = options->GetOptionsCount();
for (int i = 0; i < count; ++i)
{
// Process each option
}
See also
GetOptionName

Implements iprm::IOptionsList.

Definition at line 151 of file TMultiPageDocumentWrap.h.

◆ GetOptionsFlags()

template<class Base >
int idoc::TMultiPageDocumentWrap< Base >::GetOptionsFlags ( ) const
overridevirtual

Get constraints flags.

Returns flags that describe how the constraints object behaves and what features it supports.

Returns
Bitwise OR combination of OptionsFlags values.
int flags = options->GetOptionsFlags();
{
qDebug() << "Options have unique IDs";
}
{
qDebug() << "Options can be disabled";
}
@ SFC_DISABLE_ALLOWED
If set, some options can be disabled.
@ SCF_SUPPORT_UNIQUE_ID
If set, every option must have a unique ID.
See also
OptionsFlags

Implements iprm::IOptionsList.

Definition at line 144 of file TMultiPageDocumentWrap.h.

◆ GetPageMetaInfo()

template<class Base >
const idoc::IDocumentMetaInfo * idoc::TMultiPageDocumentWrap< Base >::GetPageMetaInfo ( int  pageIndex) const
overridevirtual

Definition at line 102 of file TMultiPageDocumentWrap.h.

◆ GetPagesCount()

template<class Base >
int idoc::TMultiPageDocumentWrap< Base >::GetPagesCount ( ) const
overridevirtual

Definition at line 84 of file TMultiPageDocumentWrap.h.

◆ IsOptionEnabled()

template<class Base >
bool idoc::TMultiPageDocumentWrap< Base >::IsOptionEnabled ( int  index) const
overridevirtual

Return true if the option is enabled and can be selected.

Checks whether an option is currently enabled. Disabled options cannot be selected but remain visible in the list.

Parameters
indexOption index (0-based).
Returns
true if option is enabled and can be selected, false if disabled or index is out of range.
for (int i = 0; i < options->GetOptionsCount(); ++i)
{
if (options->IsOptionEnabled(i))
{
QString name = options->GetOptionName(i);
qDebug() << "Enabled option:" << name;
}
}
See also
SFC_DISABLE_ALLOWED

Implements iprm::IOptionsList.

Definition at line 182 of file TMultiPageDocumentWrap.h.

◆ RemovePage()

template<class Base >
bool idoc::TMultiPageDocumentWrap< Base >::RemovePage ( int  pageIndex)
overridevirtual

Definition at line 121 of file TMultiPageDocumentWrap.h.

◆ ResetData()

template<class Base >
bool idoc::TMultiPageDocumentWrap< Base >::ResetData ( CompatibilityMode  mode)
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 idoc::CStandardDocumentMetaInfo.

Reimplemented in iimg::CMultiPageBitmapBase.

Definition at line 320 of file TMultiPageDocumentWrap.h.

◆ ResetPages()

template<class Base >
void idoc::TMultiPageDocumentWrap< Base >::ResetPages ( )
overridevirtual

Definition at line 112 of file TMultiPageDocumentWrap.h.

◆ Serialize()

template<class Base >
bool idoc::TMultiPageDocumentWrap< Base >::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

Reimplemented from idoc::CStandardDocumentMetaInfo.

Definition at line 191 of file TMultiPageDocumentWrap.h.

References iser::IArchive::BeginMultiTag(), iser::IArchive::BeginTag(), iser::IArchive::EndTag(), iser::IArchive::IsStoring(), NULL, iser::CArchiveTag::TT_GROUP, and iser::CArchiveTag::TT_MULTIPLE.

◆ SerializePage()

template<class Base >
bool idoc::TMultiPageDocumentWrap< Base >::SerializePage ( iser::IArchive archive,
Page pageItem 
)
protectedvirtual

Member Data Documentation

◆ m_documentPages

template<class Base >
Pages idoc::TMultiPageDocumentWrap< Base >::m_documentPages
protected

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