HAL  v4.5.0-232-g8053ac4b3
The Hardware Analyzer - a comprehensive reverse engineering and manipulation framework for gate-level netlists.
hal::ParameterValueDelegate Class Reference

Editor delegate for the "Value" column of the parameter table. More...

#include </home/runner/work/hal/hal/plugins/gui/include/gui/selection_details_widget/gate_details_widget/parameter_value_delegate.h>

Inheritance diagram for hal::ParameterValueDelegate:
Inheritance graph
Collaboration diagram for hal::ParameterValueDelegate:
Collaboration graph

Public Member Functions

 ParameterValueDelegate (QObject *parent=nullptr)
 
QWidget * createEditor (QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
 
void setModelData (QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
 
void updateEditorGeometry (QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override
 
- Public Member Functions inherited from QItemDelegate
 QItemDelegate (QObject *parent)
 
virtual ~QItemDelegate ()
 
bool hasClipping () const const
 
void setClipping (bool clip)
 
virtual void paint (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const const override
 
virtual QSize sizeHint (const QStyleOptionViewItem &option, const QModelIndex &index) const const override
 
virtual void setEditorData (QWidget *editor, const QModelIndex &index) const const override
 
QItemEditorFactory * itemEditorFactory () const const
 
void setItemEditorFactory (QItemEditorFactory *factory)
 
- Public Member Functions inherited from QAbstractItemDelegate
 QAbstractItemDelegate (QObject *parent)
 
virtual ~QAbstractItemDelegate ()
 
virtual void destroyEditor (QWidget *editor, const QModelIndex &index) const const
 
virtual bool helpEvent (QHelpEvent *event, QAbstractItemView *view, const QStyleOptionViewItem &option, const QModelIndex &index)
 
void commitData (QWidget *editor)
 
void closeEditor (QWidget *editor, QAbstractItemDelegate::EndEditHint hint)
 
void sizeHintChanged (const QModelIndex &index)
 
- Public Member Functions inherited from QObject
virtual const QMetaObject * metaObject () const const
 
 QObject (QObject *parent)
 
virtual ~QObject ()
 
virtual bool event (QEvent *e)
 
QString objectName () const const
 
void setObjectName (const QString &name)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
bool signalsBlocked () const const
 
bool blockSignals (bool block)
 
QThread * thread () const const
 
void moveToThread (QThread *targetThread)
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
void killTimer (int id)
 
T findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectList & children () const const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectTree ()
 
void dumpObjectInfo ()
 
void dumpObjectTree () const const
 
void dumpObjectInfo () const const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const const
 
QList< QByteArray > dynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObject * parent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
T qobject_cast (QObject *object)
 
T qobject_cast (const QObject *object)
 
T qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 Q_CLASSINFO (Name, Value)
 
 Q_INTERFACES (...)
 
 Q_PROPERTY (...)
 
 Q_ENUMS (...)
 
 Q_FLAGS (...)
 
 Q_ENUM (...)
 
 Q_FLAG (...)
 
 Q_ENUM_NS (...)
 
 Q_FLAG_NS (...)
 
 Q_OBJECT Q_OBJECT
 
 Q_GADGET Q_GADGET
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SLOTS Q_SLOTS
 
 Q_SLOT Q_SLOT
 
 Q_EMIT Q_EMIT
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 

Additional Inherited Members

- Public Types inherited from QAbstractItemDelegate
enum  EndEditHint
 
- Static Public Member Functions inherited from QAbstractItemDelegate
QString elidedText (const QFontMetrics &fontMetrics, int width, Qt::TextElideMode mode, const QString &text)
 
- Static Public Member Functions inherited from QObject
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
- Public Attributes inherited from QAbstractItemDelegate
 NoHint
 
 EditNextItem
 
 EditPreviousItem
 
 SubmitModelCache
 
 RevertModelCache
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Member Functions inherited from QItemDelegate
virtual void drawDisplay (QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, const QString &text) const const
 
virtual void drawDecoration (QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, const QPixmap &pixmap) const const
 
virtual void drawFocus (QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect) const const
 
virtual void drawCheck (QPainter *painter, const QStyleOptionViewItem &option, const QRect &rect, Qt::CheckState state) const const
 
void drawBackground (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const const
 
virtual bool eventFilter (QObject *editor, QEvent *event) override
 
virtual bool editorEvent (QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override
 
- Protected Member Functions inherited from QObject
QObject * sender () const const
 
int senderSignalIndex () const const
 
int receivers (const char *signal) const const
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
- Properties inherited from QItemDelegate
 clipping
 
- Properties inherited from QObject
 objectName
 

Detailed Description

Editor delegate for the "Value" column of the parameter table.

Picks the editor widget to show for a given row based on the parameter's Parameter::Type: a combo box for Boolean / Enum, a text field for the remaining types. The chosen value is written back through the model's setData (which validates and forwards it to the gate).

The editors and their validators intentionally mirror what hal::core accepts for each Parameter::Type (see Parameter::validate and the parse_* helpers in parameter.cpp), so the user can only enter values that core will also accept.

The one exception is Integer: the editor additionally accepts hexadecimal, octal and binary (as well as signed) input for convenience, even though core only stores decimal. setModelData converts such input back into a decimal string before it is handed off, so core still sees a plain decimal value.

Definition at line 54 of file parameter_value_delegate.h.

Constructor & Destructor Documentation

◆ ParameterValueDelegate()

hal::ParameterValueDelegate::ParameterValueDelegate ( QObject *  parent = nullptr)
explicit

Constructor.

Parameters
parent- The parent object.

Definition at line 12 of file parameter_value_delegate.cpp.

Member Function Documentation

◆ createEditor()

QWidget * hal::ParameterValueDelegate::createEditor ( QWidget *  parent,
const QStyleOptionViewItem &  option,
const QModelIndex &  index 
) const
overridevirtual

Creates the editor widget appropriate for the row's parameter type.

Parameters
parent- The parent widget the editor is created on.
option- The style options for the item.
index- The index being edited (column 4, the value column).
Returns
The editor widget, or nullptr if the cell is not editable.

Reimplemented from QItemDelegate.

Definition at line 16 of file parameter_value_delegate.cpp.

References hal::Parameter::BitVector, hal::Parameter::Boolean, QLocale::c(), hal::Parameter::Enum, hal::ParameterTableModel::EnumValuesRole, hal::Parameter::Float, index, hal::Parameter::Integer, hal::Parameter::LogicVector, QObject::parent(), QLocale::RejectGroupSeparator, QLocale::setNumberOptions(), hal::Parameter::String, Qt::StrongFocus, and hal::Parameter::Time.

◆ setModelData()

void hal::ParameterValueDelegate::setModelData ( QWidget *  editor,
QAbstractItemModel *  model,
const QModelIndex &  index 
) const
overridevirtual

Reads the value from the editor and writes it back through the model.

Parameters
editor- The editor returned by createEditor.
model- The model to write the new value into.
index- The index being edited.

Reimplemented from QItemDelegate.

Definition at line 75 of file parameter_value_delegate.cpp.

References Qt::EditRole, index, hal::Parameter::Integer, and QAbstractItemModel::setData().

◆ updateEditorGeometry()

void hal::ParameterValueDelegate::updateEditorGeometry ( QWidget *  editor,
const QStyleOptionViewItem &  option,
const QModelIndex &  index 
) const
overridevirtual

Sizes the editor to fill the cell.

Parameters
editor- The editor returned by createEditor.
option- The style options carrying the cell rectangle.
index- The index being edited.

Reimplemented from QItemDelegate.

Definition at line 100 of file parameter_value_delegate.cpp.

References QWidget::setGeometry().


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