static gboolean onProgressDialogRefresh (gpointer data) { char * str = NULL; MakeMetaUI * ui = data; const tr_metainfo_builder * b = ui->builder; GtkDialog * d = GTK_DIALOG (ui->progress_dialog); GtkProgressBar * p = GTK_PROGRESS_BAR (ui->progress_bar); const double fraction = b->pieceCount ? ((double)b->pieceIndex / b->pieceCount) : 0; char * base = g_path_get_basename (b->top); /* progress label */ if (!b->isDone) str = g_strdup_printf (_("Creating \"%s\""), base); else if (b->result == TR_MAKEMETA_OK) str = g_strdup_printf (_("Created \"%s\"!"), base); else if (b->result == TR_MAKEMETA_URL) str = g_strdup_printf (_("Error: invalid announce URL \"%s\""), b->errfile); else if (b->result == TR_MAKEMETA_CANCELLED) str = g_strdup_printf (_("Cancelled")); else if (b->result == TR_MAKEMETA_IO_READ) str = g_strdup_printf (_("Error reading \"%s\": %s"), b->errfile, g_strerror (b->my_errno)); else if (b->result == TR_MAKEMETA_IO_WRITE) str = g_strdup_printf (_("Error writing \"%s\": %s"), b->errfile, g_strerror (b->my_errno)); else g_assert_not_reached (); if (str != NULL) { gtr_label_set_text (GTK_LABEL (ui->progress_label), str); g_free (str); } /* progress bar */ if (!b->pieceIndex) { str = g_strdup (""); } else { char sizebuf[128]; tr_strlsize (sizebuf, (uint64_t)b->pieceIndex * (uint64_t)b->pieceSize, sizeof (sizebuf)); /* how much data we've scanned through to generate checksums */ str = g_strdup_printf (_("Scanned %s"), sizebuf); } gtk_progress_bar_set_fraction (p, fraction); gtk_progress_bar_set_text (p, str); g_free (str); /* buttons */ gtk_dialog_set_response_sensitive (d, GTK_RESPONSE_CANCEL, !b->isDone); gtk_dialog_set_response_sensitive (d, GTK_RESPONSE_CLOSE, b->isDone); gtk_dialog_set_response_sensitive (d, GTK_RESPONSE_ACCEPT, b->isDone && !b->result); g_free (base); return G_SOURCE_CONTINUE; }
static void setLabel( GtkWidget * w, const char * str ) { gtr_label_set_text( GTK_LABEL( w ), str ); }
static void setLabel (GtkLabel * l, const char * str) { gtr_label_set_text (l, str); }