6#include <QtCore/QString>
8#if QT_VERSION >= 0x050000 && QT_VERSION < 0x060000
9#include <QtWidgets/QAction>
11#include <QtGui/QAction>
44 const QString& name =
"",
46 int staticFlags = CF_GLOBAL_MENU,
47 int groupId = GI_NORMAL,
48 const QByteArray& commandId = QByteArray());
89 void SetVisuals(
const QString& name,
const QString& shortName,
const QString& description,
const QIcon& icon = QIcon());
103 virtual void SetName(
const QString& name)
override;
141 QByteArray m_commandId;
Provides single command for interaction with user.
Basic implementation of IEnableableParam interface.
Implementation of a named object over iprm::INameParam interface.
Implementation of hierarchical command based on QAction from Qt.
CHierarchicalCommand(const QString &name="", int priority=100, int staticFlags=CF_GLOBAL_MENU, int groupId=GI_NORMAL, const QByteArray &commandId=QByteArray())
virtual bool CopyFrom(const istd::IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) override
Copy this object from another one.
void ResetChilds()
Reset list of children.
void SetStaticFlags(int flags)
int FindTheSameCommand(const ibase::IHierarchicalCommand &command) const
Find the same command in child list.
virtual ibase::ICommand * GetChild(int index) const override
void JoinLinkFrom(const ibase::IHierarchicalCommand *rootPtr)
Joint the second root as links.
int FindInsertingIndex(int priority) const
Find index where element with specified priority should be inserted.
virtual bool IsEqual(const istd::IChangeable &object) const override
Compare this object with another object.
bool operator!=(const CHierarchicalCommand &command) const
void InsertChild(CHierarchicalCommand *commandPtr, bool releaseFlag=false, int index=-1)
Insert command to child list.
iprm::CNameParam BaseClass3
void SetGroupId(int groupId)
void SetVisuals(const QString &name, const QString &shortName, const QString &description, const QIcon &icon=QIcon())
Set all visual elements of this command.
void SetCommandId(const QByteArray &commandId)
virtual istd::IChangeableUniquePtr CloneMe(istd::IChangeable::CompatibilityMode mode=istd::IChangeable::CM_WITHOUT_REFS) const override
Make a copy of this object.
virtual int GetChildsCount() const override
iprm::CEnableableParam BaseClass2
CHierarchicalCommand & operator=(const CHierarchicalCommand &command)
virtual bool SetEnabled(bool isEnabled=true) override
Set the enabled state.
virtual void SetName(const QString &name) override
Set the object name.
virtual int GetSupportedOperations() const override
Get set of flags for supported operations.
virtual int GetPriority() const override
void RemoveChild(int index)
Remove child at specified index.
void SetPriority(int priority)
virtual QByteArray GetCommandId() const override
virtual int GetStaticFlags() const override
virtual int GetGroupId() const override
bool operator==(const CHierarchicalCommand &command) const
virtual bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
virtual bool Execute(istd::IPolymorphic *contextPtr) override
Represents an input/output persistence archive for object serialization.
Common interface for data model objects, which can be changed.
CompatibilityMode
Control how relationship betweeen objects are interpreted.
@ CM_WITHOUT_REFS
External references are simple ignored.
Base interface for all used interfaces and implementations.
Template based implementation of a hierarchical object.
Common interface to define the hierarchical graph structures.
Implementation of a special pointer container, which controls the live cycle of the pointer object,...
Standard GUI specific interfaces and components based on Qt.