brasero r740 - in trunk: . src
- From: philippr svn gnome org
- To: svn-commits-list gnome org
- Subject: brasero r740 - in trunk: . src
- Date: Mon, 21 Apr 2008 12:36:08 +0100 (BST)
Author: philippr
Date: Mon Apr 21 11:36:08 2008
New Revision: 740
URL: http://svn.gnome.org/viewvc/brasero?rev=740&view=rev
Log:
Copy disc dialog:
Fixed appearance of destination medium (there was only file type before)
This patch should probably be backported to stable (with a few changes)
* src/brasero-dest-selection.c
(brasero_dest_selection_source_changed),
(brasero_dest_selection_init):
* src/brasero-disc-copy-dialog.c (brasero_disc_copy_dialog_init):
* src/brasero-drive-selection.c
(brasero_drive_selection_set_type_shown):
* src/brasero-medium-selection.c
(brasero_medium_selection_medium_added_cb):
* src/burn-drive.c (brasero_drive_can_write):
* src/burn-drive.h:
* src/burn-medium-monitor.c (brasero_medium_monitor_get_media):
* src/burn-medium-monitor.h:
Modified:
trunk/ChangeLog
trunk/src/brasero-dest-selection.c
trunk/src/brasero-disc-copy-dialog.c
trunk/src/brasero-drive-selection.c
trunk/src/brasero-medium-selection.c
trunk/src/burn-drive.c
trunk/src/burn-drive.h
trunk/src/burn-medium-monitor.c
trunk/src/burn-medium-monitor.h
Modified: trunk/src/brasero-dest-selection.c
==============================================================================
--- trunk/src/brasero-dest-selection.c (original)
+++ trunk/src/brasero-dest-selection.c Mon Apr 21 11:36:08 2008
@@ -1194,7 +1194,6 @@
if (brasero_burn_session_is_dest_file (priv->session)) {
/* check that if a path was set there may be none if there was
* no disc inserted when the dialog was created. */
-
if (brasero_burn_session_get_output (priv->session, NULL, NULL, NULL) != BRASERO_BURN_OK)
brasero_dest_selection_set_image_properties (self);
@@ -1361,7 +1360,9 @@
G_CALLBACK (brasero_dest_selection_copies_num_changed_cb),
object);
- /* only show media on which we can write and which are in a burner */
+ /* Only show media on which we can write and which are in a burner.
+ * There is one exception though, when we're copying media and when the
+ * burning device is the same as the dest device. */
brasero_drive_selection_set_type_shown (BRASERO_DRIVE_SELECTION (object),
BRASERO_MEDIA_TYPE_WRITABLE);
Modified: trunk/src/brasero-disc-copy-dialog.c
==============================================================================
--- trunk/src/brasero-disc-copy-dialog.c (original)
+++ trunk/src/brasero-disc-copy-dialog.c Mon Apr 21 11:36:08 2008
@@ -163,9 +163,11 @@
brasero_drive_selection_set_type_shown (BRASERO_DRIVE_SELECTION (priv->source),
BRASERO_MEDIA_TYPE_READABLE);
+ /* This is a special case. When we're copying, someone may want to read
+ * and burn to the same drive so provided that the drive is a burner
+ * then show its contents. */
brasero_drive_selection_set_type_shown (BRASERO_DRIVE_SELECTION (priv->selection),
- BRASERO_MEDIA_TYPE_WRITABLE|
- BRASERO_MEDIA_TYPE_REWRITABLE|
+ BRASERO_MEDIA_TYPE_ANY_IN_BURNER|
BRASERO_MEDIA_TYPE_FILE);
drive = brasero_drive_selection_get_drive (BRASERO_DRIVE_SELECTION (priv->selection));
Modified: trunk/src/brasero-drive-selection.c
==============================================================================
--- trunk/src/brasero-drive-selection.c (original)
+++ trunk/src/brasero-drive-selection.c Mon Apr 21 11:36:08 2008
@@ -236,9 +236,8 @@
BraseroDriveSelectionPrivate *priv;
priv = BRASERO_DRIVE_SELECTION_PRIVATE (self);
- brasero_medium_selection_show_type (BRASERO_MEDIUM_SELECTION (priv->selection), type);
- /* ncb sets sensitivity on its own so we need to reset it correctly */
+ brasero_medium_selection_show_type (BRASERO_MEDIUM_SELECTION (priv->selection), type);
if (priv->locked_drive)
gtk_widget_set_sensitive (priv->selection, FALSE);
}
Modified: trunk/src/brasero-medium-selection.c
==============================================================================
--- trunk/src/brasero-medium-selection.c (original)
+++ trunk/src/brasero-medium-selection.c Mon Apr 21 11:36:08 2008
@@ -228,11 +228,17 @@
const gchar *medium_icon;
gboolean add = FALSE;
GtkTreeModel *model;
+ BraseroDrive *drive;
gchar *medium_name;
GtkTreeIter iter;
priv = BRASERO_MEDIUM_SELECTION_PRIVATE (self);
+ drive = brasero_medium_get_drive (medium);
+ if ((priv->type & BRASERO_MEDIA_TYPE_ANY_IN_BURNER)
+ && (brasero_drive_can_write (drive)))
+ add = TRUE;
+
if ((priv->type & BRASERO_MEDIA_TYPE_READABLE)
&& (brasero_medium_get_status (medium) & (BRASERO_MEDIUM_HAS_AUDIO|BRASERO_MEDIUM_HAS_DATA)))
add = TRUE;
Modified: trunk/src/burn-drive.c
==============================================================================
--- trunk/src/burn-drive.c (original)
+++ trunk/src/burn-drive.c Mon Apr 21 11:36:08 2008
@@ -341,6 +341,22 @@
return priv->caps;
}
+gboolean
+brasero_drive_can_write (BraseroDrive *self)
+{
+ BraseroDrivePrivate *priv;
+
+ priv = BRASERO_DRIVE_PRIVATE (self);
+ return (priv->caps & (BRASERO_DRIVE_CAPS_CDR|
+ BRASERO_DRIVE_CAPS_DVDR|
+ BRASERO_DRIVE_CAPS_DVDR_PLUS|
+ BRASERO_DRIVE_CAPS_CDRW|
+ BRASERO_DRIVE_CAPS_DVDRW|
+ BRASERO_DRIVE_CAPS_DVDRW_PLUS|
+ BRASERO_DRIVE_CAPS_DVDR_PLUS_DL|
+ BRASERO_DRIVE_CAPS_DVDRW_PLUS_DL));
+}
+
static void
brasero_drive_init (BraseroDrive *object)
{ }
Modified: trunk/src/burn-drive.h
==============================================================================
--- trunk/src/burn-drive.h (original)
+++ trunk/src/burn-drive.h Mon Apr 21 11:36:08 2008
@@ -101,6 +101,9 @@
brasero_drive_get_caps (BraseroDrive *drive);
gboolean
+brasero_drive_can_write (BraseroDrive *drive);
+
+gboolean
brasero_drive_is_door_open (BraseroDrive *drive);
gboolean
Modified: trunk/src/burn-medium-monitor.c
==============================================================================
--- trunk/src/burn-medium-monitor.c (original)
+++ trunk/src/burn-medium-monitor.c Mon Apr 21 11:36:08 2008
@@ -82,8 +82,18 @@
for (iter = priv->media; iter; iter = iter->next) {
BraseroMedium *medium;
+ BraseroDrive *drive;
medium = iter->data;
+ drive = brasero_medium_get_drive (medium);
+
+ if ((type & BRASERO_MEDIA_TYPE_ANY_IN_BURNER)
+ && (brasero_drive_can_write (drive))) {
+ list = g_slist_prepend (list, medium);
+ g_object_ref (medium);
+ continue;
+ }
+
if ((type & BRASERO_MEDIA_TYPE_READABLE)
&& !(brasero_medium_get_status (medium) & BRASERO_MEDIUM_FILE)
&& (brasero_medium_get_status (medium) & (BRASERO_MEDIUM_HAS_AUDIO|BRASERO_MEDIUM_HAS_DATA))) {
Modified: trunk/src/burn-medium-monitor.h
==============================================================================
--- trunk/src/burn-medium-monitor.h (original)
+++ trunk/src/burn-medium-monitor.h Mon Apr 21 11:36:08 2008
@@ -61,6 +61,7 @@
BRASERO_MEDIA_TYPE_READABLE = 1 << 1,
BRASERO_MEDIA_TYPE_WRITABLE = 1 << 2,
BRASERO_MEDIA_TYPE_REWRITABLE = 1 << 3,
+ BRASERO_MEDIA_TYPE_ANY_IN_BURNER = 1 << 4,
BRASERO_MEDIA_TYPE_ALL = 0xFF
} BraseroMediaType;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]