graveman-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Graveman-cvs] Changes to graveman/current/src/callbacks.c


From: sylvain cresto
Subject: [Graveman-cvs] Changes to graveman/current/src/callbacks.c
Date: Sat, 05 Feb 2005 12:32:46 -0500

Index: graveman/current/src/callbacks.c
diff -u graveman/current/src/callbacks.c:1.11 
graveman/current/src/callbacks.c:1.12
--- graveman/current/src/callbacks.c:1.11       Sat Feb  5 17:08:08 2005
+++ graveman/current/src/callbacks.c    Sat Feb  5 17:31:48 2005
@@ -106,9 +106,8 @@
 }
 
 /* callback appele pour l'ajout de chaques fichiers */
-void _add_a_file(gchar *Anom, GtkTreeStore *ATreeStore, GtkTreeIter *Aparent, 
GHashTable *Ahash)
+void _add_a_file(gchar *Anom, GtkTreeStore *ATreeStore, GtkTreeIter *Aparent, 
GHashTable *Ahash, guint64 *Adatasize)
 {
-  guint32 *Ldatasize = (guint32 *)g_hash_table_lookup(Ahash, "datasize");
   GtkTreeIter Liter;
   gchar *LOnlyName;
   struct stat Lfi;
@@ -151,7 +150,7 @@
       if (!strcmp(Lcurfic->d_name, ".") || !strcmp(Lcurfic->d_name, "..")) 
continue;
         
       Lfullname = g_strdup_printf("%s/%s", Anom, Lcurfic->d_name);
-      _add_a_file(Lfullname, ATreeStore, &Liter, Ahash);
+      _add_a_file(Lfullname, ATreeStore, &Liter, Ahash, Adatasize);
       g_free(Lfullname);
     }
     closedir(Ldir);
@@ -166,7 +165,7 @@
     g_free(Lnomutf8);
     g_free(Lonlynameutf8);
 
-    *(Ldatasize)=*(Ldatasize) + Lfi.st_size;
+    *(Adatasize)=*(Adatasize) + Lfi.st_size;
   }
 }
 
@@ -174,7 +173,7 @@
 void gtk_data_creerrepertoire(GtkWidget *btn, gpointer Adata)
 {
   GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA"));
+  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
   GtkTreeIter Liter, Lparent;
   GtkWidget *Lboite, *Lentry;
@@ -216,7 +215,7 @@
 void gtk_data_expandelement(GtkWidget *btn, gpointer Adata)
 {
   GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA"));
+  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
   GtkTreePath *Lpath = NULL;
 
   gtk_tree_view_get_cursor(Lliste, &Lpath, NULL);
@@ -230,7 +229,7 @@
 void gtk_data_renommerelement(GtkWidget *Abtn, gpointer Adata)
 {
   GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA"));
+  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
   GtkWidget *Lboite, *Lentry;
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(Lliste);
   GtkTreePath *Lpath = NULL;
@@ -343,11 +342,11 @@
 }
 
 /* parcourir tous les fils d'un element et recuperer leur taille que l'on 
enleve de "cursize" */
-void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint32 
*Acursize, GHashTable *Ahash);
-void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint32 
*Acursize, GHashTable *Ahash)
+void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint64 
*Acursize, GHashTable *Ahash);
+void remove_children_size(GtkTreeModel *Atreedata, GtkTreeIter *Aiter, guint64 
*Acursize, GHashTable *Ahash)
 {
   GtkTreeIter Lcuriter;
-  guint32 Lsizenbr = 0;
+  guint64 Lsizenbr = 0;
   int Ltype;
 
   if (gtk_tree_model_iter_children(Atreedata, &Lcuriter, Aiter)) {
@@ -390,27 +389,28 @@
   update_status_bar_display(Lhash);
 }
 
-
 /* enlever des fichiers a graver */
 void gtk_data_removefiles(GtkWidget *Abtn, gpointer Adata)
 {
   GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA"));
-  GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"datasizebar"));
-  guint32 *Ldatasize = (guint32 *)g_hash_table_lookup(Lhash, "datasize");
-  guint32 *Ldatamaxsize = (guint32 *)g_hash_table_lookup(Lhash, "datamaxsize");
+  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
+//  gchar *Lprefix = (!strcmp(glade_get_widget_name(Lliste), "LISTEDATA") ? 
"data" : "dvddata");
+  GtkProgressBar *Lcontenance; // = 
GTK_PROGRESS_BAR(sc_hash_table_lookupv(Lhash, "%ssizebar", Lprefix));
+  guint64 *Ldatasize; // = (guint64 *)g_hash_table_lookup(Lhash, "%ssize", 
Lprefix);
+  guint64 *Ldatamaxsize; // = (guint64 *)g_hash_table_lookup(Lhash, 
"%smaxsize", Lprefix);
 
+  _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
+  
   /* image de boot */
 #if 0  
   GtkTreeIter *Literboot = g_hash_table_lookup(Lhash, "file_imageboot");
 #endif
-  /* c'est en fait bien plus simple que cela maintenant que l'on
-   * ne peu selectionner qu'un seul fichier a la fois */
   GtkTreeModel *Ltreedata = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));
   GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
   GList *Lfiles = gtk_tree_selection_get_selected_rows(Lselection, &Ltreedata);
   GList *Lrefs = NULL;
   GList *Lnode = NULL;
+  gint Ltype;
   guint32 Lsizenbr = 0;
   GtkTreeIter Liter;
   gpointer Lproxy = g_object_newv(G_TYPE_OBJECT, 0, NULL);
@@ -427,25 +427,20 @@
     if (Lpath) {
       gtk_tree_model_get_iter(Ltreedata, &Liter, Lpath);
 
-      gtk_tree_model_get(Ltreedata, &Liter, 6, &Lsizenbr, -1);
+      gtk_tree_model_get(Ltreedata, &Liter, 0, &Ltype, 6, &Lsizenbr, -1);
 
-      *Ldatasize-=Lsizenbr;
-      g_assert((*Ldatasize) >= 0);
-
-    /* suppresion icone "image cd de boot" */
-#if 0
-    if (Literboot && !memcmp(&Liter, Literboot, sizeof(Liter))) {
-//printf("oui on efface Literboot!");      
-      gtk_tree_iter_free(Literboot);
-      g_hash_table_steal(Lhash, "file_imageboot");
-    }
-#endif
-    /* on enleve la taille des eventuels enfants */
-      remove_children_size(Ltreedata, &Liter, Ldatasize, Lhash);
-
-      gtk_tree_store_remove(GTK_TREE_STORE(Ltreedata), &Liter);
-      gtk_tree_row_reference_deleted(Lproxy, Lpath);
-      gtk_tree_path_free(Lpath);
+      /* on enleve pas l'element racine */
+      if (Ltype != TYPE_CD) {
+        *Ldatasize-=Lsizenbr;
+        g_assert((*Ldatasize) >= 0);
+
+        /* on enleve la taille des eventuels enfants */
+        remove_children_size(Ltreedata, &Liter, Ldatasize, Lhash);
+
+        gtk_tree_store_remove(GTK_TREE_STORE(Ltreedata), &Liter);
+        gtk_tree_row_reference_deleted(Lproxy, Lpath);
+        gtk_tree_path_free(Lpath);
+      } 
     }
     gtk_tree_row_reference_free(Lnode->data); /* No longer needed */
   }
@@ -496,18 +491,20 @@
 void gtk_data_adddirectory(GtkWidget *btn, gpointer Adata)
 {
   GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA"));
+  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
   GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));
   GtkWidget *Lfilesel = create_adddirselection(NULL);
   GtkTreeIter Liter;
   GSList *Lfiles, *Lcur;
-  GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"datasizebar"));
-  guint32 *Ldatasize = (guint32 *)g_hash_table_lookup(Lhash, "datasize");
-  guint32 *Ldatamaxsize = (guint32 *)g_hash_table_lookup(Lhash, "datamaxsize");
+  GtkProgressBar *Lcontenance; // = 
GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "datasizebar"));
+  guint64 *Ldatasize; // = (guint32 *)g_hash_table_lookup(Lhash, "datasize");
+  guint64 *Ldatamaxsize; // = (guint32 *)g_hash_table_lookup(Lhash, 
"datamaxsize");
   gint Lnumsel = gtk_tree_selection_count_selected_rows(Lselection);
   GtkTreePath *Lpath = NULL;
 
+  _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
+
   /* focus sur le premier element si pas de focus */
   if (!Lnumsel) {
     if (!gtk_tree_model_get_iter_first(Ltreemodel, &Liter)) return;
@@ -530,7 +527,7 @@
     Lfiles = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(Lfilesel));
        
     for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {
-      _add_a_file((gchar *) Lcur->data, (GtkTreeStore *)Ltreemodel, &Liter, 
Lhash);
+      _add_a_file((gchar *) Lcur->data, (GtkTreeStore *)Ltreemodel, &Liter, 
Lhash, Ldatasize);
 
     }
     g_slist_free(Lfiles);
@@ -550,11 +547,11 @@
 void gtk_data_addfile(GtkWidget *btn, gpointer Adata)
 {
   GHashTable *Lhash = (GHashTable *)Adata;
-  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA"));
+  GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
   GtkTreeSelection *Lselection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(Lliste));
-  guint32 *Ldatasize = (guint32 *)g_hash_table_lookup(Lhash, "datasize");
-  guint32 *Ldatamaxsize = (guint32 *)g_hash_table_lookup(Lhash, "datamaxsize");
-  GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"datasizebar"));
+  guint64 *Ldatasize; // = (guint32 *)g_hash_table_lookup(Lhash, "datasize");
+  guint64 *Ldatamaxsize; // = (guint32 *)g_hash_table_lookup(Lhash, 
"datamaxsize");
+  GtkProgressBar *Lcontenance; // = 
GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "datasizebar"));
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));
   GtkWidget *Lfilesel = create_addfileselection(NULL);
   GtkTreeIter Liter;
@@ -562,6 +559,13 @@
   gint Lnumsel = gtk_tree_selection_count_selected_rows(Lselection);
   GtkTreePath *Lpath = NULL;
 
+  _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
+
+    printf("2= ca le fais ? UINT [%d]\n", (guint32) *Ldatasize);
+  if (GTK_IS_WIDGET(Lcontenance)) {
+    printf("2= ici ca le fais\n");
+  }
+
   /* focus sur le premier element si pas de focus */
   if (!Lnumsel) {
     if (!gtk_tree_model_get_iter_first(Ltreemodel, &Liter)) return;
@@ -582,11 +586,12 @@
     save_last_dir(GTK_FILE_CHOOSER(Lfilesel));
 
     Lfiles = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(Lfilesel));
-       
+printf("ici tout va bien !!!!\n");     
     for (Lcur = Lfiles; Lcur && Lcur->data; Lcur = Lcur->next) {
-      _add_a_file((gchar *) Lcur->data, GTK_TREE_STORE(Ltreemodel), &Liter, 
Lhash);
+      _add_a_file((gchar *) Lcur->data, GTK_TREE_STORE(Ltreemodel), &Liter, 
Lhash, Ldatasize);
 
     }
+printf("ici fin de tout va bien !!!!\n");      
     g_slist_free(Lfiles);
 
     if ((Lpath = gtk_tree_model_get_path(Ltreemodel, &Liter))) {
@@ -596,6 +601,10 @@
   }
   gtk_widget_destroy(Lfilesel);
 
+printf("switch !!!!\n");
+if (GTK_IS_WIDGET(Lcontenance)) {
+  printf("pre switch ok\n");
+}
   switch_pbar_status(Lcontenance, *Ldatamaxsize, *Ldatasize, PB_UPDATE_DATA);
 }
 
@@ -987,6 +996,7 @@
   GtkWidget *Lwindow1 = GTK_WIDGET(g_hash_table_lookup(Lhash, "topwindow"));
   GtkWidget *Ldevice;
   gboolean Lwritercdrw;
+  Ttypeoperation Loperation = WRITE_CD;
 
   Lname = gtk_widget_get_name(Abtn);
 
@@ -1010,12 +1020,16 @@
     Ltxt = _("Do you really want to create an audio cd ?");
     Ltitle = _("Writing audio cd in progress...");
     Ldevice = g_hash_table_lookup(Lhash, "dstaudiocombo");
-  } else if (g_str_has_prefix(Lname, "btnburndata")) {
+  } else if (g_str_has_prefix(Lname, "btnburndata") || g_str_has_prefix(Lname, 
"btnburndvddata")) {
     GtkTreeIter Liter;
-    GtkTreeModel *Ltreemodel = 
gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA")));
+    GtkTreeModel *Ltreemodel = 
gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list")));
     /* gravure cd de donnee, on verifie qu'il y ai au
      * moins un fichier/repertoire dans la liste */
 
+    if (g_str_has_prefix(Lname, "btnburndvddata")) {
+      Loperation = WRITE_DVD;
+    }
+    
     if (!gtk_tree_model_get_iter_first(Ltreemodel, &Liter) ||
         !gtk_tree_model_iter_has_child(Ltreemodel, &Liter)) {
 
@@ -1027,9 +1041,15 @@
       gtk_widget_destroy(Lconfirm);
       return;
     }
-    Ltxt = _("Do you really want to create a data cd ?");
-    Ltitle = _("Writing data cd in progress...");
-    Ldevice = g_hash_table_lookup(Lhash, "dstdatacombo");
+
+    if (Loperation == WRITE_CD) {
+      Ltxt = _("Do you really want to create a data cd ?");
+      Ltitle = _("Writing data cd in progress...");
+      Ldevice = g_hash_table_lookup(Lhash, "dstdatacombo");
+    } else {
+      Ltxt = _("Do you really want to create a data dvd ?");
+      Ltitle = _("Writing data dvd in progress...");
+    }
   } else {
     /* copie de cd */
     Ltxt = _("Do you really want to start the copy ?");
@@ -1038,21 +1058,31 @@
   }
  
   /* confirmation debut de l'operation */ 
-  /* on affiche l'option "effacer le CDRW que lorsque c'est un graveur qui le 
permet .. */
-  Lwritercdrw = DRIVE_CDRW_WRITER(get_drive_cmb(GTK_COMBO_BOX(Ldevice))) ? 
TRUE : FALSE;
-  Ldialoghash = create_dialog_confirm_operation(Lwindow1, Ltxt,
+
+  if (Loperation == WRITE_CD) {
+    /* on affiche l'option "effacer le CDRW que lorsque c'est un graveur qui 
le permet .. */
+    Lwritercdrw = DRIVE_CDRW_WRITER(get_drive_cmb(GTK_COMBO_BOX(Ldevice))) ? 
TRUE : FALSE;
+    Ldialoghash = create_dialog_confirm_operation(Lwindow1, Ltxt,
        Lwritercdrw == TRUE ? _("Blank CD-RW before writing") : NULL, 
conf_get_boolean("autoblank"));
+  } else {
+    /* confirmation gravure dvd */
+    Ldialoghash = create_dialog_select_dvdoperation(Lwindow1);
+  }
   Lconfirm = g_hash_table_lookup(Ldialoghash, "window");
 
   Lrep = gtk_dialog_run(GTK_DIALOG(Lconfirm));
 
   if (Lrep == GTK_RESPONSE_YES) {
     /* ok go ! */
-    GtkCheckButton *Labcheck = 
GTK_CHECK_BUTTON(g_hash_table_lookup(Ldialoghash, "checkbox"));
+    if (Loperation == WRITE_CD) {
+      GtkCheckButton *Labcheck = 
GTK_CHECK_BUTTON(g_hash_table_lookup(Ldialoghash, "checkbox"));
+
+      g_assert(GTK_IS_WIDGET(Labcheck));
+      if (Lwritercdrw == TRUE) {
+        Luseautoblank = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Labcheck));
+      }
+    } else {
 
-    g_assert(GTK_IS_WIDGET(Labcheck));
-    if (Lwritercdrw == TRUE) {
-      Luseautoblank = 
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(Labcheck));
     }
 
     gtk_widget_destroy(Lconfirm);
@@ -1118,6 +1148,8 @@
       const gchar *Lname = glade_get_widget_name(Aliste);
       if (!strcmp(Lname, "LISTEDATA")) {
         view_popupmenu_addfile(Aliste, Aevent, Adata);
+      } else if (!strcmp(Lname, "LISTEDVDDATA")) {
+        view_popupmenu_addfile(Aliste, Aevent, Adata);
       } else if (!strcmp(Lname, "LISTEAUDIO")) {
         view_popupmenu_addaudio(Aliste, Aevent, Adata);
       } else if (!strcmp(Lname, "periphdata")) {
@@ -1223,22 +1255,33 @@
 void switchpage(GtkNotebook *Anotebook, GtkNotebookPage *Anotebookpage, guint 
Apagenum, gpointer Adata)
 {
   GHashTable *Lhash = (GHashTable *)Adata;
-  GtkWidget *Ldatavoli = g_hash_table_lookup(Lhash, "datavoli");
-  GtkTreeModel *LTreeModel = 
gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA")));
+  GtkWidget *Ldatavoli;
+  GtkTreeModel *Ltreemodel;
   GtkTreeIter Liter;
   gchar *Lnom;
   
   if (Apagenum != 0 && Apagenum != 2) return;
+
+  if (!strcmp(glade_get_widget_name(GTK_WIDGET(Anotebook)), "bodydata")) {
+    Ldatavoli = g_hash_table_lookup(Lhash, "datavoli");
+    Ltreemodel = 
gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Lhash, "LISTEDATA")));
+  } else {
+    Ldatavoli = g_hash_table_lookup(Lhash, "dvddatavoli");
+    Ltreemodel = 
gtk_tree_view_get_model(GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"LISTEDVDDATA")));
+  }
+
+
+  
   /* il devrait normalement toujours y avoir une entree dans la liste, au 
moins le nom du cd ! */
-  if (!gtk_tree_model_get_iter_first(LTreeModel, &Liter)) return;
+  if (!gtk_tree_model_get_iter_first(Ltreemodel, &Liter)) return;
 
-  gtk_tree_model_get(LTreeModel, &Liter, 2, &Lnom, -1);
+  gtk_tree_model_get(Ltreemodel, &Liter, 2, &Lnom, -1);
   if (Apagenum == 2) {
     /* mise a jour du champ "Nom du volume" */
     gtk_entry_set_text(GTK_ENTRY(Ldatavoli), Lnom);
   } else if (Apagenum == 0) {
     /* mise a jour de l'entre contenant le nom du volume */
-    gtk_tree_store_set(GTK_TREE_STORE(LTreeModel), &Liter, 2, 
gtk_entry_get_text(GTK_ENTRY(Ldatavoli)), -1);
+    gtk_tree_store_set(GTK_TREE_STORE(Ltreemodel), &Liter, 2, 
gtk_entry_get_text(GTK_ENTRY(Ldatavoli)), -1);
   }
 
   g_free(Lnom);
@@ -1468,19 +1511,25 @@
   const gchar *Lname = glade_get_widget_name(Acombo);
   gchar *Lvalue = get_combo_value(Acombo);
   GtkProgressBar *Lcontenance;
-  guint32 *Lmaxlen;
-  guint32 *Llen;
+  guint64 *Lmaxlen;
+  guint64 *Llen;
 
-  if (!strcmp(Lname, "listeremplidata")) {
+  if (!strcmp(Lname, "listeremplidata")) {  /* cd data */
     Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "datasizebar"));
-    Lmaxlen = (guint32 *)g_hash_table_lookup(Lhash, "datamaxsize");
-    Llen = (guint32 *)g_hash_table_lookup(Lhash, "datasize");
-    (*Lmaxlen) = strtoul(Lvalue, NULL, 10) * 1024 * 1024;
-  } else {
+    Lmaxlen = (guint64 *)g_hash_table_lookup(Lhash, "datamaxsize");
+    Llen = (guint64 *)g_hash_table_lookup(Lhash, "datasize");
+    (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10) * 1024 * 1024;
+  } else if (!strcmp(Lname, "listeremplidvddata")) {  /* dvd data */
+    Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"dvddatasizebar"));
+    Lmaxlen = (guint64 *)g_hash_table_lookup(Lhash, "dvddatamaxsize");
+    Llen = (guint64 *)g_hash_table_lookup(Lhash, "dvddatasize");
+    (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10) * 1024 * 1024;
+    
+  } else {  /* cd audio */
     Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "audiolenbar"));
-    Lmaxlen = (guint32 *)g_hash_table_lookup(Lhash, "audiomaxlen");
-    Llen = (guint32 *)g_hash_table_lookup(Lhash, "audiolen");
-    (*Lmaxlen) = strtoul(Lvalue, NULL, 10);
+    Lmaxlen = (guint64 *)g_hash_table_lookup(Lhash, "audiomaxlen");
+    Llen = (guint64 *)g_hash_table_lookup(Lhash, "audiolen");
+    (*Lmaxlen) = (unsigned long long)strtoul(Lvalue, NULL, 10);
   }
 
   switch_pbar_status(Lcontenance, *Lmaxlen, *Llen, PB_NONE);
@@ -1491,8 +1540,8 @@
 {
   GHashTable *Lhash = (GHashTable *)Adata;
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Aliste));
-  guint32 *Laudiolen = (guint32 *)g_hash_table_lookup(Lhash, "audiolen");
-  guint32 *Laudiomaxlen = (guint32 *)g_hash_table_lookup(Lhash, "audiomaxlen");
+  guint64 *Laudiolen = (guint64 *)g_hash_table_lookup(Lhash, "audiolen");
+  guint64 *Laudiomaxlen = (guint64 *)g_hash_table_lookup(Lhash, "audiomaxlen");
   GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"audiolenbar"));
 
   if ((Aseldata->length >= 0) && (Aseldata->format == 8))
@@ -1551,11 +1600,13 @@
 void data_dnd_data_received (GtkWidget *Aliste, GdkDragContext *Acontext, gint 
Ax, gint Ay, GtkSelectionData *Aseldata, guint Ainfo, guint Atime, gpointer 
Adata)
 {
   GHashTable *Lhash = (GHashTable *)Adata;
-  guint32 *Ldatasize = (guint32 *)g_hash_table_lookup(Lhash, "datasize");
-  guint32 *Ldatamaxsize = (guint32 *)g_hash_table_lookup(Lhash, "datamaxsize");
-  GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"datasizebar"));
+  guint64 *Ldatasize; // = (guint64 *)g_hash_table_lookup(Lhash, "datasize");
+  guint64 *Ldatamaxsize; // = (guint64 *)g_hash_table_lookup(Lhash, 
"datamaxsize");
+  GtkProgressBar *Lcontenance; // = 
GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "datasizebar"));
   GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Aliste));
 
+  _REMPLISSAGE_VALUE(Lhash, Aliste, Ldatasize, Ldatamaxsize, Lcontenance);
+
   if ((Aseldata->length >= 0) && (Aseldata->format == 8))
   {
     gchar *Lunfic;
@@ -1582,7 +1633,7 @@
 
       Lfilename = g_filename_from_uri(Lunfic, NULL, NULL);
 
-      _add_a_file(Lfilename, GTK_TREE_STORE(Ltreemodel), &Liter, Lhash);
+      _add_a_file(Lfilename, GTK_TREE_STORE(Ltreemodel), &Liter, Lhash, 
Ldatasize);
       
       g_free(Lfilename);
     }
@@ -1720,38 +1771,32 @@
     gtk_list_store_clear(GTK_LIST_STORE(Ltreemodel));
     switch_pbar_status(Lcontenance, *Laudiomaxlen, *Laudiolen, 
PB_UPDATE_AUDIO);
 
-  } else if (!strcmp(Lname, "bodycddata")) {
+  } else if (!strcmp(Lname, "bodycddata") || !strcmp(Lname, "bodydvddata")) {
     /* on est sur l'onglet cd data, on vide la liste */
-    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"LISTEDATA"));
+    GtkTreeView *Lliste = GTK_TREE_VIEW(g_hash_table_lookup(Lhash, 
"_current_list"));
     GtkTreeModel *Ltreemodel = gtk_tree_view_get_model(GTK_TREE_VIEW(Lliste));
-    GtkProgressBar *Lcontenance = GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, 
"datasizebar"));
-    guint32 *Ldatasize = (guint32 *)g_hash_table_lookup(Lhash, "datasize");
-    guint32 *Ldatamaxsize = (guint32 *)g_hash_table_lookup(Lhash, 
"datamaxsize");
+    GtkProgressBar *Lcontenance; // = 
GTK_PROGRESS_BAR(g_hash_table_lookup(Lhash, "datasizebar"));
+    guint64 *Ldatasize; // = (guint32 *)g_hash_table_lookup(Lhash, "datasize");
+    guint64 *Ldatamaxsize; // = (guint32 *)g_hash_table_lookup(Lhash, 
"datamaxsize");
     GtkTreeIter Liter;
-#if 0    
-    = g_hash_table_lookup(Lhash, "file_imageboot");
-#endif
+  
+    _REMPLISSAGE_VALUE(Lhash, Lliste, Ldatasize, Ldatamaxsize, Lcontenance);
+
     (*Ldatasize) = 0;
 
     gtk_tree_store_clear(GTK_TREE_STORE(Ltreemodel));
     /* icone de base dans la liste des fichiers */
     gtk_tree_store_append(GTK_TREE_STORE(Ltreemodel), &Liter, NULL);
-    gtk_tree_store_set(GTK_TREE_STORE(Ltreemodel), &Liter, 0, TYPE_CD, 1, 
GCDpetiteIcone, 2, _("New CD"), 3, "", 4, "", 5, 0, -1);
-
-    
-    switch_pbar_status(Lcontenance, *Ldatamaxsize, *Ldatasize, 
PB_UPDATE_AUDIO);
-#if 0
-    if (Liter) {
-      gtk_tree_iter_free(Liter);
-      g_hash_table_steal(Lhash, "file_imageboot");
-    }
-#endif
+    gtk_tree_store_set(GTK_TREE_STORE(Ltreemodel), &Liter, 0, TYPE_CD, 1, 
GCDpetiteIcone, 2,
+        !strcmp(Lname, "bodycddata") ? _("New CD") : _("New DVD"), 3, "", 4, 
"", 5, 0, -1);
+    switch_pbar_status(Lcontenance, *Ldatamaxsize, *Ldatasize, PB_UPDATE_DATA);
   }
 
   g_free(Lname);
 }
 
 /* definir/enlever l'image de boot */
+#if 0
 void gtk_def_imageboot(GtkWidget *Abtn, gpointer Adata)
 {
   GHashTable *Lhash = (GHashTable *)Adata;
@@ -1772,6 +1817,7 @@
 
   g_hash_table_replace(Lhash, "file_imageboot", gtk_tree_iter_copy(&Lnewiter));
 }
+#endif
 
 /*
  * vim:et:ts=8:sts=2:sw=2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]