Imported Upstream version 0.79.2
This commit is contained in:
committed by
TANIGUCHI Takaki
parent
c3da7b4a44
commit
bfe15b23fb
88
misc.c
88
misc.c
@@ -1,5 +1,5 @@
|
||||
/* dvdisaster: Additional error correction for optical media.
|
||||
* Copyright (C) 2004-2009 Carsten Gnoerlich.
|
||||
* Copyright (C) 2004-2010 Carsten Gnoerlich.
|
||||
* Project home page: http://www.dvdisaster.com
|
||||
* Email: carsten@dvdisaster.com -or- cgnoerlich@fsfe.org
|
||||
*
|
||||
@@ -202,7 +202,7 @@ static void print_greetings(FILE *where)
|
||||
if(greetings_shown) return;
|
||||
|
||||
greetings_shown = 1;
|
||||
g_fprintf(where, _("dvdisaster-%s%sCopyright 2004-2009 Carsten Gnoerlich.\n"),
|
||||
g_fprintf(where, _("dvdisaster-%s%sCopyright 2004-2010 Carsten Gnoerlich.\n"),
|
||||
VERSION, strstr(VERSION,"pl") ? " " : " ");
|
||||
/* TRANSLATORS: Excluding all kinds of warranty might be harmful under your
|
||||
legislature. If in doubt, just translate the following like "This is free
|
||||
@@ -275,6 +275,7 @@ void PrintProgress(char *format, ...)
|
||||
{ n = 255;
|
||||
msg[255] = 0;
|
||||
}
|
||||
Closure->progressLength = n;
|
||||
|
||||
if(strchr(msg, '\n'))
|
||||
g_fprintf(stderr, "%s", msg);
|
||||
@@ -289,6 +290,21 @@ void PrintProgress(char *format, ...)
|
||||
fflush(stderr); /* at least needed for Windows */
|
||||
}
|
||||
|
||||
/*
|
||||
* Clear last progress string
|
||||
*/
|
||||
|
||||
void ClearProgress(void)
|
||||
{ static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
|
||||
int n = Closure->progressLength;
|
||||
|
||||
Closure->bs[n] = Closure->sp[n] = 0;
|
||||
g_fprintf(stderr, "%s%s", Closure->sp, Closure->bs);
|
||||
Closure->bs[n] = '\b';
|
||||
Closure->sp[n] = ' ';
|
||||
g_static_mutex_unlock(&mutex);
|
||||
}
|
||||
|
||||
/*
|
||||
* Print a message to both stderr and the log window
|
||||
*/
|
||||
@@ -758,6 +774,8 @@ void SetLabelText(GtkLabel *label, char *format, ...)
|
||||
va_start(argp, format);
|
||||
if(format)
|
||||
{ char *tmp = g_strdup_vprintf(format, argp);
|
||||
|
||||
if(!tmp) tmp=g_strdup_printf("SetLabelText(%s) failed",format);
|
||||
li->text = g_locale_to_utf8(tmp, -1, NULL, NULL, NULL);
|
||||
g_free(tmp);
|
||||
}
|
||||
@@ -1095,3 +1113,69 @@ void LockLabelSize(GtkLabel *label, char *format, ...)
|
||||
|
||||
g_free(text);
|
||||
}
|
||||
|
||||
/***
|
||||
*** Safety requesters before overwriting stuff
|
||||
***/
|
||||
|
||||
static void dont_ask_again_cb(GtkWidget *widget, gpointer data)
|
||||
{ int state = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
|
||||
|
||||
Closure->confirmDeletion = !state;
|
||||
|
||||
UpdatePrefsConfirmDeletion();
|
||||
}
|
||||
|
||||
static void insert_button(GtkDialog *dialog)
|
||||
{ GtkWidget *check,*align;
|
||||
|
||||
align = gtk_alignment_new(0.5, 0.5, 0.0, 0.0);
|
||||
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), align, FALSE, FALSE, 0);
|
||||
|
||||
check = gtk_check_button_new_with_label(_utf("Do not ask again"));
|
||||
gtk_container_add(GTK_CONTAINER(align), check);
|
||||
gtk_container_set_border_width(GTK_CONTAINER(align), 10);
|
||||
g_signal_connect(G_OBJECT(check), "toggled", G_CALLBACK(dont_ask_again_cb), NULL);
|
||||
|
||||
gtk_widget_show(align);
|
||||
gtk_widget_show(check);
|
||||
ReverseCancelOK(GTK_DIALOG(dialog));
|
||||
}
|
||||
|
||||
int ConfirmImageDeletion(char *file)
|
||||
{ int answer;
|
||||
|
||||
if(!Closure->guiMode) /* Always delete it in command line mode */
|
||||
return TRUE;
|
||||
|
||||
if(!Closure->confirmDeletion) /* I told you so... */
|
||||
return TRUE;
|
||||
|
||||
answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL,
|
||||
insert_button,
|
||||
_("Image file already exists and does not match the medium:\n\n"
|
||||
"%s\n\n"
|
||||
"The existing image file will be deleted."),
|
||||
file);
|
||||
|
||||
return answer == GTK_RESPONSE_OK;
|
||||
}
|
||||
|
||||
int ConfirmEccDeletion(char *file)
|
||||
{ int answer;
|
||||
|
||||
if(!Closure->guiMode) /* Always delete it in command line mode */
|
||||
return TRUE;
|
||||
|
||||
if(!Closure->confirmDeletion) /* I told you so... */
|
||||
return TRUE;
|
||||
|
||||
answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL,
|
||||
insert_button,
|
||||
_("The error correction file is already present:\n\n"
|
||||
"%s\n\n"
|
||||
"Overwrite it?"),
|
||||
file);
|
||||
|
||||
return answer == GTK_RESPONSE_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user