6#include <QtWidgets/QMenu>
9#include <istd/TDelPtr.h>
10#include <imod/TModelWrap.h>
11#include <ibase/TLocalizableWrap.h>
12#include <ifile/IFileTypeInfo.h>
13#include <iqtgui/IGuiObject.h>
14#include <iqtgui/TDesignSchemaHandlerWrap.h>
15#include <iqtgui/TMakeIconProviderCompWrap.h>
16#include <iqtgui/CHierarchicalCommand.h>
19#include <imtbase/CCollectionInfo.h>
20#include <imtgui/ICollectionViewDelegate.h>
33 public iqtgui::TMakeIconProviderCompWrap<
34 ibase::TLocalizableWrap<ICollectionViewDelegate>>
38 typedef iqtgui::TMakeIconProviderCompWrap<
39 ibase::TLocalizableWrap<ICollectionViewDelegate>> BaseClass;
46 enum CommandIdentifier
48 CI_EDIT = BaseClass::CI_USER,
58 CI_USER = BaseClass::CI_USER + 100
65 virtual bool InitializeDelegate(
67 iqtgui::IGuiObject* parentGuiPtr,
68 const iprm::IParamsSet* filterParamsPtr)
override;
69 virtual const iqtgui::IVisualStatus& GetDocumentTypeStatus()
const override;
70 virtual QByteArray GetSupportedTypeId()
const override;
71 virtual QAbstractItemDelegate* GetColumnItemDelegate(
const QByteArray& columnId)
const override;
72 virtual void OnColumnItemDelegateEditFinished(
const QByteArray& objectId,
const QByteArray& columnId,
const QVariant& newValue)
const override;
73 virtual bool IsEditorEnabled(
const QByteArray& columnId)
const override;
74 virtual void UpdateItemSelection(
const imtbase::ICollectionInfo::Ids& selectedItems,
const QByteArray& selectedTypeId)
override;
75 virtual QByteArray CreateNewObject(
76 const QByteArray& typeId,
77 const QString& objectName,
78 const QString& description,
79 const istd::IChangeable* defaultDataPtr =
nullptr)
const override;
80 virtual QByteArray ImportObject(
const QByteArray& typeId,
const QString& sourcePath = QString())
const override;
81 virtual bool ExportObject(
const QByteArray& objectId,
const QString& targetPath = QString())
const override;
82 virtual void RemoveObjects(
const imtbase::ICollectionInfo::Ids& objectIds)
const override;
83 virtual bool UpdateObject(
const QByteArray& objectId,
const istd::IChangeable& contents)
const override;
84 virtual QString RenameObject(
const QByteArray& objectId,
const QString& newName)
const override;
86 virtual bool GetSummaryInformation(
87 const QByteArray& objectId,
88 const QVector<QByteArray>& fieldIds,
89 ObjectMetaInfo& objectMetaInfo)
const override;
90 virtual HeaderInfo GetSummaryInformationHeaderInfo(
const QByteArray& informationId)
const override;
91 virtual bool OpenDocumentEditor(
const QByteArray& objectId,
const QByteArray& viewTypeId = QByteArray())
const override;
92 virtual iqtgui::IGuiObject* GetInformationView()
const override;
93 virtual bool IsCommandSupported(
int commandId)
const override;
94 virtual void SetupContextMenu(QMenu& menu)
const override;
97 virtual const ibase::IHierarchicalCommand* GetCommands()
const override;
99 static QString s_dateTimeFormat;
102 enum FileOperationType
108 bool IsNameUnique(
const QString& name,
const QStringList& existingNames)
const;
109 QString GetUniqueName(
const QString& name)
const;
111 virtual void SetupSummaryInformation();
112 virtual void SetupCommands();
113 virtual void SetupInsertCommand();
114 virtual void OnDuplicateObject(
const QByteArray& sourceObjectId,
const QByteArray& destinationObjectId);
115 virtual void OnImportObject(
const QByteArray& objectId);
116 virtual bool IsRestoreAllowed(
const QByteArray& objectId);
117 virtual void BeforeRestore(
const QByteArray& objectId);
118 virtual void AfterRestore(
const QByteArray& objectId,
bool isRestoreSuccessful);
119 virtual QByteArray FindTypeIdFromFile(
const QString& filePath)
const;
120 virtual const ifile::IFileTypeInfo* FindFileInfo(
const QByteArray& typeId, FileOperationType operationType)
const;
121 virtual QString CreateFileImportFilter(
bool useBundle)
const;
122 virtual QString CreateFileExportFilter(
const QByteArray& objectId,
bool useBundle)
const;
123 virtual bool IsBundlePersistenceSupported(ifile::IFileTypeInfo::QueryFlags flags)
const;
126 virtual void OnLanguageChanged()
override;
129 virtual void OnDesignSchemaChanged(
const QByteArray& themeId)
override;
132 class VisualStatus:
virtual public iqtgui::IVisualStatus
135 void SetStatusIcon(
const QIcon &statusIcon);
136 void SetStatusText(
const QString &statusText);
139 virtual QIcon GetStatusIcon()
const override;
140 virtual QString GetStatusText()
const override;
144 QString m_statusText;
148 virtual void OnInsert();
149 virtual void OnDuplicate();
150 virtual void OnRemove();
151 virtual void OnAddMenuOptionClicked(QAction* action);
152 virtual void OnImport();
153 virtual void OnExport();
154 virtual void OnRestore();
155 virtual void OnRename(
bool checked);
156 virtual void OnEditDescription(
bool checked);
157 virtual void OnEdit(
bool checked);
161 iqtgui::CHierarchicalCommand m_rootCommands;
163 iqtgui::CHierarchicalCommand m_editCommands;
164 iqtgui::CHierarchicalCommand m_editContentsCommand;
165 iqtgui::CHierarchicalCommand m_insertCommand;
166 iqtgui::CHierarchicalCommand m_duplicateCommand;
167 iqtgui::CHierarchicalCommand m_removeCommand;
168 iqtgui::CHierarchicalCommand m_importCommand;
169 iqtgui::CHierarchicalCommand m_exportCommand;
170 iqtgui::CHierarchicalCommand m_restoreCommand;
172 istd::TDelPtr<QMenu> m_insertNewDocumentMenuPtr;
175 iqtgui::IGuiObject* m_parentGuiPtr;
176 const iprm::IParamsSet* m_filterParamsPtr;
177 imtbase::ICollectionInfo::Ids m_selectedItemIds;
178 QByteArray m_selectedTypeId;
181 QMap<QByteArray, HeaderInfo> m_summaryInformationHeaders;
183 imod::TModelWrap<VisualStatus> m_visualStatus;
185 QString m_exportFilePath;