ICF 3.1.1.10
Technical documentation of ICF Libraries
CSingleDocumentWorkspaceGuiComp.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// Qt includes
10#include <QtCore/QtGlobal>
11#include <QtWidgets/QWidget>
12
13// ICF includes
17
21
23
24
25namespace idocgui
26{
27
28
34 idoc::CSingleDocumentManagerBase,
35 istdgui::TRestorableGuiWrap<
36 istdgui::TGuiComponentBase<QWidget> > >
37{
38 Q_OBJECT
39
40public:
45
46 I_BEGIN_COMPONENT(CSingleDocumentWorkspaceGuiComp);
47 I_REGISTER_INTERFACE(idoc::IDocumentManager);
48 I_ASSIGN(m_documentTemplateCompPtr, "DocumentTemplate", "Document template", true, "DocumentTemplate");
49 I_ASSIGN(m_rememberOpenDocumentParamPtr, "RememberOpenDocumentOnExit", "If enabled, restores open document from previous session", false, "RememberOpenDocumentOnExit");
50 I_END_COMPONENT;
51
53 {
54 GI_WINDOW = 0x300,
57 };
58
60
61 // reimplemented (idoc::IDocumentManager)
62 void SetActiveView(istd::IPolymorphic* viewPtr) override;
63
64 // reimplemented (istdgui::IGuiObject)
65 void OnTryClose(bool* ignoredPtr = nullptr) override;
66
67protected:
71 virtual void UpdateTitle();
72
76 virtual QString GenerateDocumentTitle() const;
77
78 // reimplemented (idoc::CSingleDocumentManagerBase)
79 QString GetOpenFilePath(const QByteArray* documentTypeIdPtr = nullptr) const override;
80 void OnViewRegistered(istd::IPolymorphic* viewPtr) override;
81 void OnViewRemoved(istd::IPolymorphic* viewPtr) override;
82 bool QueryDocumentSave(bool* ignoredPtr) override;
83
84 // reimplemented (ibase:CGuiComponentBase)
85 void OnGuiCreated() override;
86 void OnGuiDestroyed() override;
87
88 // reimplemented (icomp::CComponentBase)
89 void OnComponentCreated() override;
90
91 // reimplemented (istd:IChangeable)
92 void OnEndChanges(const ChangeSet& changeSet) override;
93
94 // reimplemented (TRestorableGuiWrap)
95 void OnRestoreSettings(const QSettings& settings) override;
96
97protected:
98 I_REF(idoc::IDocumentTemplate, m_documentTemplateCompPtr);
99 I_REF(iprm::IEnableableParam, m_rememberOpenDocumentParamPtr);
100
102
105};
106
107
108} // namespace idocgui
109
110
Basic implementation of a template-based single document manager.
Provide set of user actions needed to manage documents in MVC (Model View Controller) concept.
Common interface for a document template.
Qt-based workspace implementation of a single document manager.
void OnEndChanges(const ChangeSet &changeSet) override
Callback function for end change event.
bool QueryDocumentSave(bool *ignoredPtr) override
Query user if this document can be closed.
void OnViewRemoved(istd::IPolymorphic *viewPtr) override
Called before view is removed.
void OnTryClose(bool *ignoredPtr=nullptr) override
Called on trying to close application.
void OnRestoreSettings(const QSettings &settings) override
void SetActiveView(istd::IPolymorphic *viewPtr) override
Indicate that some view is active now.
void OnGuiDestroyed() override
Called just before GUI is released.
virtual void UpdateTitle()
Update titles of views or all views of specified document.
QString GetOpenFilePath(const QByteArray *documentTypeIdPtr=nullptr) const override
Gets open file names.
void OnGuiCreated() override
Called just after GUI is initialized.
idocgui::TQtDocumentManagerWrap< idoc::CSingleDocumentManagerBase, istdgui::TRestorableGuiWrap< istdgui::TGuiComponentBase< QWidget > > > BaseClass
virtual QString GenerateDocumentTitle() const
Generate the title of the current document.
void OnViewRegistered(istd::IPolymorphic *viewPtr) override
Called after view is registered.
Wrapper for general functionality of a Qt based document workspace.
Interface for objects which can be enabled/disabled.
Set of change flags (its IDs).
Definition IChangeable.h:38
Common interface for GUI objects using in component context.
Definition IGuiObject.h:27
Base class for all Qt GUI componentes.
A wrapper for saving/restoring of GUI component states in the application settings.
This package contains Qt implementations related to Document/View concept.

© Witold Gantzke and Kirill Lepskiy