diff --git a/apps/dev/src/components/graphicsitem_pin.cpp b/apps/dev/src/components/graphicsitem_pin.cpp index 683c3168..9fad95e2 100644 --- a/apps/dev/src/components/graphicsitem_pin.cpp +++ b/apps/dev/src/components/graphicsitem_pin.cpp @@ -205,7 +205,7 @@ void graphicsitem_pin::set_pinout_unit(const pinout_table::pinout_unit_t &unit) ++function_i; } this->setProperty(interface_graphicsitem_pin::property_name_menu_ptr, QVariant::fromValue(_menu)); - this->setProperty(interface_graphicsitem_pin::property_name_pinout_unit_ptr, QVariant::fromValue(unit)); + this->setProperty(interface_graphicsitem_pin::property_name_pinout_unit_ptr, QVariant::fromValue(&_pinout_unit)); _comment = _project_instance->get_pin_comment(_name); _function = _project_instance->get_pin_function(_name); diff --git a/components/inc/propertybrowser.h b/components/inc/propertybrowser.h index 42f48d81..be732e28 100644 --- a/components/inc/propertybrowser.h +++ b/components/inc/propertybrowser.h @@ -57,12 +57,12 @@ class propertybrowser final : public QtTreePropertyBrowser * @param item: pin item */ void update_property_by_pin(QGraphicsItem *item); - void pin_value_changed_callback(const QtProperty *property, const QVariant &value); - void pin_attribute_changed_callback(const QtProperty *property, const QString &attribute, const QVariant &value); + void pin_value_changed_callback(const QtProperty *property, const QVariant &value) const; + void pin_attribute_changed_callback(const QtProperty *property, const QString &attribute, const QVariant &value) const; private: - QtProperty *set_pin_base(const QString &name, const QString &comment, int position, bool locked); - QtProperty *set_pin_system(const QString &function); + QtProperty *set_pin_base(const QString &name, const QString &comment, int position, bool locked) const; + QtProperty *set_pin_system(const QString &function) const; private: project *_project_instance; diff --git a/components/src/propertybrowser.cpp b/components/src/propertybrowser.cpp index af8c7e45..bea4b7d2 100644 --- a/components/src/propertybrowser.cpp +++ b/components/src/propertybrowser.cpp @@ -41,7 +41,8 @@ propertybrowser::propertybrowser(QWidget *parent) : QtTreePropertyBrowser(parent propertybrowser::~propertybrowser() = default; -QtProperty *propertybrowser::set_pin_base(const QString &name, const QString &comment, int position, bool locked) +QtProperty *propertybrowser::set_pin_base(const QString &name, const QString &comment, const int position, + const bool locked) const { auto *group_item = _variant_manager->addProperty(QtVariantPropertyManager::groupTypeId(), tr("Base")); @@ -66,7 +67,7 @@ QtProperty *propertybrowser::set_pin_base(const QString &name, const QString &co return group_item; } -QtProperty *propertybrowser::set_pin_system(const QString &function) +QtProperty *propertybrowser::set_pin_system(const QString &function) const { auto *group_item = _variant_manager->addProperty(QtVariantPropertyManager::groupTypeId(), tr("System")); @@ -88,6 +89,9 @@ void propertybrowser::update_property_by_pin(QGraphicsItem *item) const auto name = pin->objectName(); const auto pinout_unit = pin->property(interface_graphicsitem_pin::property_name_pinout_unit_ptr).value(); + if (pinout_unit == nullptr) + return; + const auto function = _project_instance->get_pin_function(name); // such as "GPIO-Input" const auto comment = _project_instance->get_pin_comment(name); // such as "LED0" const auto locked = _project_instance->get_pin_locked(name); // such as "true" @@ -173,7 +177,7 @@ void propertybrowser::update_property_by_pin(QGraphicsItem *item) _pin_name = name; } -void propertybrowser::pin_value_changed_callback(const QtProperty *property, const QVariant &value) +void propertybrowser::pin_value_changed_callback(const QtProperty *property, const QVariant &value) const { if (_pin_name.isEmpty()) return; @@ -220,7 +224,7 @@ void propertybrowser::pin_value_changed_callback(const QtProperty *property, con } void propertybrowser::pin_attribute_changed_callback(const QtProperty *property, const QString &attribute, - const QVariant &value) + const QVariant &value) const { Q_UNUSED(property) Q_UNUSED(attribute)