[vlmc-devel] [PATCH] Make SettingsValue emit change(val) when it is initially loaded.

Hugo Beauzée-Luyssen hugo at beauzee.fr
Mon Mar 7 16:57:54 CET 2016


On 03/07/2016 04:54 PM, Yikai Lu wrote:
> ---
>   src/Settings/SettingValue.cpp | 8 +++++++-
>   src/Settings/SettingValue.h   | 1 +
>   2 files changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/src/Settings/SettingValue.cpp b/src/Settings/SettingValue.cpp
> index 7f35926..126d399 100644
> --- a/src/Settings/SettingValue.cpp
> +++ b/src/Settings/SettingValue.cpp
> @@ -30,7 +30,8 @@ SettingValue::SettingValue( const QString& key, SettingValue::Type type, const Q
>           m_name( name ),
>           m_desc( desc ),
>           m_type( type ),
> -        m_flags( flags )
> +        m_flags( flags ),
> +        m_initLoad( true )
>   {
>   }
>
> @@ -52,6 +53,11 @@ SettingValue::set( const QVariant& _val )
>           m_val = val;
>           emit changed( m_val );
>       }
> +    else if ( m_initLoad )
> +    {
> +        emit changed( m_val );
> +        m_initLoad = false;

Sorry about missing this in the previous review, though you'll need to 
unconditionally set m_initLoad to false after the first set, otherwise 
if the loaded value differs from the default value, the changed signal 
will be emited upon subsequent set, even if the value hasn't changed at all.

> +    }
>   }
>
>   const QVariant&
> diff --git a/src/Settings/SettingValue.h b/src/Settings/SettingValue.h
> index 60f1bea..ebc225e 100644
> --- a/src/Settings/SettingValue.h
> +++ b/src/Settings/SettingValue.h
> @@ -130,6 +130,7 @@ class   SettingValue : public QObject
>           Flags           m_flags;
>           QVariant        m_min;
>           QVariant        m_max;
> +        bool            m_initLoad;
>       signals:
>           /**
>            * \brief This signal is emmited while the m_val
>

Regards,


More information about the Vlmc-devel mailing list