ACF $AcfVersion:0$
CSingleDocumentTemplateBase.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// ACF includes
6#include <imod/IModel.h>
8
9
10namespace idoc
11{
12
13
14class IDocumentManager;
15
16
21{
22public:
24
25 const QByteArray& GetDocumentTypeId() const;
26 virtual void SetSupportedFeatures(int featureFlags);
27 virtual void SetDocumentTypeId(const QByteArray& id);
28 virtual void SetDocumentTypeName(const QString& name);
29 virtual void SetViewTypeId(const QByteArray& id);
30 virtual void SetViewTypeName(const QString& name);
31 virtual void SetDefaultDirectory(const QString& defaultDirectory);
32
33 // reimplemented (idoc::IDocumentTypesInfo)
34 virtual bool IsFeatureSupported(int featureFlags, const QByteArray& documentTypeId) const override;
35 virtual Ids GetDocumentTypeIds() const override;
36 virtual QString GetDocumentTypeName(const QByteArray& documentTypeId) const override;
37 virtual ifile::IFileTypeInfo* GetDocumentFileTypeInfo(const QByteArray& documentTypeId) const override;
38 virtual Ids GetDocumentTypeIdsForFile(const QString& filePath) const override;
39 virtual QString GetDefaultDirectory(const QString& sugestedDir = "", const QByteArray* documentTypeIdPtr = NULL) const override;
40
41 // reimplemented (idoc::IDocumentTemplate)
42 virtual Ids GetViewTypeIds(const QByteArray& documentTypeId) const override;
43 virtual QString GetViewTypeName(
44 const QByteArray& documentTypeId,
45 const QByteArray& viewTypeId) const override;
46
47protected:
48 bool IsDocumentTypeSupported(const QByteArray& documentTypeId) const;
49 bool IsViewTypeSupported(const QByteArray& viewTypeId) const;
50
51private:
52 QString m_defaultDirectory;
53
54 QByteArray m_documentTypeId;
55 QString m_documentTypeName;
56 QByteArray m_viewTypeId;
57 QString m_viewTypeName;
58
59 int m_supportedFeatures;
60};
61
62
63// inline methods
64
65inline const QByteArray& CSingleDocumentTemplateBase::GetDocumentTypeId() const
66{
67 return m_documentTypeId;
68}
69
70
71// inline protected methods
72
73inline bool CSingleDocumentTemplateBase::IsDocumentTypeSupported(const QByteArray& documentTypeId) const
74{
75 return documentTypeId.isEmpty() || (documentTypeId == m_documentTypeId); // default or the same type is accepted
76}
77
78
79inline bool CSingleDocumentTemplateBase::IsViewTypeSupported(const QByteArray& viewTypeId) const
80{
81 return viewTypeId.isEmpty() || (viewTypeId == m_viewTypeId); // default or the same type is accepted
82}
83
84
85} // namespace idoc
86
87
88
Base class implementing document template for single document type.
virtual void SetDefaultDirectory(const QString &defaultDirectory)
virtual Ids GetDocumentTypeIdsForFile(const QString &filePath) const override
Get list of supported document IDs that can handle the specified file.
virtual Ids GetViewTypeIds(const QByteArray &documentTypeId) const override
Return supported view type IDs for specified document type.
virtual void SetDocumentTypeId(const QByteArray &id)
virtual QString GetViewTypeName(const QByteArray &documentTypeId, const QByteArray &viewTypeId) const override
Get human readable name of some view type ID.
virtual ifile::IFileTypeInfo * GetDocumentFileTypeInfo(const QByteArray &documentTypeId) const override
Get file type information object for some selected document type.
bool IsDocumentTypeSupported(const QByteArray &documentTypeId) const
virtual void SetSupportedFeatures(int featureFlags)
virtual void SetViewTypeName(const QString &name)
virtual void SetDocumentTypeName(const QString &name)
bool IsViewTypeSupported(const QByteArray &viewTypeId) const
virtual void SetViewTypeId(const QByteArray &id)
virtual bool IsFeatureSupported(int featureFlags, const QByteArray &documentTypeId) const override
Return true, if the feature(s) is supported by this document template.
virtual Ids GetDocumentTypeIds() const override
Get list of supported document type IDs.
virtual QString GetDefaultDirectory(const QString &sugestedDir="", const QByteArray *documentTypeIdPtr=NULL) const override
Return default directory for specified document type.
virtual QString GetDocumentTypeName(const QByteArray &documentTypeId) const override
Get human readable name of some document type ID.
Common interface for a document template.
QVector< QByteArray > Ids
Type definition for document type ID collections.
Provide loading and saving of objects.
#define NULL
Definition istd.h:74
Contains the system independent basic implementations of Document/View design pattern.