summaryrefslogtreecommitdiff
path: root/src/nautilus-progress-info-widget.c
diff options
context:
space:
mode:
authorPaolo Borelli <pborelli@gnome.org>2016-01-18 19:10:37 +0100
committerPaolo Borelli <pborelli@gnome.org>2016-01-19 23:48:06 +0100
commit05d02cea4ab52d30fa42cc2925f7a41cfc15d5cd (patch)
tree0dae3c7d83ade0b54b66ab84538357d46b95da60 /src/nautilus-progress-info-widget.c
parent723492940b3ba6faf7622f565faf1696e66c2bdc (diff)
downloadnautilus-05d02cea4ab52d30fa42cc2925f7a41cfc15d5cd.tar.gz
progress-info: change icon when operation is finished
When the operation is finished turn the icon into a "check" icon.
Diffstat (limited to 'src/nautilus-progress-info-widget.c')
-rw-r--r--src/nautilus-progress-info-widget.c34
1 files changed, 21 insertions, 13 deletions
diff --git a/src/nautilus-progress-info-widget.c b/src/nautilus-progress-info-widget.c
index e1c71ac3e..9edb1c0fa 100644
--- a/src/nautilus-progress-info-widget.c
+++ b/src/nautilus-progress-info-widget.c
@@ -31,7 +31,8 @@ struct _NautilusProgressInfoWidgetPrivate {
GtkWidget *status; /* GtkLabel */
GtkWidget *details; /* GtkLabel */
GtkWidget *progress_bar;
- GtkWidget *cancel;
+ GtkWidget *button;
+ GtkWidget *done_image;
};
enum {
@@ -47,13 +48,14 @@ G_DEFINE_TYPE_WITH_PRIVATE (NautilusProgressInfoWidget, nautilus_progress_info_w
static void
info_finished (NautilusProgressInfoWidget *self)
{
- gtk_widget_set_sensitive (self->priv->cancel, FALSE);
+ gtk_button_set_image (GTK_BUTTON (self->priv->button), self->priv->done_image);
+ gtk_widget_set_sensitive (self->priv->button, FALSE);
}
static void
info_cancelled (NautilusProgressInfoWidget *self)
{
- gtk_widget_set_sensitive (self->priv->cancel, FALSE);
+ gtk_widget_set_sensitive (self->priv->button, FALSE);
}
static void
@@ -87,10 +89,12 @@ update_progress (NautilusProgressInfoWidget *self)
}
static void
-cancel_clicked (GtkWidget *button,
+button_clicked (GtkWidget *button,
NautilusProgressInfoWidget *self)
{
- nautilus_progress_info_cancel (self->priv->info);
+ if (!nautilus_progress_info_get_is_finished (self->priv->info)) {
+ nautilus_progress_info_cancel (self->priv->info);
+ }
}
static void
@@ -155,9 +159,8 @@ nautilus_progress_info_widget_init (NautilusProgressInfoWidget *self)
gtk_widget_init_template (GTK_WIDGET (self));
- g_signal_connect (self->priv->cancel, "clicked",
- G_CALLBACK (cancel_clicked), self);
-
+ g_signal_connect (self->priv->button, "clicked",
+ G_CALLBACK (button_clicked), self);
}
static void
@@ -188,7 +191,8 @@ nautilus_progress_info_widget_class_init (NautilusProgressInfoWidgetClass *klass
gtk_widget_class_bind_template_child_private (widget_class, NautilusProgressInfoWidget, status);
gtk_widget_class_bind_template_child_private (widget_class, NautilusProgressInfoWidget, details);
gtk_widget_class_bind_template_child_private (widget_class, NautilusProgressInfoWidget, progress_bar);
- gtk_widget_class_bind_template_child_private (widget_class, NautilusProgressInfoWidget, cancel);
+ gtk_widget_class_bind_template_child_private (widget_class, NautilusProgressInfoWidget, button);
+ gtk_widget_class_bind_template_child_private (widget_class, NautilusProgressInfoWidget, done_image);
}
GtkWidget *
@@ -200,9 +204,13 @@ nautilus_progress_info_widget_new (NautilusProgressInfo *info)
"info", info,
NULL);
- gtk_widget_set_sensitive (self->priv->cancel,
- !nautilus_progress_info_get_is_finished (self->priv->info) &&
- !nautilus_progress_info_get_is_cancelled (self->priv->info));
+ if (nautilus_progress_info_get_is_finished (self->priv->info)) {
+ gtk_button_set_image (GTK_BUTTON (self->priv->button), self->priv->done_image);
+ }
+
+ gtk_widget_set_sensitive (self->priv->button,
+ !nautilus_progress_info_get_is_finished (self->priv->info) &&
+ !nautilus_progress_info_get_is_cancelled (self->priv->info));
- return GTK_WIDGET (self);
+ return GTK_WIDGET (self);
}