brasero r1019 - in trunk: . src



Author: philippr
Date: Fri Jul 18 14:00:11 2008
New Revision: 1019
URL: http://svn.gnome.org/viewvc/brasero?rev=1019&view=rev

Log:
	Improved previous patch by Lin Ma so that dialogs derived from
	BRASERO_TYPE_TOOL_DIALOG can choose the type of media they
	want to display.
	That way:
	- check dialog only shows readable media (with data that can be read, whether ROM, +, R, RW, ....)
	- eject dialog show all media inserted
	- blank dialog shows all rewritable media

	* src/brasero-blank-dialog.c (brasero_blank_dialog_drive_changed),
	(brasero_blank_dialog_init):
	* src/brasero-eject-dialog.c (brasero_eject_dialog_init):
	* src/brasero-sum-dialog.c (brasero_sum_dialog_init):
	* src/brasero-tool-dialog.c
	(brasero_tool_dialog_set_medium_type_shown):
	* src/brasero-tool-dialog.h:
	* src/burn-medium-monitor.c (brasero_medium_monitor_get_media):
	* src/burn-medium-monitor.h:

Modified:
   trunk/ChangeLog
   trunk/src/brasero-blank-dialog.c
   trunk/src/brasero-eject-dialog.c
   trunk/src/brasero-sum-dialog.c
   trunk/src/brasero-tool-dialog.c
   trunk/src/brasero-tool-dialog.h
   trunk/src/burn-medium-monitor.c
   trunk/src/burn-medium-monitor.h

Modified: trunk/src/brasero-blank-dialog.c
==============================================================================
--- trunk/src/brasero-blank-dialog.c	(original)
+++ trunk/src/brasero-blank-dialog.c	Fri Jul 18 14:00:11 2008
@@ -184,7 +184,10 @@
 	else
 		drive = NULL;
 
-	brasero_burn_session_set_burner (priv->session, drive);
+	/* it can happen that the drive changed while initializing and that
+	 * session hasn't been created yet. */
+	if (priv->session)
+		brasero_burn_session_set_burner (priv->session, drive);
 }
 
 static gboolean
@@ -365,6 +368,10 @@
 					NULL,
 					"media-optical-blank");
 
+	/* only media that can be rewritten with or without data */
+	brasero_tool_dialog_set_medium_type_shown (BRASERO_TOOL_DIALOG (obj),
+						   BRASERO_MEDIA_TYPE_REWRITABLE);
+
 	medium = brasero_tool_dialog_get_medium (BRASERO_TOOL_DIALOG (obj));
 	drive = brasero_medium_get_drive (medium);
 

Modified: trunk/src/brasero-eject-dialog.c
==============================================================================
--- trunk/src/brasero-eject-dialog.c	(original)
+++ trunk/src/brasero-eject-dialog.c	Fri Jul 18 14:00:11 2008
@@ -134,6 +134,10 @@
 					NULL,
 					"media-eject");
 
+	/* all kinds of media */
+	brasero_tool_dialog_set_medium_type_shown (BRASERO_TOOL_DIALOG (obj),
+						   BRASERO_MEDIA_TYPE_ALL_BUT_FILE);
+
 	medium = brasero_tool_dialog_get_medium (BRASERO_TOOL_DIALOG (obj));
 	if (medium) {
 		brasero_tool_dialog_set_valid (BRASERO_TOOL_DIALOG (obj), BRASERO_MEDIUM_VALID (brasero_medium_get_status (medium)));

Modified: trunk/src/brasero-sum-dialog.c
==============================================================================
--- trunk/src/brasero-sum-dialog.c	(original)
+++ trunk/src/brasero-sum-dialog.c	Fri Jul 18 14:00:11 2008
@@ -752,6 +752,10 @@
 					GTK_STOCK_FIND,
 					NULL);
 
+	/* only media with data, no blank medium */
+	brasero_tool_dialog_set_medium_type_shown (BRASERO_TOOL_DIALOG (obj),
+						   BRASERO_MEDIA_TYPE_READABLE);
+
 	medium = brasero_tool_dialog_get_medium (BRASERO_TOOL_DIALOG (obj));
 	if (medium) {
 		brasero_tool_dialog_set_valid (BRASERO_TOOL_DIALOG (obj), BRASERO_MEDIUM_VALID (brasero_medium_get_status (medium)));

Modified: trunk/src/brasero-tool-dialog.c
==============================================================================
--- trunk/src/brasero-tool-dialog.c	(original)
+++ trunk/src/brasero-tool-dialog.c	Fri Jul 18 14:00:11 2008
@@ -335,6 +335,14 @@
 	gtk_widget_set_sensitive (self->priv->button, valid);
 }
 
+void
+brasero_tool_dialog_set_medium_type_shown (BraseroToolDialog *self,
+					   BraseroMediaType media_type)
+{
+	brasero_drive_selection_set_type_shown (BRASERO_DRIVE_SELECTION (self->priv->selector),
+						media_type);
+}
+
 BraseroMedium *
 brasero_tool_dialog_get_medium (BraseroToolDialog *self)
 {

Modified: trunk/src/brasero-tool-dialog.h
==============================================================================
--- trunk/src/brasero-tool-dialog.h	(original)
+++ trunk/src/brasero-tool-dialog.h	Fri Jul 18 14:00:11 2008
@@ -37,6 +37,7 @@
 #include "burn.h"
 #include "burn-medium.h"
 #include "burn-session.h"
+#include "burn-medium-monitor.h"
 
 G_BEGIN_DECLS
 
@@ -79,16 +80,18 @@
 void
 brasero_tool_dialog_set_valid (BraseroToolDialog *dialog,
 			       gboolean valid);
-
 void
-brasero_tool_dialog_set_progress (BraseroToolDialog *self,
+brasero_tool_dialog_set_medium_type_shown (BraseroToolDialog *dialog,
+					   BraseroMediaType media_type);
+void
+brasero_tool_dialog_set_progress (BraseroToolDialog *dialog,
 				  gdouble overall_progress,
 				  gdouble task_progress,
 				  glong remaining,
 				  gint size_mb,
 				  gint written_mb);
 void
-brasero_tool_dialog_set_action (BraseroToolDialog *self,
+brasero_tool_dialog_set_action (BraseroToolDialog *dialog,
 				BraseroBurnAction action,
 				const gchar *string);
 

Modified: trunk/src/burn-medium-monitor.c
==============================================================================
--- trunk/src/burn-medium-monitor.c	(original)
+++ trunk/src/burn-medium-monitor.c	Fri Jul 18 14:00:11 2008
@@ -92,6 +92,13 @@
 		medium = iter->data;
 		drive = brasero_medium_get_drive (medium);
 
+		if ((type & BRASERO_MEDIA_TYPE_ALL_BUT_FILE)
+		&& !(brasero_medium_get_status (medium) & BRASERO_MEDIUM_FILE)) {
+			list = g_slist_prepend (list, medium);
+			g_object_ref (medium);
+			continue;
+		}
+
 		if ((type & BRASERO_MEDIA_TYPE_ANY_IN_BURNER)
 		&&  (brasero_drive_can_write (drive))) {
 			list = g_slist_prepend (list, medium);

Modified: trunk/src/burn-medium-monitor.h
==============================================================================
--- trunk/src/burn-medium-monitor.h	(original)
+++ trunk/src/burn-medium-monitor.h	Fri Jul 18 14:00:11 2008
@@ -60,6 +60,7 @@
 	BRASERO_MEDIA_TYPE_WRITABLE			= 1 << 2,
 	BRASERO_MEDIA_TYPE_REWRITABLE			= 1 << 3,
 	BRASERO_MEDIA_TYPE_ANY_IN_BURNER		= 1 << 4,
+	BRASERO_MEDIA_TYPE_ALL_BUT_FILE			= 0xFE,
 	BRASERO_MEDIA_TYPE_ALL				= 0xFF
 } BraseroMediaType;
 



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