Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
VolumeMonitor
is for listing the user interesting devices and volumes
on the computer. In other words, what a file selector or file manager
would show in a sidebar.
VolumeMonitor
is not
[thread-default-context aware][g-main-context-push-thread-default],
and so should not be used other than from the main thread, with no
thread-default-context active.
In order to receive updates about volumes and mounts monitored through GVFS, a main loop must be running.
Synopsis
- newtype VolumeMonitor = VolumeMonitor (ManagedPtr VolumeMonitor)
- class (GObject o, IsDescendantOf VolumeMonitor o) => IsVolumeMonitor o
- toVolumeMonitor :: (MonadIO m, IsVolumeMonitor o) => o -> m VolumeMonitor
- volumeMonitorAdoptOrphanMount :: (HasCallStack, MonadIO m, IsMount a) => a -> m Volume
- volumeMonitorGet :: (HasCallStack, MonadIO m) => m VolumeMonitor
- volumeMonitorGetConnectedDrives :: (HasCallStack, MonadIO m, IsVolumeMonitor a) => a -> m [Drive]
- volumeMonitorGetMountForUuid :: (HasCallStack, MonadIO m, IsVolumeMonitor a) => a -> Text -> m (Maybe Mount)
- volumeMonitorGetMounts :: (HasCallStack, MonadIO m, IsVolumeMonitor a) => a -> m [Mount]
- volumeMonitorGetVolumeForUuid :: (HasCallStack, MonadIO m, IsVolumeMonitor a) => a -> Text -> m (Maybe Volume)
- volumeMonitorGetVolumes :: (HasCallStack, MonadIO m, IsVolumeMonitor a) => a -> m [Volume]
- type VolumeMonitorDriveChangedCallback = Drive -> IO ()
- afterVolumeMonitorDriveChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveChangedCallback) -> m SignalHandlerId
- onVolumeMonitorDriveChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveChangedCallback) -> m SignalHandlerId
- type VolumeMonitorDriveConnectedCallback = Drive -> IO ()
- afterVolumeMonitorDriveConnected :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveConnectedCallback) -> m SignalHandlerId
- onVolumeMonitorDriveConnected :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveConnectedCallback) -> m SignalHandlerId
- type VolumeMonitorDriveDisconnectedCallback = Drive -> IO ()
- afterVolumeMonitorDriveDisconnected :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveDisconnectedCallback) -> m SignalHandlerId
- onVolumeMonitorDriveDisconnected :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveDisconnectedCallback) -> m SignalHandlerId
- type VolumeMonitorDriveEjectButtonCallback = Drive -> IO ()
- afterVolumeMonitorDriveEjectButton :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveEjectButtonCallback) -> m SignalHandlerId
- onVolumeMonitorDriveEjectButton :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveEjectButtonCallback) -> m SignalHandlerId
- type VolumeMonitorDriveStopButtonCallback = Drive -> IO ()
- afterVolumeMonitorDriveStopButton :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveStopButtonCallback) -> m SignalHandlerId
- onVolumeMonitorDriveStopButton :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveStopButtonCallback) -> m SignalHandlerId
- type VolumeMonitorMountAddedCallback = Mount -> IO ()
- afterVolumeMonitorMountAdded :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountAddedCallback) -> m SignalHandlerId
- onVolumeMonitorMountAdded :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountAddedCallback) -> m SignalHandlerId
- type VolumeMonitorMountChangedCallback = Mount -> IO ()
- afterVolumeMonitorMountChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountChangedCallback) -> m SignalHandlerId
- onVolumeMonitorMountChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountChangedCallback) -> m SignalHandlerId
- type VolumeMonitorMountPreUnmountCallback = Mount -> IO ()
- afterVolumeMonitorMountPreUnmount :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountPreUnmountCallback) -> m SignalHandlerId
- onVolumeMonitorMountPreUnmount :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountPreUnmountCallback) -> m SignalHandlerId
- type VolumeMonitorMountRemovedCallback = Mount -> IO ()
- afterVolumeMonitorMountRemoved :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountRemovedCallback) -> m SignalHandlerId
- onVolumeMonitorMountRemoved :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountRemovedCallback) -> m SignalHandlerId
- type VolumeMonitorVolumeAddedCallback = Volume -> IO ()
- afterVolumeMonitorVolumeAdded :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeAddedCallback) -> m SignalHandlerId
- onVolumeMonitorVolumeAdded :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeAddedCallback) -> m SignalHandlerId
- type VolumeMonitorVolumeChangedCallback = Volume -> IO ()
- afterVolumeMonitorVolumeChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeChangedCallback) -> m SignalHandlerId
- onVolumeMonitorVolumeChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeChangedCallback) -> m SignalHandlerId
- type VolumeMonitorVolumeRemovedCallback = Volume -> IO ()
- afterVolumeMonitorVolumeRemoved :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeRemovedCallback) -> m SignalHandlerId
- onVolumeMonitorVolumeRemoved :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeRemovedCallback) -> m SignalHandlerId
Exported types
newtype VolumeMonitor Source #
Memory-managed wrapper type.
Instances
Eq VolumeMonitor Source # | |
Defined in GI.Gio.Objects.VolumeMonitor (==) :: VolumeMonitor -> VolumeMonitor -> Bool # (/=) :: VolumeMonitor -> VolumeMonitor -> Bool # | |
GObject VolumeMonitor Source # | |
Defined in GI.Gio.Objects.VolumeMonitor | |
ManagedPtrNewtype VolumeMonitor Source # | |
Defined in GI.Gio.Objects.VolumeMonitor | |
TypedObject VolumeMonitor Source # | |
Defined in GI.Gio.Objects.VolumeMonitor | |
HasParentTypes VolumeMonitor Source # | |
Defined in GI.Gio.Objects.VolumeMonitor | |
IsGValue (Maybe VolumeMonitor) Source # | Convert |
Defined in GI.Gio.Objects.VolumeMonitor gvalueGType_ :: IO GType # gvalueSet_ :: Ptr GValue -> Maybe VolumeMonitor -> IO () # gvalueGet_ :: Ptr GValue -> IO (Maybe VolumeMonitor) # | |
type ParentTypes VolumeMonitor Source # | |
Defined in GI.Gio.Objects.VolumeMonitor |
class (GObject o, IsDescendantOf VolumeMonitor o) => IsVolumeMonitor o Source #
Type class for types which can be safely cast to VolumeMonitor
, for instance with toVolumeMonitor
.
Instances
(GObject o, IsDescendantOf VolumeMonitor o) => IsVolumeMonitor o Source # | |
Defined in GI.Gio.Objects.VolumeMonitor |
toVolumeMonitor :: (MonadIO m, IsVolumeMonitor o) => o -> m VolumeMonitor Source #
Cast to VolumeMonitor
, for types for which this is known to be safe. For general casts, use castTo
.
Methods
Click to display all available methods, including inherited ones
Methods
bindProperty, bindPropertyFull, forceFloating, freezeNotify, getv, isFloating, notify, notifyByPspec, ref, refSink, runDispose, stealData, stealQdata, thawNotify, unref, watchClosure.
Getters
getConnectedDrives, getData, getMountForUuid, getMounts, getProperty, getQdata, getVolumeForUuid, getVolumes.
Setters
adoptOrphanMount
volumeMonitorAdoptOrphanMount Source #
:: (HasCallStack, MonadIO m, IsMount a) | |
=> a |
|
-> m Volume | Returns: the |
Deprecated: (Since version 2.20)Instead of using this function, VolumeMonitor
implementations should instead create shadow mounts with the URI ofthe mount they intend to adopt. See the proxy volume monitor ingvfs for an example of this. Also see mountIsShadowed
,mountShadow
and mountUnshadow
functions.
This function should be called by any VolumeMonitor
implementation when a new Mount
object is created that is not
associated with a Volume
object. It must be called just before
emitting the mountAdded
signal.
If the return value is not Nothing
, the caller must associate the
returned Volume
object with the Mount
. This involves returning
it in its mountGetVolume
implementation. The caller must
also listen for the "removed" signal on the returned object
and give up its reference when handling that signal
Similarly, if implementing volumeMonitorAdoptOrphanMount
,
the implementor must take a reference to mount
and return it in
its volumeGetMount
implemented. Also, the implementor must
listen for the "unmounted" signal on mount
and give up its
reference upon handling that signal.
There are two main use cases for this function.
One is when implementing a user space file system driver that reads
blocks of a block device that is already represented by the native
volume monitor (for example a CD Audio file system driver). Such
a driver will generate its own Mount
object that needs to be
associated with the Volume
object that represents the volume.
The other is for implementing a VolumeMonitor
whose sole purpose
is to return Volume
objects representing entries in the users
"favorite servers" list or similar.
get
:: (HasCallStack, MonadIO m) | |
=> m VolumeMonitor | Returns: a reference to the |
Gets the volume monitor used by gio.
getConnectedDrives
volumeMonitorGetConnectedDrives Source #
:: (HasCallStack, MonadIO m, IsVolumeMonitor a) | |
=> a |
|
-> m [Drive] |
Gets a list of drives connected to the system.
The returned list should be freed with g_list_free()
, after
its elements have been unreffed with objectUnref
.
getMountForUuid
volumeMonitorGetMountForUuid Source #
:: (HasCallStack, MonadIO m, IsVolumeMonitor a) | |
=> a |
|
-> Text |
|
-> m (Maybe Mount) | Returns: a |
Finds a Mount
object by its UUID (see mountGetUuid
)
getMounts
volumeMonitorGetMounts Source #
:: (HasCallStack, MonadIO m, IsVolumeMonitor a) | |
=> a |
|
-> m [Mount] |
Gets a list of the mounts on the system.
The returned list should be freed with g_list_free()
, after
its elements have been unreffed with objectUnref
.
getVolumeForUuid
volumeMonitorGetVolumeForUuid Source #
:: (HasCallStack, MonadIO m, IsVolumeMonitor a) | |
=> a |
|
-> Text |
|
-> m (Maybe Volume) | Returns: a |
Finds a Volume
object by its UUID (see volumeGetUuid
)
getVolumes
volumeMonitorGetVolumes Source #
:: (HasCallStack, MonadIO m, IsVolumeMonitor a) | |
=> a |
|
-> m [Volume] |
Gets a list of the volumes on the system.
The returned list should be freed with g_list_free()
, after
its elements have been unreffed with objectUnref
.
Signals
driveChanged
type VolumeMonitorDriveChangedCallback Source #
Emitted when a drive changes.
afterVolumeMonitorDriveChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the driveChanged signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #driveChanged callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorDriveChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the driveChanged signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #driveChanged callback
driveConnected
type VolumeMonitorDriveConnectedCallback Source #
Emitted when a drive is connected to the system.
afterVolumeMonitorDriveConnected :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveConnectedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the driveConnected signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #driveConnected callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorDriveConnected :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveConnectedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the driveConnected signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #driveConnected callback
driveDisconnected
type VolumeMonitorDriveDisconnectedCallback Source #
Emitted when a drive is disconnected from the system.
afterVolumeMonitorDriveDisconnected :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveDisconnectedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the driveDisconnected signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #driveDisconnected callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorDriveDisconnected :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveDisconnectedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the driveDisconnected signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #driveDisconnected callback
driveEjectButton
type VolumeMonitorDriveEjectButtonCallback Source #
Emitted when the eject button is pressed on drive
.
Since: 2.18
afterVolumeMonitorDriveEjectButton :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveEjectButtonCallback) -> m SignalHandlerId Source #
Connect a signal handler for the driveEjectButton signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #driveEjectButton callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorDriveEjectButton :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveEjectButtonCallback) -> m SignalHandlerId Source #
Connect a signal handler for the driveEjectButton signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #driveEjectButton callback
driveStopButton
type VolumeMonitorDriveStopButtonCallback Source #
Emitted when the stop button is pressed on drive
.
Since: 2.22
afterVolumeMonitorDriveStopButton :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveStopButtonCallback) -> m SignalHandlerId Source #
Connect a signal handler for the driveStopButton signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #driveStopButton callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorDriveStopButton :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorDriveStopButtonCallback) -> m SignalHandlerId Source #
Connect a signal handler for the driveStopButton signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #driveStopButton callback
mountAdded
type VolumeMonitorMountAddedCallback Source #
Emitted when a mount is added.
afterVolumeMonitorMountAdded :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountAddedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the mountAdded signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #mountAdded callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorMountAdded :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountAddedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the mountAdded signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #mountAdded callback
mountChanged
type VolumeMonitorMountChangedCallback Source #
Emitted when a mount changes.
afterVolumeMonitorMountChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the mountChanged signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #mountChanged callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorMountChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the mountChanged signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #mountChanged callback
mountPreUnmount
type VolumeMonitorMountPreUnmountCallback Source #
May be emitted when a mount is about to be removed.
This signal depends on the backend and is only emitted if GIO was used to unmount.
afterVolumeMonitorMountPreUnmount :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountPreUnmountCallback) -> m SignalHandlerId Source #
Connect a signal handler for the mountPreUnmount signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #mountPreUnmount callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorMountPreUnmount :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountPreUnmountCallback) -> m SignalHandlerId Source #
Connect a signal handler for the mountPreUnmount signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #mountPreUnmount callback
mountRemoved
type VolumeMonitorMountRemovedCallback Source #
Emitted when a mount is removed.
afterVolumeMonitorMountRemoved :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountRemovedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the mountRemoved signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #mountRemoved callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorMountRemoved :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorMountRemovedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the mountRemoved signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #mountRemoved callback
volumeAdded
type VolumeMonitorVolumeAddedCallback Source #
Emitted when a mountable volume is added to the system.
afterVolumeMonitorVolumeAdded :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeAddedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the volumeAdded signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #volumeAdded callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorVolumeAdded :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeAddedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the volumeAdded signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #volumeAdded callback
volumeChanged
type VolumeMonitorVolumeChangedCallback Source #
Emitted when mountable volume is changed.
afterVolumeMonitorVolumeChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the volumeChanged signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #volumeChanged callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorVolumeChanged :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeChangedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the volumeChanged signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #volumeChanged callback
volumeRemoved
type VolumeMonitorVolumeRemovedCallback Source #
Emitted when a mountable volume is removed from the system.
afterVolumeMonitorVolumeRemoved :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeRemovedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the volumeRemoved signal, to be run after the default handler. When overloading is enabled, this is equivalent to
after
volumeMonitor #volumeRemoved callback
By default the object invoking the signal is not passed to the callback.
If you need to access it, you can use the implit ?self
parameter.
Note that this requires activating the ImplicitParams
GHC extension.
onVolumeMonitorVolumeRemoved :: (IsVolumeMonitor a, MonadIO m) => a -> ((?self :: a) => VolumeMonitorVolumeRemovedCallback) -> m SignalHandlerId Source #
Connect a signal handler for the volumeRemoved signal, to be run before the default handler. When overloading is enabled, this is equivalent to
on
volumeMonitor #volumeRemoved callback