gsettings-qt bi-directional binding can cause X lockup

Bug #1330365 reported by damianatorrpm@gmail.com
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gsettings-qt
In Progress
Undecided
Lars Karlitski
gsettings-qt (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Bi-directional bindin can cause a lockup of X.
Would be good to check inside gsettings-qml something like:
void setValue
 ( m_value != value )
    {
        m_value = value;
        emit valueChanged();
    }
}

Example code:
http://pastie.org/9293986

Related branches

Revision history for this message
Lars Karlitski (larsu) wrote :

I agree, this makes sense for the qml bindings. We can't do it for the c++ class in the same project, because that doesn't cache the values like QQmlPropertyMap does.

Thanks for reporting this!

Changed in gsettings-qt:
status: New → In Progress
assignee: nobody → Lars Uebernickel (larsu)
Revision history for this message
damianatorrpm@gmail.com (damianatorrpm) wrote :

While we're at data binding, somewhat related https://bugs.launchpad.net/gsettings-qt/+bug/1333460

Revision history for this message
damianatorrpm@gmail.com (damianatorrpm) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gsettings-qt - 0.1+14.10.20140624-0ubuntu1

---------------
gsettings-qt (0.1+14.10.20140624-0ubuntu1) utopic; urgency=low

  [ Lars Uebernickel ]
  * Stop using deprecated g_settings_get_range()
  * qml: only emit changed when the value has actually changed This
    cannot be done for the c++ class, because that would involve a
    round-trip to the dconf database. The QML component already caches
    all values because of the way QQmlPropertyMap works. (LP: #1330365)
 -- Ubuntu daily release <email address hidden> Tue, 24 Jun 2014 10:01:54 +0000

Changed in gsettings-qt (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.