ICF 3.0.5.47
Technical documentation of ICF Libraries
CSingleDocumentTemplateBase.h
Go to the documentation of this file.
1/********************************************************************************
2** This file is part of the ICF Framework. Copyright (C) Witold Gantzke & Kirill Lepskiy
3** ICF Framework may be used under the terms of the LGPL License v. 2.1 by the Free Software Foundation.
4********************************************************************************/
5
6#pragma once
7
8
9// ICF includes
10#include <imod/IModel.h>
12
13
14namespace idoc
15{
16
17
18class IDocumentManager;
19
20
25{
26public:
28
29 const QByteArray& GetDocumentTypeId() const;
30 virtual void SetSupportedFeatures(int featureFlags);
31 virtual void SetDocumentTypeId(const QByteArray& id);
32 virtual void SetDocumentTypeName(const QString& name);
33 virtual void SetViewTypeId(const QByteArray& id);
34 virtual void SetViewTypeName(const QString& name);
35 virtual void SetDefaultDirectory(const QString& defaultDirectory);
36
37 // reimplemented (idoc::IDocumentTypesInfo)
38 virtual bool IsFeatureSupported(int featureFlags, const QByteArray& documentTypeId) const;
39 virtual Ids GetDocumentTypeIds() const;
40 virtual QString GetDocumentTypeName(const QByteArray& documentTypeId) const;
41 virtual ifile::IFileTypeInfo* GetDocumentFileTypeInfo(const QByteArray& documentTypeId) const;
42 virtual Ids GetDocumentTypeIdsForFile(const QString& filePath) const;
43 virtual QString GetDefaultDirectory(const QString& sugestedDir = "", const QByteArray* documentTypeIdPtr = nullptr) const;
44
45 // reimplemented (idoc::IDocumentTemplate)
46 virtual Ids GetViewTypeIds(const QByteArray& documentTypeId) const;
47 virtual QString GetViewTypeName(
48 const QByteArray& documentTypeId,
49 const QByteArray& viewTypeId) const;
50
51protected:
52 bool IsDocumentTypeSupported(const QByteArray& documentTypeId) const;
53 bool IsViewTypeSupported(const QByteArray& viewTypeId) const;
54
55private:
56 QString m_defaultDirectory;
57
58 QByteArray m_documentTypeId;
59 QString m_documentTypeName;
60 QByteArray m_viewTypeId;
61 QString m_viewTypeName;
62
63 int m_supportedFeatures;
64};
65
66
67// inline methods
68
69inline const QByteArray& CSingleDocumentTemplateBase::GetDocumentTypeId() const
70{
71 return m_documentTypeId;
72}
73
74
75// inline protected methods
76
77inline bool CSingleDocumentTemplateBase::IsDocumentTypeSupported(const QByteArray& documentTypeId) const
78{
79 return documentTypeId.isEmpty() || (documentTypeId == m_documentTypeId); // default or the same type is accepted
80}
81
82
83inline bool CSingleDocumentTemplateBase::IsViewTypeSupported(const QByteArray& viewTypeId) const
84{
85 return viewTypeId.isEmpty() || (viewTypeId == m_viewTypeId); // default or the same type is accepted
86}
87
88
89} // namespace idoc
90
91
Base class implementing document template for single document type.
virtual QString GetViewTypeName(const QByteArray &documentTypeId, const QByteArray &viewTypeId) const
Get human readable name of some view type ID.
virtual Ids GetDocumentTypeIdsForFile(const QString &filePath) const
Get list of supported document ID's can be created for specified file.
virtual void SetDefaultDirectory(const QString &defaultDirectory)
virtual void SetDocumentTypeId(const QByteArray &id)
virtual QString GetDefaultDirectory(const QString &sugestedDir="", const QByteArray *documentTypeIdPtr=nullptr) const
Return default directory for specified document type.
bool IsDocumentTypeSupported(const QByteArray &documentTypeId) const
virtual void SetSupportedFeatures(int featureFlags)
virtual ifile::IFileTypeInfo * GetDocumentFileTypeInfo(const QByteArray &documentTypeId) const
Get file type information object for some selected document type.
virtual bool IsFeatureSupported(int featureFlags, const QByteArray &documentTypeId) const
Return true, if the feature(s) is supported by this document template.
virtual void SetViewTypeName(const QString &name)
virtual void SetDocumentTypeName(const QString &name)
bool IsViewTypeSupported(const QByteArray &viewTypeId) const
virtual QString GetDocumentTypeName(const QByteArray &documentTypeId) const
Get human readable name of some document type ID.
virtual Ids GetViewTypeIds(const QByteArray &documentTypeId) const
Return supported view type IDs for specified document type.
virtual void SetViewTypeId(const QByteArray &id)
virtual Ids GetDocumentTypeIds() const
Get list of supported document ID's can be created for specified file.
Common interface for a document template.
QVector< QByteArray > Ids
Provide loading and saving of objects.
Contains the system indenendent basic implementations of Document/View design pattern.

© Witold Gantzke and Kirill Lepskiy