[Goodies-commits] r4597 - xfburn/trunk/xfburn

David Mohr squisher at xfce.org
Thu Apr 17 02:05:50 CEST 2008


Author: squisher
Date: 2008-04-17 00:05:50 +0000 (Thu, 17 Apr 2008)
New Revision: 4597

Modified:
   xfburn/trunk/xfburn/xfburn-data-disc-usage.c
Log:
Adding automatic switching between data disc types / sizes

Modified: xfburn/trunk/xfburn/xfburn-data-disc-usage.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-data-disc-usage.c	2008-04-16 18:21:20 UTC (rev 4596)
+++ xfburn/trunk/xfburn/xfburn-data-disc-usage.c	2008-04-17 00:05:50 UTC (rev 4597)
@@ -44,6 +44,7 @@
 
 #define DEFAULT_DISK_SIZE_LABEL 2
 #define LAST_CD_LABEL 4
+#define NUM_LABELS 7
 
 struct
 {
@@ -147,10 +148,11 @@
 
 /* internals */
 static void
-xfburn_data_disc_usage_update_size (XfburnDataDiscUsage * disc_usage)
+xfburn_data_disc_usage_update_size (XfburnDataDiscUsage * disc_usage, gboolean manual)
 {
   gfloat fraction;
   gchar *size;
+  int i;
 
   fraction = disc_usage->size / datadisksizes[gtk_combo_box_get_active (GTK_COMBO_BOX (disc_usage->combo))].size;
   if (fraction > 1.0)
@@ -167,6 +169,14 @@
 
   gtk_progress_bar_set_text (GTK_PROGRESS_BAR (disc_usage->progress_bar), size);
 
+  if (!manual) {
+    i = 0;
+    while (i < NUM_LABELS  &&  disc_usage->size > datadisksizes[i].size) {
+      i++;
+    }
+    gtk_combo_box_set_active (GTK_COMBO_BOX (disc_usage->combo), (i<NUM_LABELS ? i: i-1));
+  }
+
   if (disc_usage->size == 0 || 
       disc_usage->size > datadisksizes[gtk_combo_box_get_active (GTK_COMBO_BOX (disc_usage->combo))].size)
     gtk_widget_set_sensitive (disc_usage->button, FALSE);
@@ -190,7 +200,7 @@
 static void
 cb_combo_changed (GtkComboBox * combo, XfburnDataDiscUsage * usage)
 {
-  xfburn_data_disc_usage_update_size (usage);
+  xfburn_data_disc_usage_update_size (usage, TRUE);
 }
 
 /* public methods */
@@ -204,21 +214,21 @@
 xfburn_data_disc_usage_set_size (XfburnDataDiscUsage * disc_usage, gdouble size)
 {
   disc_usage->size = size;
-  xfburn_data_disc_usage_update_size (disc_usage);
+  xfburn_data_disc_usage_update_size (disc_usage, FALSE);
 }
 
 void
 xfburn_data_disc_usage_add_size (XfburnDataDiscUsage * disc_usage, gdouble size)
 {
   disc_usage->size = disc_usage->size + size;
-  xfburn_data_disc_usage_update_size (disc_usage);
+  xfburn_data_disc_usage_update_size (disc_usage, FALSE);
 }
 
 void
 xfburn_data_disc_usage_sub_size (XfburnDataDiscUsage * disc_usage, gdouble size)
 {
   disc_usage->size = disc_usage->size - size;
-  xfburn_data_disc_usage_update_size (disc_usage);
+  xfburn_data_disc_usage_update_size (disc_usage, FALSE);
 }
 
 XfburnDataDiscType




More information about the Goodies-commits mailing list