summaryrefslogtreecommitdiff
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
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.
-rw-r--r--src/nautilus-progress-info-widget.c34
-rw-r--r--src/resources/ui/nautilus-progress-info-widget.ui19
2 files changed, 31 insertions, 22 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);
}
diff --git a/src/resources/ui/nautilus-progress-info-widget.ui b/src/resources/ui/nautilus-progress-info-widget.ui
index 3aee042e3..2cc80c183 100644
--- a/src/resources/ui/nautilus-progress-info-widget.ui
+++ b/src/resources/ui/nautilus-progress-info-widget.ui
@@ -33,22 +33,15 @@
</packing>
</child>
<child>
- <object class="GtkButton" id="cancel">
+ <object class="GtkButton" id="button">
<property name="visible">True</property>
<property name="receives_default">True</property>
<property name="margin_start">20</property>
<property name="valign">center</property>
+ <property name="image">cancel_image</property>
<style>
- <class name="image-button"/>
<class name="nautilus-circular-button"/>
</style>
- <child>
- <object class="GtkImage" id="cancel_icon">
- <property name="visible">True</property>
- <property name="icon-name">window-close-symbolic</property>
- <property name="icon-size">1</property>
- </object>
- </child>
</object>
<packing>
<property name="height">3</property>
@@ -75,4 +68,12 @@
</packing>
</child>
</template>
+ <object class="GtkImage" id="cancel_image">
+ <property name="visible">True</property>
+ <property name="icon_name">window-close-symbolic</property>
+ </object>
+ <object class="GtkImage" id="done_image">
+ <property name="visible">True</property>
+ <property name="icon_name">object-select-symbolic</property>
+ </object>
</interface>