From b6fa9c95e01b9498190e1fc58d30ffb67c9c22b6 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Mon, 22 Feb 2016 22:33:51 +0100 Subject: [PATCH] [DEV] update new interface of esignal --- ewol/widget/Select.cpp | 10 +++++----- ewol/widget/Select.h | 3 +++ ewol/widget/Spin.cpp | 18 +++++++++--------- ewol/widget/Spin.h | 4 ++++ 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/ewol/widget/Select.cpp b/ewol/widget/Select.cpp index 8200d81d..adbd7ecb 100644 --- a/ewol/widget/Select.cpp +++ b/ewol/widget/Select.cpp @@ -145,13 +145,13 @@ bool ewol::widget::Select::loadXML(const std::shared_ptr& _ void ewol::widget::Select::updateGui() { ewol::widget::SpinBase::updateGui(); - if (m_widgetEntry != nullptr) { - m_widgetEntry->signalUnBindAll(shared_from_this()); + if ( m_widgetEntry != nullptr + && m_connectionEntry.isConnected() == false) { } - if (m_widgetButtonUp != nullptr) { - m_widgetButtonUp->signalUnBindAll(shared_from_this()); - m_widgetButtonUp->signalPressed.connect(shared_from_this(), &ewol::widget::Select::onCallbackOpenMenu); + if ( m_widgetButtonUp != nullptr + && m_connectionButton.isConnected() == false) { + m_connectionButton = m_widgetButtonUp->signalPressed.connect(this, &ewol::widget::Select::onCallbackOpenMenu); } } diff --git a/ewol/widget/Select.h b/ewol/widget/Select.h index b5f25581..6bba5a58 100644 --- a/ewol/widget/Select.h +++ b/ewol/widget/Select.h @@ -57,6 +57,9 @@ namespace ewol { protected: void onCallbackOpenMenu(); void onCallbackLabelPressed(int32_t _value); + protected: + esignal::Connection m_connectionEntry; + esignal::Connection m_connectionButton; }; }; }; diff --git a/ewol/widget/Spin.cpp b/ewol/widget/Spin.cpp index 4726b0b4..564e4789 100644 --- a/ewol/widget/Spin.cpp +++ b/ewol/widget/Spin.cpp @@ -61,20 +61,20 @@ void ewol::widget::Spin::onPropertyChangeValue(const eproperty::Ref& _paramPoint void ewol::widget::Spin::updateGui() { EWOL_WARNING("updateGui [START]"); ewol::widget::SpinBase::updateGui(); - if (m_widgetEntry != nullptr) { - m_widgetEntry->signalUnBindAll(shared_from_this()); + + if ( m_widgetEntry != nullptr + && m_connectionEntry.isConnected() == false) { } - if (m_widgetButtonUp != nullptr) { - m_widgetButtonUp->signalUnBindAll(shared_from_this()); - m_widgetButtonUp->signalPressed.connect(shared_from_this(), &ewol::widget::Spin::onCallbackUp); + if ( m_widgetButtonUp != nullptr + && m_connectionButtonUp.isConnected() == false) { + m_connectionButtonUp = m_widgetButtonUp->signalPressed.connect(this, &ewol::widget::Spin::onCallbackUp); } - if (m_widgetButtonDown != nullptr) { - m_widgetButtonDown->signalUnBindAll(shared_from_this()); - m_widgetButtonDown->signalPressed.connect(shared_from_this(), &ewol::widget::Spin::onCallbackDown); + if ( m_widgetButtonDown != nullptr + && m_connectionButtonDown.isConnected() == false) { + m_connectionButtonDown = m_widgetButtonDown->signalPressed.connect(this, &ewol::widget::Spin::onCallbackDown); } EWOL_WARNING("updateGui [STOP]"); - } void ewol::widget::Spin::checkValue(int64_t _value) { diff --git a/ewol/widget/Spin.h b/ewol/widget/Spin.h index f7305a81..f207e317 100644 --- a/ewol/widget/Spin.h +++ b/ewol/widget/Spin.h @@ -50,6 +50,10 @@ namespace ewol { protected: void onCallbackUp(); void onCallbackDown(); + protected: + esignal::Connection m_connectionEntry; + esignal::Connection m_connectionButtonUp; + esignal::Connection m_connectionButtonDown; }; }; };