davidedmundson created this revision.
Restricted Application added a project: Frameworks.
Restricted Application added a subscriber: Frameworks.

REVISION SUMMARY
  property() works in a slightly different way to just calling Get().
  It allocates the variant of the relevant type in advance in QObject code, and 
then calls 
  the DBus code to populate it.
  
  This fails for QByteArrayList, before it reaches DBus code.
  I don't know why, and I should probably investigate..but we need an ASAP fix 
in Solid anyway.
  
  Calling Get directly aleviates this problem.
  m_device is a QDBusInterface making use of a magic DBus feature where it 
  aggregates all interfaces on that object path. This code therefor has to do 
the same as the GetAll().
  
  From a DBus traffic perspective this code is identical, we just avoid going 
through Qt properties.
  
  This shouldn't introduce any new bugs, as we already use GetAll directly, if 
anything this brings it more 
  in line.

TEST PLAN
  Commented out the checkCache so that it always loads data.
  Instead of failing, it now works.

REPOSITORY
  R245 Solid

BRANCH
  master

REVISION DETAIL
  https://phabricator.kde.org/D4305

AFFECTED FILES
  src/solid/devices/backends/udisks2/udisksdevicebackend.cpp

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: davidedmundson
Cc: #frameworks

Reply via email to