[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdelibs/KDE/4.9] solid/solid/backends/udisks: Ensure slotChanged is called in all instances
From:       Jacopo De Simoi <wilderkde () gmail ! com>
Date:       2012-08-19 16:17:48
Message-ID: 20120819161748.AF234A6232 () git ! kde ! org
[Download RAW message or body]

Git commit 886014f477ebddaf7a4e66d795a85ecab7bad617 by Jacopo De Simoi.
Committed on 19/08/2012 at 17:17.
Pushed by jacopods into branch 'KDE/4.9'.

Ensure slotChanged is called in all instances

Move slotChanged call to the broadcastDone slot
so that it is called in all instances of the device; in fact broadcastDone
is called by dbus.  This makes sure that the device state is correctly updated
when modified by some out-of-process routine, e.g. when mounted via
kde-runtime/soliduiserver actions.

This *should* fix bug 268020, please check
CCBUG: 268020

M  +4    -8    solid/solid/backends/udisks/udisksstorageaccess.cpp

http://commits.kde.org/kdelibs/886014f477ebddaf7a4e66d795a85ecab7bad617

diff --git a/solid/solid/backends/udisks/udisksstorageaccess.cpp \
b/solid/solid/backends/udisks/udisksstorageaccess.cpp index 71a4d43..3773927 100644
--- a/solid/solid/backends/udisks/udisksstorageaccess.cpp
+++ b/solid/solid/backends/udisks/udisksstorageaccess.cpp
@@ -153,8 +153,6 @@ void UDisksStorageAccess::slotDBusReply( const QDBusMessage & \
reply )  {
             m_setupInProgress = false;
             m_device->broadcastActionDone("setup");
-
-            slotChanged();
         }
     }
     else if (m_teardownInProgress)
@@ -169,9 +167,6 @@ void UDisksStorageAccess::slotDBusReply( const QDBusMessage & \
reply )  }
         else
         {
-            m_teardownInProgress = false;
-            m_device->broadcastActionDone("teardown");
-
             if (m_device->prop("DriveIsMediaEjectable").toBool() &&
                     m_device->prop("DeviceIsMediaAvailable").toBool() &&
                     !m_device->prop("DeviceIsOpticalDisc").toBool()) // optical \
drives have their Eject method @@ -206,7 +201,8 @@ void \
UDisksStorageAccess::slotDBusReply( const QDBusMessage & reply )  c.call(msg, \
QDBus::NoBlock);  }
 
-            slotChanged();
+            m_teardownInProgress = false;
+            m_device->broadcastActionDone("teardown");
         }
     }
 }
@@ -219,14 +215,12 @@ void UDisksStorageAccess::slotDBusError( const QDBusError & \
                error )
         m_device->broadcastActionDone("setup", \
                m_device->errorToSolidError(error.name()),
                                       m_device->errorToString(error.name()) + ": " \
+error.message());  
-        slotChanged();
     }
     else if (m_teardownInProgress)
     {
         m_teardownInProgress = false;
         m_device->broadcastActionDone("teardown", \
                m_device->errorToSolidError(error.name()),
                                       m_device->errorToString(error.name()) + ": " + \
                error.message());
-        slotChanged();
     }
 }
 
@@ -240,6 +234,7 @@ void UDisksStorageAccess::slotSetupDone(int error, const QString \
&errorString)  {
     m_setupInProgress = false;
     emit setupDone(static_cast<Solid::ErrorType>(error), errorString, \
m_device->udi()); +    slotChanged();
 }
 
 void UDisksStorageAccess::slotTeardownRequested()
@@ -252,6 +247,7 @@ void UDisksStorageAccess::slotTeardownDone(int error, const \
QString &errorString  {
     m_teardownInProgress = false;
     emit teardownDone(static_cast<Solid::ErrorType>(error), errorString, \
m_device->udi()); +    slotChanged();
 }
 
 bool UDisksStorageAccess::mount()


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic