static void
button_clicked (GtkWidget *button,
		NautilusProgressInfoWidget *self)
{
	if (!nautilus_progress_info_get_is_finished (self->priv->info)) {
		nautilus_progress_info_cancel (self->priv->info);
	}
}
GtkWidget *
nautilus_progress_info_widget_new (NautilusProgressInfo *info)
{
        NautilusProgressInfoWidget *self;

	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);
	}

	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);
}
static gboolean
new_op_started_timeout (NautilusProgressInfo *info)
{
	if (nautilus_progress_info_get_is_paused (info)) {
		return TRUE;
	}
	if (!nautilus_progress_info_get_is_finished (info)) {
		handle_new_progress_info (info);
	}
	g_object_unref (info);
	return FALSE;
}
GtkWidget *
nautilus_progress_info_widget_new (NautilusProgressInfo *info)
{
        NautilusProgressInfoWidget *self;

	self = g_object_new (NAUTILUS_TYPE_PROGRESS_INFO_WIDGET,
			     "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));

        return GTK_WIDGET (self);
}
gboolean
nautilus_progress_manager_are_all_infos_finished_or_cancelled (NautilusProgressInfoManager *self)
{
    GList *l;

    for (l = self->progress_infos; l != NULL; l = l->next)
    {
        if (!(nautilus_progress_info_get_is_finished (l->data) ||
              nautilus_progress_info_get_is_cancelled (l->data)))
        {
            return FALSE;
        }
    }

    return TRUE;
}
static gboolean
new_op_started_timeout (TimeoutData *data)
{
	NautilusProgressInfo *info = data->info;
	NautilusProgressUIHandler *self = data->self;

	if (nautilus_progress_info_get_is_paused (info)) {
		return TRUE;
	}

	if (!nautilus_progress_info_get_is_finished (info)) {
		handle_new_progress_info (self, info);
	}

	timeout_data_free (data);

	return FALSE;
}
void
nautilus_progress_info_manager_remove_finished_or_cancelled_infos (NautilusProgressInfoManager *self)
{
    GList *l;
    GList *next;

    l = self->progress_infos;
    while (l != NULL)
    {
        next = l->next;
        if (nautilus_progress_info_get_is_finished (l->data) ||
            nautilus_progress_info_get_is_cancelled (l->data))
        {
            self->progress_infos = g_list_remove (self->progress_infos,
                                                  l->data);
        }
        l = next;
    }
}
Ejemplo n.º 8
0
static gboolean
should_hide_operations_button (NautilusToolbar *self)
{
        GList *progress_infos;
        GList *l;

        progress_infos = nautilus_progress_info_manager_get_all_infos (self->priv->progress_manager);

        for (l = progress_infos; l != NULL; l = l->next) {
                if (nautilus_progress_info_get_elapsed_time (l->data) +
                    nautilus_progress_info_get_remaining_time (l->data) > OPERATION_MINIMUM_TIME &&
                    !nautilus_progress_info_get_is_cancelled (l->data) &&
                    !nautilus_progress_info_get_is_finished (l->data)) {
                        return FALSE;
                }
        }

        return TRUE;
}
static gboolean
should_hide_operations_button (NautilusToolbar *self)
{
        GList *progress_infos;
        GList *l;

        progress_infos = get_filtered_progress_infos (self);

        for (l = progress_infos; l != NULL; l = l->next) {
                if (nautilus_progress_info_get_total_elapsed_time (l->data) +
                    nautilus_progress_info_get_remaining_time (l->data) > OPERATION_MINIMUM_TIME &&
                    !nautilus_progress_info_get_is_cancelled (l->data) &&
                    !nautilus_progress_info_get_is_finished (l->data)) {
                        return FALSE;
                }
        }

        g_list_free (progress_infos);

        return TRUE;
}