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

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


Author: squisher
Date: 2008-04-24 15:17:02 +0000 (Thu, 24 Apr 2008)
New Revision: 4669

Modified:
   xfburn/trunk/xfburn/xfburn-device-box.c
   xfburn/trunk/xfburn/xfburn-device-list.c
   xfburn/trunk/xfburn/xfburn-preferences-dialog.c
Log:
Adding setting and functionality to hide empty speed list dialog

Modified: xfburn/trunk/xfburn/xfburn-device-box.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-device-box.c	2008-04-24 12:37:50 UTC (rev 4668)
+++ xfburn/trunk/xfburn/xfburn-device-box.c	2008-04-24 15:17:02 UTC (rev 4669)
@@ -23,6 +23,7 @@
 
 #include <gtk/gtk.h>
 #include <libxfce4util/libxfce4util.h>
+#include <libxfcegui4/libxfcegui4.h>
 
 #ifdef HAVE_THUNAR_VFS
 #include <thunar-vfs/thunar-vfs.h>
@@ -31,6 +32,7 @@
 #include "xfburn-device-list.h"
 #include "xfburn-device-box.h"
 #include "xfburn-hal-manager.h"
+#include "xfburn-settings.h"
 
 #define XFBURN_DEVICE_BOX_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), XFBURN_TYPE_DEVICE_BOX, XfburnDeviceBoxPrivate))
 
@@ -391,6 +393,49 @@
 }
 
 static void
+empty_speed_list_dialog ()
+{
+  GtkDialog *dialog;
+  GtkWidget *label;
+  GtkWidget *check_show_notice;
+
+  if (!xfburn_settings_get_boolean ("show-empty-speed-list-notice", TRUE))
+    return;
+
+  dialog = (GtkDialog *) gtk_dialog_new_with_buttons (_("Empty speed list"),
+                                  NULL,
+                                  GTK_DIALOG_DESTROY_WITH_PARENT,
+                                  GTK_STOCK_CLOSE,
+                                  GTK_RESPONSE_CLOSE,
+                                  NULL);
+
+  label = gtk_label_new ( _("Unable to retrieve the speed list for the drive. This is a known bug, which occurs with some drives. Please report it to xfburn at xfce.org together with the console output to increase the chances that it will get fixed.\nBurning should still work, but if there are problems anyways, please let us know.\nThank you!")
+                        );
+  gtk_label_set_width_chars (GTK_LABEL (label), 30);
+  gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+  gtk_container_add (GTK_CONTAINER (dialog->vbox), label);
+  gtk_widget_show (label);
+
+
+  check_show_notice = gtk_check_button_new_with_mnemonic (_("Continue to _show this notice"));
+  //gtk_box_pack_start (GTK_BOX (vbox2), priv->check_empty_speed_list, FALSE, FALSE, BORDER);
+  gtk_container_add (GTK_CONTAINER (dialog->vbox), check_show_notice);
+  gtk_widget_show (check_show_notice);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_show_notice), TRUE);
+
+  switch (gtk_dialog_run (GTK_DIALOG (dialog))) {
+    case GTK_RESPONSE_CLOSE:
+      xfburn_settings_set_boolean ("show-empty-speed-list-notice", 
+                                   gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check_show_notice)));
+      break;
+    default:
+      /* do nothing */
+      break;
+  }
+  gtk_widget_destroy (GTK_WIDGET (dialog));
+}
+
+static void
 fill_combo_speed (XfburnDeviceBox *box, XfburnDevice *device)
 {
   XfburnDeviceBoxPrivate *priv = XFBURN_DEVICE_BOX_GET_PRIVATE (box);
@@ -402,6 +447,12 @@
   if (!check_disc_validity (priv))
     return;
 
+  if (el == NULL) {
+    /* a valid disc is in the drive, but no speed list is present */
+    empty_speed_list_dialog ();
+    return;
+  }
+
   while (el) {
     gint speed = GPOINTER_TO_INT (el->data);
     GtkTreeIter iter;

Modified: xfburn/trunk/xfburn/xfburn-device-list.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-device-list.c	2008-04-24 12:37:50 UTC (rev 4668)
+++ xfburn/trunk/xfburn/xfburn-device-list.c	2008-04-24 15:17:02 UTC (rev 4669)
@@ -27,7 +27,6 @@
 
 #include <glib.h>
 #include <libxfce4util/libxfce4util.h>
-#include <libxfcegui4/libxfcegui4.h>
 
 #include <stdlib.h>
 #include <unistd.h>
@@ -115,6 +114,7 @@
   /* fill new list */
   ret = burn_drive_get_speedlist (drive_info->drive, &speed_list);
   /* speed_list = NULL; DEBUG */ 
+  speed_list = NULL; //DEBUG
 
   if (ret > 0 && speed_list != NULL) {
     struct burn_speed_descriptor *el = speed_list;
@@ -150,7 +150,6 @@
   } else if (ret == 0 || speed_list == NULL) {
     g_warning ("reported speed list is empty for device:");
     g_warning (DEVICE_INFO_PRINTF);
-    xfce_err (_("Unable to retrieve the speed list for the drive. This is a bug, please report it to xfburn at xfce.org together with the console output.\nBurning should still work, but if there were problems anyways, please let us know.\nThank you!"));
   } else {
     g_error ("severe error while retrieving speed list");
   }

Modified: xfburn/trunk/xfburn/xfburn-preferences-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-preferences-dialog.c	2008-04-24 12:37:50 UTC (rev 4668)
+++ xfburn/trunk/xfburn/xfburn-preferences-dialog.c	2008-04-24 15:17:02 UTC (rev 4669)
@@ -43,6 +43,7 @@
 
   GtkWidget *treeview_devices;
   GtkWidget *button_scan;
+  GtkWidget *check_empty_speed_list;
 } XfburnPreferencesDialogPrivate;
 
 /* prototypes */
@@ -308,6 +309,13 @@
     g_object_unref (G_OBJECT (icon));
   
   exo_mutual_binding_new (G_OBJECT (priv->notebook), "page", G_OBJECT (priv->icon_bar), "active");
+
+
+  /* below the device list */
+  priv->check_empty_speed_list = gtk_check_button_new_with_mnemonic (_("Show _empty speed list bug warning"));
+  gtk_box_pack_start (GTK_BOX (vbox2), priv->check_empty_speed_list, FALSE, FALSE, BORDER);
+  gtk_widget_show (priv->check_empty_speed_list);
+
   
   /* action buttons */
   button_close = gtk_button_new_from_stock ("gtk-close");
@@ -342,6 +350,8 @@
                                 xfburn_settings_get_boolean ("show-hidden-files", FALSE));
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->check_show_human_readable),
                                 xfburn_settings_get_boolean ("human-readable-units", TRUE));
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->check_empty_speed_list),
+                                xfburn_settings_get_boolean ("show-empty-speed-list-notice", TRUE));
 }
 
 static void
@@ -360,6 +370,8 @@
                                gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->check_show_hidden)));
   xfburn_settings_set_boolean ("human-readable-units", 
                                gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->check_show_human_readable)));
+  xfburn_settings_set_boolean ("show-empty-speed-list-notice", 
+                               gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->check_empty_speed_list)));
 }
 
 static void




More information about the Goodies-commits mailing list