~mfisch/brasero/update-to-3.8.0

« back to all changes in this revision

Viewing changes to src/brasero-sum-dialog.c

  • Committer: Bazaar Package Importer
  • Author(s): Pedro Fragoso
  • Date: 2008-11-18 11:30:50 UTC
  • mto: (1.4.1 experimental)
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: james.westby@ubuntu.com-20081118113050-yhrskmatlel0gzfm
Tags: upstream-0.8.3
ImportĀ upstreamĀ versionĀ 0.8.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
113
113
                                          GTK_DIALOG_DESTROY_WITH_PARENT,
114
114
                                          type,
115
115
                                          GTK_BUTTONS_NONE,
116
 
                                          primary_message);
 
116
                                          "%s", primary_message);
117
117
 
118
118
        gtk_window_set_title (GTK_WINDOW (message), title);
119
119
 
120
120
        gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (message),
121
 
                                                  secondary_message);
 
121
                                                  "%s", secondary_message);
122
122
 
123
123
        button = brasero_utils_make_button (_("Check _Again"),
124
124
                                            GTK_STOCK_FIND,
178
178
 
179
179
static gboolean
180
180
brasero_sum_dialog_corruption_warning (BraseroSumDialog *self,
181
 
                                       GSList *wrong_sums)
 
181
                                       const gchar **wrong_sums)
182
182
{
183
 
        GSList *iter;
 
183
        gchar *string;
184
184
        GtkWidget *tree;
185
185
        GtkWidget *scroll;
186
186
        GtkWidget *button;
190
190
        GtkCellRenderer *renderer;
191
191
        GtkTreeViewColumn *column;
192
192
 
 
193
        string = g_strdup_printf ("<b><big>%s</big></b>", _("The following files appear to be corrupted:"));
193
194
        message = gtk_message_dialog_new_with_markup (GTK_WINDOW (self),
194
195
                                                      GTK_DIALOG_MODAL |
195
196
                                                      GTK_DIALOG_DESTROY_WITH_PARENT,
196
197
                                                      GTK_MESSAGE_ERROR,
197
198
                                                      GTK_BUTTONS_NONE,
198
 
                                                      _("<b><big>The following files appear to be corrupted:</big></b>"));
 
199
                                                      "%s", string);
 
200
        g_free (string);
199
201
 
200
202
        gtk_window_set_title (GTK_WINDOW (message),  _("File Integrity Check Error"));
201
203
        gtk_window_set_resizable (GTK_WINDOW (message), TRUE);
216
218
 
217
219
        /* build a list */
218
220
        model = GTK_TREE_MODEL (gtk_list_store_new (BRASERO_SUM_DIALOG_NB_COL, G_TYPE_STRING));
219
 
        for (iter = wrong_sums; iter; iter = iter->next) {
220
 
                gchar *path;
 
221
        for (; wrong_sums && (*wrong_sums); wrong_sums ++) {
 
222
                const gchar *path;
221
223
                GtkTreeIter tree_iter;
222
224
 
223
 
                path = iter->data;
 
225
                path = (*wrong_sums);
224
226
                gtk_list_store_append (GTK_LIST_STORE (model), &tree_iter);
225
227
                gtk_list_store_set (GTK_LIST_STORE (model), &tree_iter,
226
228
                                    BRASERO_SUM_DIALOG_PATH, path,
396
398
        /* now get the md5 sum from the file */
397
399
        file = fopen (src, "r");
398
400
        if (!file) {
 
401
                int errsv = errno;
 
402
 
399
403
                if (tmppath)
400
404
                        g_remove (tmppath);
401
405
 
404
408
                g_set_error (error,
405
409
                             BRASERO_BURN_ERROR,
406
410
                             BRASERO_BURN_ERROR_GENERAL,
407
 
                             strerror (errno));
 
411
                             "%s",
 
412
                             g_strerror (errsv));
408
413
                return BRASERO_BURN_ERR;
409
414
        }
410
415
 
421
426
                g_set_error (error,
422
427
                             BRASERO_BURN_ERROR,
423
428
                             BRASERO_BURN_ERROR_GENERAL,
424
 
                             strerror (errno));
 
429
                             "%s",
 
430
                             g_strerror (errno));
425
431
 
426
432
                fclose (file);
427
433
                return BRASERO_BURN_ERR;
539
545
                return BRASERO_CHECKSUM_NONE;
540
546
 
541
547
        filename = g_build_path (G_DIR_SEPARATOR_S, root, BRASERO_MD5_FILE, NULL);
 
548
 
542
549
        if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
543
550
                g_free (filename);
 
551
                g_free (root);
544
552
 
545
553
                brasero_track_set_checksum (track,
546
554
                                            BRASERO_CHECKSUM_MD5_FILE,
553
561
        filename = g_build_path (G_DIR_SEPARATOR_S, root, BRASERO_SHA1_FILE, NULL);
554
562
        if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
555
563
                g_free (filename);
 
564
                g_free (root);
556
565
 
557
566
                brasero_track_set_checksum (track,
558
567
                                            BRASERO_CHECKSUM_SHA1_FILE,
565
574
        filename = g_build_path (G_DIR_SEPARATOR_S, root, BRASERO_SHA256_FILE, NULL);
566
575
        if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
567
576
                g_free (filename);
 
577
                g_free (root);
568
578
 
569
579
                brasero_track_set_checksum (track,
570
580
                                            BRASERO_CHECKSUM_SHA256_FILE,
573
583
                return BRASERO_CHECKSUM_SHA256_FILE;
574
584
        }
575
585
        g_free (filename);
 
586
        g_free (root);
576
587
 
577
588
        g_set_error (error,
578
589
                     BRASERO_ERROR,
587
598
                                   BraseroDrive *drive)
588
599
{
589
600
        BraseroChecksumType checksum_type;
590
 
        GSList *wrong_sums = NULL;
591
601
        BraseroBurnResult result;
592
602
        GError *error = NULL;
 
603
        GValue *value = NULL;
593
604
        BraseroTrack *track;
594
605
        BraseroBurn *burn;
595
606
        gboolean retval;
643
654
 
644
655
        g_error_free (error);
645
656
 
646
 
        wrong_sums = brasero_burn_session_get_wrong_checksums (self->priv->session);
647
 
        retval = brasero_sum_dialog_corruption_warning (self, wrong_sums);
648
 
        g_slist_foreach (wrong_sums, (GFunc) g_free, NULL);
649
 
        g_slist_free (wrong_sums);
 
657
        brasero_track_tag_lookup (track,
 
658
                                  BRASERO_TRACK_MEDIUM_WRONG_CHECKSUM_TAG,
 
659
                                  &value);
650
660
 
651
 
        return retval;
 
661
        return brasero_sum_dialog_corruption_warning (self, g_value_get_boxed (value));
652
662
}
653
663
 
654
664
static gboolean