AbstractActionsModel

Qualified name: mv::AbstractActionsModel

class AbstractActionsModel : public mv::StandardItemModel

Abstract actions model class.

Abstract standard item model class for actions

Author

Thomas Kroes

Subclassed by mv::ActionsHierarchyModel, mv::ActionsListModel, mv::PublicActionsModel

Public Types

enum class Column

Action columns.

Values:

enumerator Name
enumerator Location

Name of the action.

enumerator ID

Where the action is located in the user interface.

enumerator Type

Globally unique identifier of the action.

enumerator Scope

Action type string.

enumerator ForceDisabled

Scope of the action (whether the action is public or private)

enumerator ForceHidden

Whether the action is force disabled or not.

enumerator MayPublish

Whether the action is force hidden or not.

enumerator MayConnect

Whether the action may be published.

enumerator MayDisconnect

Whether the action may connect to a public action.

enumerator SortIndex

Whether the action may disconnect from a public action.

enumerator Stretch

The sorting index of the action (its relative position in action groups)

enumerator ParentActionId

The stretch in action groups.

enumerator IsConnected

The identifier of the parent action (if not a top-level action)

enumerator NumberOfConnectedActions

Whether the action is connected or not.

enumerator PublicActionID

Number of connected actions (in case the action is public)

enumerator IsRoot

The identifier of the public action with which the action is connected.

enumerator IsLeaf

If the action is at the root or not.

enumerator Count

If the action is a leaf or not.

Public Functions

AbstractActionsModel(QObject *parent = nullptr)

Construct with parent object.

Parameters:

parent – Pointer to parent object

virtual void initialize() = 0

Initializes the model from the current state of the actions manager.

Qt::ItemFlags flags(const QModelIndex &index) const override

Get flags for item with index.

Returns:

Item flags

gui::WidgetAction *getAction(const QModelIndex &index) const

Get action for model index.

Parameters:

index – Model index to retrieve the action for

Returns:

Pointer to action (nullptr if not found)

gui::WidgetAction *getAction(std::int32_t rowIndex) const

Get action for model rowIndex.

Parameters:

rowIndexRow index to retrieve the action for

Returns:

Pointer to action (nullptr if not found)

gui::WidgetAction *getAction(const QString &name) const

Get action by name.

Parameters:

name – Name of the action

Returns:

Pointer to action (nullptr if not found)

virtual QModelIndex getActionIndex(const gui::WidgetAction *action, const Column &column = Column::Name) const final

Get model index for action and column.

Parameters:
  • action – Pointer to action to retrieve the model index for

  • column – Column to retrieve the action index for

Returns:

Found model index

virtual QStandardItem *getActionItem(const gui::WidgetAction *action) const final

Get action item for action.

Parameters:

action – Pointer to action to retrieve the model item for

Returns:

Pointer to standard item (nullptr if not found)

Public Static Attributes

static QMap<Column, ColumHeaderInfo> columnInfo

Column name and tooltip.

Protected Functions

Qt::DropActions supportedDragActions() const override

Get the supported drag actions.

Qt::DropActions supportedDropActions() const override

Get the supported drop actions.

QStringList mimeTypes() const override

Get mime types.

Returns:

Supported mime types

QMimeData *mimeData(const QModelIndexList &indexes) const override

Get mime data for model indexes.

Returns:

Pointer to mime data for indexes

bool canDropMimeData(const QMimeData *mimeData, Qt::DropAction dropAction, int row, int column, const QModelIndex &parent) const override

Determines whether mimeData with action can be dropped on row and column with parent model index.

Parameters:
  • mimeData – Pointer to dropped mime data

  • dropAction – Drop action

  • row – Drop row

  • column – Drop column

  • parent – Drop parent index

Returns:

Boolean whether the drop is permitted

bool dropMimeData(const QMimeData *mimeData, Qt::DropAction dropAction, int row, int column, const QModelIndex &parent) override

Invoked when mimeData is dropped.

Parameters:
  • mimeData – Pointer to dropped mime data

  • dropAction – Drop action

  • row – Drop row

  • column – Drop column

  • parent – Drop parent index

Returns:

Boolean determining whether the drop is performed

inline virtual void actionAddedToManager(gui::WidgetAction *action)

Helper method which is invoked when action is added to the actions manager.

Parameters:

action – Pointer to action that was added

inline virtual void actionAboutToBeRemovedFromManager(gui::WidgetAction *action)

Helper method which is invoked when action is about to be removed from the actions manager.

Parameters:

action – Pointer to action that was removed

inline virtual void publicActionAddedToManager(gui::WidgetAction *publicAction)

Helper method which is invoked when publicAction is added to the actions manager.

Parameters:

publicAction – Pointer to public action that was added

inline virtual void publicActionAboutToBeRemovedFromManager(gui::WidgetAction *publicAction)

Helper method which is invoked when publicAction is about to be removed from the actions manager.

Parameters:

publicAction – Pointer to public action to remove

struct ColumHeaderInfo

Header strings for several data roles.

Public Members

QString _edit

Header string for display role.

QString _tooltip

Header string for edit role.

class ConnectionPermissionItem : public mv::AbstractActionsModel::Item

Model item class for toggling a permission flag.

Public Functions

ConnectionPermissionItem(gui::WidgetAction *action, const gui::WidgetAction::ConnectionPermissionFlag &connectionPermissionFlag)

Construct with action and connectionPermissionFlag.

Parameters:
  • action – Pointer to action to display item for

  • connectionPermissionFlag – Connection permission flag to display

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

void setData(const QVariant &value, int role) override

Set model data to value for role.

class ForceDisabledItem : public mv::AbstractActionsModel::Item

Model item class for toggling action force disabled.

Public Functions

ForceDisabledItem(gui::WidgetAction *action)

Construct with action.

Parameters:

action – Pointer to action to display item for

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

void setData(const QVariant &value, int role) override

Set model data to value for role.

class ForceHiddenItem : public mv::AbstractActionsModel::Item

Model item class for toggling force hidden.

Public Functions

ForceHiddenItem(gui::WidgetAction *action)

Construct with action.

Parameters:

action – Pointer to action to display item for

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

void setData(const QVariant &value, int role) override

Set model data to value for role.

class HeaderItem : public QStandardItem

Header standard model item class.

Public Functions

HeaderItem(const ColumHeaderInfo &columHeaderInfo)

Construct with columHeaderInfo.

Parameters:

columHeaderInfo – Column header info

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

class IdItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying the action identifier.

Public Functions

IdItem(gui::WidgetAction *action)

Construct with action.

Parameters:

action – Pointer to action to display item for

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

class IsConnectedItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying whether the action is connected or not.

Public Functions

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

Item(gui::WidgetAction *action, bool editable = false)

Use base action item constructor.

class IsLeafItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying whether the action is a leaf action.

Public Functions

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

Item(gui::WidgetAction *action, bool editable = false)

Use base action item constructor.

class IsRootItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying whether the action is a root action.

Public Functions

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

Item(gui::WidgetAction *action, bool editable = false)

Use base action item constructor.

class Item : public QStandardItem, public QObject

Base standard model item class for widget action.

Subclassed by mv::AbstractActionsModel::ConnectionPermissionItem, mv::AbstractActionsModel::ForceDisabledItem, mv::AbstractActionsModel::ForceHiddenItem, mv::AbstractActionsModel::IdItem, mv::AbstractActionsModel::IsConnectedItem, mv::AbstractActionsModel::IsLeafItem, mv::AbstractActionsModel::IsRootItem, mv::AbstractActionsModel::LocationItem, mv::AbstractActionsModel::NameItem, mv::AbstractActionsModel::NumberOfConnectedActionsItem, mv::AbstractActionsModel::ParentActionIdItem, mv::AbstractActionsModel::PublicActionIdItem, mv::AbstractActionsModel::ScopeItem, mv::AbstractActionsModel::SortIndexItem, mv::AbstractActionsModel::StretchItem, mv::AbstractActionsModel::TypeItem

Public Functions

Item(gui::WidgetAction *action, bool editable = false)

Construct with action.

Parameters:
  • action – Pointer to action to display item for

  • editable – Whether the model item is editable or not

QPointer<gui::WidgetAction> getAction() const

Get action return Pointer to action to display item for.

class LocationItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying the action location.

Public Functions

LocationItem(gui::WidgetAction *action)

Construct with action.

Parameters:

action – Pointer to action to display item for

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

class NameItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying the action name.

Public Functions

NameItem(gui::WidgetAction *action)

Construct with action.

Parameters:

action – Pointer to action to display item for

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

void setData(const QVariant &value, int role) override

Set model data to value for role.

class NumberOfConnectedActionsItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying the number of connected actions.

Public Functions

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

Item(gui::WidgetAction *action, bool editable = false)

Use base action item constructor.

class ParentActionIdItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying the parent action identifier.

Public Functions

ParentActionIdItem(gui::WidgetAction *action)

Construct with action.

Parameters:

action – Pointer to action to display item for

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

class PublicActionIdItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying the public action identifier.

Public Functions

PublicActionIdItem(gui::WidgetAction *action)

Construct with action.

Parameters:

action – Pointer to action to display item for

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

class Row : public QList<QStandardItem*>

Convenience class for combining action items in a row.

Public Functions

inline Row(gui::WidgetAction *action)

Construct row with action.

Parameters:

action – Pointer to row action

class ScopeItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying the action scope.

Public Functions

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

Item(gui::WidgetAction *action, bool editable = false)

Use base action item constructor.

class SortIndexItem : public mv::AbstractActionsModel::Item

Model item class for action sort index.

Public Functions

SortIndexItem(gui::WidgetAction *action)

Construct with action.

Parameters:

action – Pointer to action to display item for

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

void setData(const QVariant &value, int role) override

Set model data to value for role.

class StretchItem : public mv::AbstractActionsModel::Item

Model item class for action stretch.

Public Functions

StretchItem(gui::WidgetAction *action)

Construct with action.

Parameters:

action – Pointer to action to display item for

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

void setData(const QVariant &value, int role) override

Set model data to value for role.

class TypeItem : public mv::AbstractActionsModel::Item

Standard model item class for displaying the action type.

Public Functions

QVariant data(int role = Qt::UserRole + 1) const override

Get model data for role.

Returns:

Data for role in variant form

Item(gui::WidgetAction *action, bool editable = false)

Use base action item constructor.