ACF $AcfVersion:0$
Public Types | Public Member Functions | Protected Member Functions | List of all members
iqtgui::CCommandsMultiplexerComp Class Reference

Command multipling component. More...

#include <CCommandsMultiplexerComp.h>

Inheritance diagram for iqtgui::CCommandsMultiplexerComp:
iqtgui::TDesignSchemaHandlerWrap< ibase::TLocalizableWrap< icomp::CComponentBase > > imod::CModelUpdateBridge ibase::ICommandsProvider ibase::TLocalizableWrap< icomp::CComponentBase > imod::IObserver istd::IChangeable icomp::CComponentBase istd::IPolymorphic istd::IPolymorphic icomp::IComponent istd::IPolymorphic

Public Types

typedef iqtgui::TDesignSchemaHandlerWrap< ibase::TLocalizableWrap< icomp::CComponentBase > > BaseClass
 
typedef imod::CModelUpdateBridge BaseClass2
 
- Public Types inherited from iqtgui::TDesignSchemaHandlerWrap< ibase::TLocalizableWrap< icomp::CComponentBase > >
typedef ibase::TLocalizableWrap< icomp::CComponentBaseBaseClass
 
- Public Types inherited from ibase::TLocalizableWrap< icomp::CComponentBase >
typedef icomp::CComponentBase BaseClass
 
- Public Types inherited from ibase::ICommandsProvider
enum  ChangeFlags { CF_COMMANDS = 0x62b7e8 }
 
- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 

Public Member Functions

 CCommandsMultiplexerComp ()
 
virtual const ibase::IHierarchicalCommandGetCommands () const override
 Get list of menu commands.
 
- Public Member Functions inherited from iqtgui::TDesignSchemaHandlerWrap< ibase::TLocalizableWrap< icomp::CComponentBase > >
 TDesignSchemaHandlerWrap ()
 
virtual void EnableDesignHandler (bool enable=true)
 If enabled, listen to the design schema change events from the application context.
 
- Public Member Functions inherited from ibase::TLocalizableWrap< icomp::CComponentBase >
 TLocalizableWrap ()
 
virtual void EnableLocalization (bool enableLocalization=true)
 If enabled, listen to the language change event from the application context.
 
- Public Member Functions inherited from icomp::CComponentBase
 CComponentBase ()
 Create component and assign it to specific context.
 
virtual const icomp::IComponentGetParentComponent (bool ownerOnly=false) const override
 Get parent of this component.
 
virtual void * GetInterface (const istd::CClassInfo &interfaceType, const QByteArray &subId="") override
 Get access to specified component interface.
 
virtual IComponentContextSharedPtr GetComponentContext () const override
 Get access to component context describing all application-specified component information loaded from components registry.
 
virtual void SetComponentContext (const IComponentContextSharedPtr &contextPtr, const icomp::IComponent *parentPtr, bool isParentOwner) override
 Set component context of this component.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 

Protected Member Functions

virtual void OnDesignSchemaChanged (const QByteArray &themeId) override
 
virtual void OnLanguageChanged () override
 
virtual void BeforeUpdate (imod::IModel *modelPtr) override
 Callback invoked before an update of the observer's content occurs.
 
virtual void AfterUpdate (imod::IModel *modelPtr, const istd::IChangeable::ChangeSet &changeSet) override
 Callback invoked after an update of the observer's content occurs.
 
virtual void OnComponentCreated () override
 
virtual void OnComponentDestroyed () override
 
- Protected Member Functions inherited from icomp::CComponentBase
bool IsComponentActive () const
 Check if component is active.
 
virtual const icomp::IRealComponentStaticInfoGetComponentStaticInfo () const =0
 Get access to static info of this component.
 
- Protected Member Functions inherited from imod::CModelUpdateBridge
 CModelUpdateBridge (istd::IChangeable *changeablePtr, int updateFlags=UF_DELEGATED)
 
virtual ~CModelUpdateBridge ()
 
imod::IModelGetObservedModel (int modelIndex) const
 Get access to connected model with the index index.
 
int GetModelCount () const
 Gets the number of connected models.
 
void EnsureModelsDetached ()
 Remove all observed models from this bridge.
 
virtual bool IsModelAttached (const imod::IModel *modelPtr) const override
 Checks if the specified model is currently attached to this observer.
 
virtual bool OnModelAttached (imod::IModel *modelPtr, istd::IChangeable::ChangeSet &changeMask) override
 Callback invoked when an observable model is about to be attached to this observer.
 
virtual bool OnModelDetached (imod::IModel *modelPtr) override
 Callback invoked when an observable model is about to be detached from this observer.
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 

Additional Inherited Members

- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 
- Protected Types inherited from imod::CModelUpdateBridge
enum  UpdateFlags { UF_DELEGATED = 0x1 , UF_SOURCE = 0x2 }
 Flags to control the change set using for the change notification of the target object. More...
 
- Protected Types inherited from ibase::ICommandsProvider
enum  ChangeFlags { CF_COMMANDS = 0x62b7e8 }
 
- Protected Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 
- Static Protected Member Functions inherited from icomp::CComponentBase
static const icomp::IRealComponentStaticInfoInitStaticInfo (IComponent *componentPtr)
 
static QByteArray GetComponentId (const icomp::IComponentContext *componentContextPtr, const QByteArray &contextId=QByteArray())
 
- Static Protected Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 

Detailed Description

Command multipling component.

Definition at line 22 of file CCommandsMultiplexerComp.h.

Member Typedef Documentation

◆ BaseClass

Definition at line 29 of file CCommandsMultiplexerComp.h.

◆ BaseClass2

Definition at line 30 of file CCommandsMultiplexerComp.h.

Constructor & Destructor Documentation

◆ CCommandsMultiplexerComp()

iqtgui::CCommandsMultiplexerComp::CCommandsMultiplexerComp ( )

Member Function Documentation

◆ AfterUpdate()

virtual void iqtgui::CCommandsMultiplexerComp::AfterUpdate ( imod::IModel modelPtr,
const istd::IChangeable::ChangeSet changeSet 
)
overrideprotectedvirtual

Callback invoked after an update of the observer's content occurs.

This is the primary notification method where observers react to model changes. It's called after the model has finished updating its state. The implementation should examine the changeSet to determine what changed and update accordingly.

Parameters
modelPtrPointer to the model that has changed
changeSetContains information about what changed in the model. Use changeSet.Contains(changeId) to check for specific changes. The changeSet respects the mask specified in OnModelAttached().
Note
This is typically where you update your GUI, recalculate derived values, or trigger other dependent operations.
Keep this method fast - it's called frequently and may block the UI thread.
Use the changeSet to perform incremental updates rather than refreshing everything.
virtual void AfterUpdate(IModel* modelPtr,
const istd::IChangeable::ChangeSet& changeSet)
{
CMyModel* model = dynamic_cast<CMyModel*>(modelPtr);
if (!model) return;
// Selective update based on what changed
if (changeSet.Contains(CMyModel::CF_NAME_CHANGED)) {
m_nameLabel->setText(model->GetName());
}
if (changeSet.Contains(CMyModel::CF_VALUE_CHANGED)) {
m_valueSpinBox->setValue(model->GetValue());
RecalculateDependentValues();
}
// Re-enable signals if blocked in BeforeUpdate
if (m_widget) {
m_widget->blockSignals(false);
}
}
virtual void AfterUpdate(imod::IModel *modelPtr, const istd::IChangeable::ChangeSet &changeSet) override
Callback invoked after an update of the observer's content occurs.
Set of change flags (its IDs).
Definition IChangeable.h:36
bool Contains(int changeId) const
Check if there is specific change flag in the set.
See also
BeforeUpdate(), OnModelAttached()

Reimplemented from imod::CModelUpdateBridge.

◆ BeforeUpdate()

virtual void iqtgui::CCommandsMultiplexerComp::BeforeUpdate ( imod::IModel modelPtr)
overrideprotectedvirtual

Callback invoked before an update of the observer's content occurs.

This method is called at the start of a model update cycle, before any data actually changes. It allows the observer to prepare for the update, such as saving current state for comparison or disabling UI updates temporarily.

Parameters
modelPtrPointer to the model that is about to change
Warning
In some error cases, this method may be called without a subsequent AfterUpdate() call. Don't rely on AfterUpdate() always being called.
Note
This method is optional to implement - if you don't need preparation logic, just provide an empty implementation.
virtual void BeforeUpdate(IModel* modelPtr)
{
// Example: Block signals to prevent multiple GUI updates
if (m_widget) {
m_widget->blockSignals(true);
}
// Example: Save state for delta comparison
m_previousValue = m_currentValue;
}
virtual void BeforeUpdate(imod::IModel *modelPtr) override
Callback invoked before an update of the observer's content occurs.
See also
AfterUpdate()

Reimplemented from imod::CModelUpdateBridge.

◆ GetCommands()

virtual const ibase::IHierarchicalCommand * iqtgui::CCommandsMultiplexerComp::GetCommands ( ) const
overridevirtual

Get list of menu commands.

These commands will be integrated in global menu system, independent from actual selected view. For support of normal pull down menu, depth of this tree structure should be at least 3.

Reimplemented from ibase::ICommandsProvider.

◆ OnComponentCreated()

virtual void iqtgui::CCommandsMultiplexerComp::OnComponentCreated ( )
overrideprotectedvirtual

Reimplemented from icomp::CComponentBase.

◆ OnComponentDestroyed()

virtual void iqtgui::CCommandsMultiplexerComp::OnComponentDestroyed ( )
overrideprotectedvirtual

Reimplemented from icomp::CComponentBase.

◆ OnDesignSchemaChanged()

virtual void iqtgui::CCommandsMultiplexerComp::OnDesignSchemaChanged ( const QByteArray &  themeId)
overrideprotectedvirtual

◆ OnLanguageChanged()

virtual void iqtgui::CCommandsMultiplexerComp::OnLanguageChanged ( )
overrideprotectedvirtual

The documentation for this class was generated from the following file: