--- shell/rb-removable-media-manager.c	10 Aug 2006 05:35:08 -0000	1.31
+++ shell/rb-removable-media-manager.c	15 Aug 2006 06:29:40 -0000
@@ -79,6 +79,8 @@
 					       RBRemovableMediaManager *mgr);
 static void rb_removable_media_manager_set_uimanager (RBRemovableMediaManager *mgr,
 					     GtkUIManager *uimanager);
+static void rb_removable_media_manager_cmd_reload_audiocd_metadata (GtkAction *action,
+						RBRemovableMediaManager *mgr);
 
 static void rb_removable_media_manager_append_media_source (RBRemovableMediaManager *mgr, RBRemovableMediaSource *source);
 
@@ -162,6 +164,9 @@
 	{ "MusicScanMedia", NULL, N_("_Scan Removable Media"), NULL,
 	  N_("Scan for new Removable Media"),
 	  G_CALLBACK (rb_removable_media_manager_cmd_scan_media) },
+	{ "AudioCdSourceReloadMetadata", NULL, N_("Reload"), NULL,
+	  N_("Reload Metadata"),
+	  G_CALLBACK (rb_removable_media_manager_cmd_reload_audiocd_metadata) },
 };
 static guint rb_removable_media_manager_n_actions = G_N_ELEMENTS (rb_removable_media_manager_actions);
 
@@ -1045,4 +1050,21 @@
 	g_object_unref (model);
 	g_object_unref (library);
 #endif
+}
+
+static void
+rb_removable_media_manager_cmd_reload_audiocd_metadata (GtkAction *action, RBRemovableMediaManager *mgr)
+{
+	RBRemovableMediaManagerPrivate *priv = REMOVABLE_MEDIA_MANAGER_GET_PRIVATE (mgr);
+	RBAudioCdSource *source;
+	RhythmDB *db;
+	g_object_get (G_OBJECT (priv->shell), 
+		      "selected-source", &source,
+			  "db", &db,
+			  NULL);
+	rb_audiocd_load_metadata (source, db);
+	
+	g_object_unref (source);
+	g_object_unref (db);
+	
 }
--- data/ui/rhythmbox-ui.xml	10 Jul 2006 02:00:33 -0000	1.63
+++ data/ui/rhythmbox-ui.xml	15 Aug 2006 05:20:38 -0000
@@ -225,6 +225,7 @@
   </popup>
 
   <popup name="AudioCdSourcePopup">
+    <menuitem name="AudioCdSourcePopupReloadMetadata" action="AudioCdSourceReloadMetadata"/>
     <menuitem name="AudioCdSourcePopupCopyAllTracks" action="RemovableSourceCopyAllTracks"/>
     <menuitem name="AudioCdSourcePopupEjectCd" action="RemovableSourceEject"/>
   </popup>
--- sources/rb-audiocd-source.c	18 Jul 2006 04:56:25 -0000	1.44
+++ sources/rb-audiocd-source.c	15 Aug 2006 06:29:40 -0000
@@ -57,7 +57,6 @@
 static GList* impl_get_ui_actions (RBSource *source);
 
 static gpointer rb_audiocd_load_songs (RBAudioCdSource *source);
-static void rb_audiocd_load_metadata (RBAudioCdSource *source, RhythmDB *db);
 static void rb_audiocd_load_metadata_cancel (RBAudioCdSource *source);
 
 typedef struct
@@ -495,7 +494,7 @@
 }
 #endif
 
-static void
+void
 rb_audiocd_load_metadata (RBAudioCdSource *source,
 			  RhythmDB *db)
 {
@@ -638,6 +637,8 @@
 	actions = g_list_prepend (actions, g_strdup ("RemovableSourceCopyAllTracks"));
 #endif
 	actions = g_list_prepend (actions, g_strdup ("RemovableSourceEject"));
+	
+	actions = g_list_prepend (actions, g_strdup ("AudioCdSourceReloadMetadata"));
 
 	return actions;
 }
--- sources/rb-audiocd-source.h	20 Apr 2006 20:43:30 -0000	1.7
+++ sources/rb-audiocd-source.h	15 Aug 2006 06:29:40 -0000
@@ -50,6 +50,8 @@
 
 gboolean		rb_audiocd_is_volume_audiocd		(GnomeVFSVolume *volume);
 
+void rb_audiocd_load_metadata (RBAudioCdSource *source, RhythmDB *db);
+
 G_END_DECLS
 
 #endif /* __RB_AUDIOCD_SOURCE_H */
