diff options
Diffstat (limited to 'src/nautilus-progress-info-widget.c')
-rw-r--r-- | src/nautilus-progress-info-widget.c | 254 |
1 files changed, 134 insertions, 120 deletions
diff --git a/src/nautilus-progress-info-widget.c b/src/nautilus-progress-info-widget.c index a2d711c0b..1cf350ba5 100644 --- a/src/nautilus-progress-info-widget.c +++ b/src/nautilus-progress-info-widget.c @@ -24,19 +24,21 @@ #include <config.h> #include "nautilus-progress-info-widget.h" -struct _NautilusProgressInfoWidgetPrivate { - NautilusProgressInfo *info; - - GtkWidget *status; /* GtkLabel */ - GtkWidget *details; /* GtkLabel */ - GtkWidget *progress_bar; - GtkWidget *button; - GtkWidget *done_image; +struct _NautilusProgressInfoWidgetPrivate +{ + NautilusProgressInfo *info; + + GtkWidget *status; /* GtkLabel */ + GtkWidget *details; /* GtkLabel */ + GtkWidget *progress_bar; + GtkWidget *button; + GtkWidget *done_image; }; -enum { - PROP_INFO = 1, - NUM_PROPERTIES +enum +{ + PROP_INFO = 1, + NUM_PROPERTIES }; static GParamSpec *properties[NUM_PROPERTIES] = { NULL }; @@ -47,169 +49,181 @@ G_DEFINE_TYPE_WITH_PRIVATE (NautilusProgressInfoWidget, nautilus_progress_info_w static void info_finished (NautilusProgressInfoWidget *self) { - gtk_button_set_image (GTK_BUTTON (self->priv->button), self->priv->done_image); - gtk_widget_set_sensitive (self->priv->button, 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->button, FALSE); + gtk_widget_set_sensitive (self->priv->button, FALSE); } static void update_data (NautilusProgressInfoWidget *self) { - char *status, *details; - char *markup; - - status = nautilus_progress_info_get_status (self->priv->info); - gtk_label_set_text (GTK_LABEL (self->priv->status), status); - g_free (status); - - details = nautilus_progress_info_get_details (self->priv->info); - markup = g_markup_printf_escaped ("<span size='small'>%s</span>", details); - gtk_label_set_markup (GTK_LABEL (self->priv->details), markup); - g_free (details); - g_free (markup); + char *status, *details; + char *markup; + + status = nautilus_progress_info_get_status (self->priv->info); + gtk_label_set_text (GTK_LABEL (self->priv->status), status); + g_free (status); + + details = nautilus_progress_info_get_details (self->priv->info); + markup = g_markup_printf_escaped ("<span size='small'>%s</span>", details); + gtk_label_set_markup (GTK_LABEL (self->priv->details), markup); + g_free (details); + g_free (markup); } static void update_progress (NautilusProgressInfoWidget *self) { - double progress; - - progress = nautilus_progress_info_get_progress (self->priv->info); - if (progress < 0) { - gtk_progress_bar_pulse (GTK_PROGRESS_BAR (self->priv->progress_bar)); - } else { - gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (self->priv->progress_bar), progress); - } + double progress; + + progress = nautilus_progress_info_get_progress (self->priv->info); + if (progress < 0) + { + gtk_progress_bar_pulse (GTK_PROGRESS_BAR (self->priv->progress_bar)); + } + else + { + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (self->priv->progress_bar), progress); + } } static void -button_clicked (GtkWidget *button, - NautilusProgressInfoWidget *self) +button_clicked (GtkWidget *button, + NautilusProgressInfoWidget *self) { - if (!nautilus_progress_info_get_is_finished (self->priv->info)) { - 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 nautilus_progress_info_widget_dispose (GObject *obj) { - NautilusProgressInfoWidget *self = NAUTILUS_PROGRESS_INFO_WIDGET (obj); + NautilusProgressInfoWidget *self = NAUTILUS_PROGRESS_INFO_WIDGET (obj); - if (self->priv->info != NULL) { - g_signal_handlers_disconnect_by_data (self->priv->info, self); - } - g_clear_object (&self->priv->info); + if (self->priv->info != NULL) + { + g_signal_handlers_disconnect_by_data (self->priv->info, self); + } + g_clear_object (&self->priv->info); - G_OBJECT_CLASS (nautilus_progress_info_widget_parent_class)->dispose (obj); + G_OBJECT_CLASS (nautilus_progress_info_widget_parent_class)->dispose (obj); } static void nautilus_progress_info_widget_constructed (GObject *obj) { - NautilusProgressInfoWidget *self = NAUTILUS_PROGRESS_INFO_WIDGET (obj); - - G_OBJECT_CLASS (nautilus_progress_info_widget_parent_class)->constructed (obj); - - g_signal_connect_swapped (self->priv->info, - "changed", - G_CALLBACK (update_data), self); - g_signal_connect_swapped (self->priv->info, - "progress-changed", - G_CALLBACK (update_progress), self); - g_signal_connect_swapped (self->priv->info, - "finished", - G_CALLBACK (info_finished), self); - g_signal_connect_swapped (self->priv->info, - "cancelled", - G_CALLBACK (info_cancelled), self); - - update_data (self); - update_progress (self); + NautilusProgressInfoWidget *self = NAUTILUS_PROGRESS_INFO_WIDGET (obj); + + G_OBJECT_CLASS (nautilus_progress_info_widget_parent_class)->constructed (obj); + + g_signal_connect_swapped (self->priv->info, + "changed", + G_CALLBACK (update_data), self); + g_signal_connect_swapped (self->priv->info, + "progress-changed", + G_CALLBACK (update_progress), self); + g_signal_connect_swapped (self->priv->info, + "finished", + G_CALLBACK (info_finished), self); + g_signal_connect_swapped (self->priv->info, + "cancelled", + G_CALLBACK (info_cancelled), self); + + update_data (self); + update_progress (self); } static void -nautilus_progress_info_widget_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) +nautilus_progress_info_widget_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) { - NautilusProgressInfoWidget *self = NAUTILUS_PROGRESS_INFO_WIDGET (object); - - switch (property_id) { - case PROP_INFO: - self->priv->info = g_value_dup_object (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - break; - } + NautilusProgressInfoWidget *self = NAUTILUS_PROGRESS_INFO_WIDGET (object); + + switch (property_id) + { + case PROP_INFO: + { + self->priv->info = g_value_dup_object (value); + } + break; + + default: + { + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + } + break; + } } static void nautilus_progress_info_widget_init (NautilusProgressInfoWidget *self) { - self->priv = nautilus_progress_info_widget_get_instance_private (self); + self->priv = nautilus_progress_info_widget_get_instance_private (self); - gtk_widget_init_template (GTK_WIDGET (self)); + gtk_widget_init_template (GTK_WIDGET (self)); - g_signal_connect (self->priv->button, "clicked", - G_CALLBACK (button_clicked), self); + g_signal_connect (self->priv->button, "clicked", + G_CALLBACK (button_clicked), self); } static void nautilus_progress_info_widget_class_init (NautilusProgressInfoWidgetClass *klass) { - GObjectClass *oclass; - GtkWidgetClass *widget_class; - - widget_class = GTK_WIDGET_CLASS (klass); - oclass = G_OBJECT_CLASS (klass); - oclass->set_property = nautilus_progress_info_widget_set_property; - oclass->constructed = nautilus_progress_info_widget_constructed; - oclass->dispose = nautilus_progress_info_widget_dispose; - - properties[PROP_INFO] = - g_param_spec_object ("info", - "NautilusProgressInfo", - "The NautilusProgressInfo associated with this widget", - NAUTILUS_TYPE_PROGRESS_INFO, - G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | - G_PARAM_STATIC_STRINGS); - - g_object_class_install_properties (oclass, NUM_PROPERTIES, properties); - - gtk_widget_class_set_template_from_resource (widget_class, - "/org/gnome/nautilus/ui/nautilus-progress-info-widget.ui"); - - 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, button); - gtk_widget_class_bind_template_child_private (widget_class, NautilusProgressInfoWidget, done_image); + GObjectClass *oclass; + GtkWidgetClass *widget_class; + + widget_class = GTK_WIDGET_CLASS (klass); + oclass = G_OBJECT_CLASS (klass); + oclass->set_property = nautilus_progress_info_widget_set_property; + oclass->constructed = nautilus_progress_info_widget_constructed; + oclass->dispose = nautilus_progress_info_widget_dispose; + + properties[PROP_INFO] = + g_param_spec_object ("info", + "NautilusProgressInfo", + "The NautilusProgressInfo associated with this widget", + NAUTILUS_TYPE_PROGRESS_INFO, + G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (oclass, NUM_PROPERTIES, properties); + + gtk_widget_class_set_template_from_resource (widget_class, + "/org/gnome/nautilus/ui/nautilus-progress-info-widget.ui"); + + 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, button); + gtk_widget_class_bind_template_child_private (widget_class, NautilusProgressInfoWidget, done_image); } GtkWidget * nautilus_progress_info_widget_new (NautilusProgressInfo *info) { - NautilusProgressInfoWidget *self; + NautilusProgressInfoWidget *self; - self = g_object_new (NAUTILUS_TYPE_PROGRESS_INFO_WIDGET, - "info", info, - NULL); + self = g_object_new (NAUTILUS_TYPE_PROGRESS_INFO_WIDGET, + "info", info, + NULL); - if (nautilus_progress_info_get_is_finished (self->priv->info)) { - gtk_button_set_image (GTK_BUTTON (self->priv->button), self->priv->done_image); - } + 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)); + 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); } |