Byron Clark avatar Byron Clark committed 177d381

More complete handling of the last state storage.

refs issue 1

Comments (0)

Files changed (1)

         self.bus.add_signal_receiver(self.device_added,
                                      signal_name='DeviceAdded',
                                      bus_name='org.freedesktop.UDisks')
+        self.bus.add_signal_receiver(self.device_removed,
+                                     signal_name='DeviceRemoved',
+                                     bus_name='org.freedesktop.UDisks')
         self.bus.add_signal_receiver(self.device_changed,
                                      signal_name='DeviceChanged',
                                      bus_name='org.freedesktop.UDisks')
 
     def device_added(self, device):
         self.log.debug('device added: %s' % (device,))
+        # Since the device just appeared we don't want the old state.
+        if device in self.last_device_state:
+            del self.last_device_state[device]
         self._mount_device(udiskie.device.Device(self.bus, device))
 
+    def device_removed(self, device):
+        self.log.debug('device removed: %s' % (device,))
+        if device in self.last_device_state:
+            del self.last_device_state[device]
+
     def device_changed(self, device):
         self.log.debug('device changed: %s' % (device,))
         last_state = self.last_device_state.get(device)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.