diff --git a/gio/ChangeLog b/gio/ChangeLog index c27397ea6..23f537935 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,10 @@ +2009-02-16 Matthias Clasen + + * gmountoperation.[hc]: Add an "aborted" signal to abort a + mount operation from the backend side. + + * gvolume.h: Add docs regarding the "aborted" signal. + 2009-02-13 Ryan Lortie Bug 505042 – add file attribute for actually used file size in bytes diff --git a/gio/gmountoperation.c b/gio/gmountoperation.c index 8234b8315..0635e7594 100644 --- a/gio/gmountoperation.c +++ b/gio/gmountoperation.c @@ -57,6 +57,7 @@ enum { ASK_PASSWORD, ASK_QUESTION, REPLY, + ABORTED, LAST_SIGNAL }; @@ -296,6 +297,26 @@ g_mount_operation_class_init (GMountOperationClass *klass) G_TYPE_NONE, 1, G_TYPE_MOUNT_OPERATION_RESULT); + /** + * GMountOperation::aborted: + * + * Emitted by the backend when e.g. a device becomes unavailable + * while a mount operation is in progress. + * + * Implementations of GMountOperation should handle this signal + * by dismissing open password dialogs. + * + * Since: 2.20 + */ + signals[ABORTED] = + g_signal_new (I_("aborted"), + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GMountOperationClass, aborted), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + /** * GMountOperation:username: * diff --git a/gio/gmountoperation.h b/gio/gmountoperation.h index 6c3029dc8..e6ba51a9c 100644 --- a/gio/gmountoperation.h +++ b/gio/gmountoperation.h @@ -73,6 +73,8 @@ struct _GMountOperationClass void (* reply) (GMountOperation *op, GMountOperationResult result); + void (* aborted) (GMountOperation *op); + /*< private >*/ /* Padding for future expansion */ void (*_g_reserved1) (void); @@ -86,7 +88,6 @@ struct _GMountOperationClass void (*_g_reserved9) (void); void (*_g_reserved10) (void); void (*_g_reserved11) (void); - void (*_g_reserved12) (void); }; GType g_mount_operation_get_type (void) G_GNUC_CONST; diff --git a/gio/gvolume.h b/gio/gvolume.h index 640c42fd0..f81faad2e 100644 --- a/gio/gvolume.h +++ b/gio/gvolume.h @@ -85,7 +85,10 @@ G_BEGIN_DECLS * @get_mount: Gets a #GMount representing the mounted volume. Returns %NULL if the #GVolume is not mounted. * @can_mount: Returns %TRUE if the #GVolume can be mounted. * @can_eject: Checks if a #GVolume can be ejected. - * @mount_fn: Mounts a given #GVolume. + * @mount_fn: Mounts a given #GVolume. + * #GVolume implementations must emit the #GMountOperation::aborted + * signal before completing a mount operation that is aborted while + * awaiting input from the user through a #GMountOperation instance. * @mount_finish: Finishes a mount operation. * @eject: Ejects a given #GVolume. * @eject_finish: Finishes an eject operation.