I'd been wondering for a while whether I could disable the CD-burning support in Rhythmbox entirely, as I never use it (my system doesn't even have a burner). As it turns out I couldn't, so I've written a patch to support this. Default behaviour is as current, but with the --disable-nautilus-burn flag given to configure, CD burning is switched off entirely. As well as the patch enclosed here, you'll also need the rhythmbox-ui.xml.in and sifter.pl (used to generate rhythmbox-ui.xml from the .in with or without burner menu/popup options).

WFM, applies against current CVS Head. Hopefully of some interest to other people.

Tom Parker
--
[EMAIL PROTECTED] - http://tevp.net
Illegitimus non carborundum
Index: Makefile.am
===================================================================
RCS file: /cvs/gnome/rhythmbox/Makefile.am,v
retrieving revision 1.51
diff -u -p -r1.51 Makefile.am
--- Makefile.am 12 May 2006 16:04:44 -0000      1.51
+++ Makefile.am 8 Jun 2006 13:19:21 -0000
@@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = 1.7
 DISTCHECK_CONFIGURE_FLAGS = --disable-schemas-install --enable-gtk-doc 
--disable-scrollkeeper
 distuninstallcheck_listfiles = find . -type f -print | grep -v 
'^\./var/scrollkeeper'
 
-SUBDIRS = macros lib metadata player rhythmdb widgets sources iradio podcast \
+SUBDIRS = macros lib metadata $(PLAYER_MODULE) rhythmdb widgets sources iradio 
podcast \
        daapsharing backends plugins bindings shell data po help tests doc
 
 EXTRA_DIST =                   \
Index: configure.ac
===================================================================
RCS file: /cvs/gnome/rhythmbox/configure.ac,v
retrieving revision 1.245
diff -u -p -r1.245 configure.ac
--- configure.ac        8 Jun 2006 06:31:10 -0000       1.245
+++ configure.ac        8 Jun 2006 13:19:22 -0000
@@ -559,22 +559,34 @@ AM_CONDITIONAL(HAVE_LINUX_CDROM, test "x
 
 NCB_DRIVE_DOOR_VERSION=2.11.3
 dnl CD burner support
-PKG_CHECK_MODULES(LIBNAUTILUS_BURN, [libnautilus-burn >= $NCB_MIN_REQS], 
have_cd_burner=yes, have_cd_burner=no)
-if test "x$have_cd_burner" = xno; then
-   AC_MSG_ERROR([libnautilus-burn not found or too cold])         
-fi
-AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_door_is_open,
-    [AC_DEFINE([HAVE_BURN_DRIVE_DOOR], 1, [Have nautilus-burn function to 
check drive door state])],
-    ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
-AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_unref,
-    [AC_DEFINE([HAVE_BURN_DRIVE_UNREF], 1, [Have nautilus-burn 2.13 drive 
unref function])],
-    ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
-AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_new_from_path,
-    [AC_DEFINE([HAVE_BURN_DRIVE_NEW_FROM_PATH], 1, [Have nautilus-burn 2.13 
drive new_from_path function])],
-    ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
-AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_get_write_speeds,
-    [AC_DEFINE([HAVE_BURN_DRIVE_GET_WRITE_SPEEDS], 1, [Have nautilus-burn 2.13 
drive get_write_speeds])],
-    ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
+AC_ARG_ENABLE(nautilus-burn,
+             AC_HELP_STRING([--disable-nautilus-burn],
+                            [Disable cd burner support in rhythmbox]))
+if test x"$enable_nautilus_burn" != xno; then
+       PKG_CHECK_MODULES(LIBNAUTILUS_BURN, [libnautilus-burn >= 
$NCB_MIN_REQS], have_cd_burner=yes, have_cd_burner=no)
+       if test "x$have_cd_burner" = xyes; then
+               AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_door_is_open,
+                       [AC_DEFINE([HAVE_BURN_DRIVE_DOOR], 1, [Have 
nautilus-burn function to check drive door state])],
+                       ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
+               AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_unref,
+                       [AC_DEFINE([HAVE_BURN_DRIVE_UNREF], 1, [Have 
nautilus-burn 2.13 drive unref function])],
+                       ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
+               AC_CHECK_LIB(nautilus-burn, nautilus_burn_drive_new_from_path,
+                       [AC_DEFINE([HAVE_BURN_DRIVE_NEW_FROM_PATH], 1, [Have 
nautilus-burn 2.13 drive new_from_path function])],
+                       ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
+               AC_CHECK_LIB(nautilus-burn, 
nautilus_burn_drive_get_write_speeds,
+                       [AC_DEFINE([HAVE_BURN_DRIVE_GET_WRITE_SPEEDS], 1, [Have 
nautilus-burn 2.13 drive get_write_speeds])],
+                       ,[$LIBNAUTILUS_BURN_LIBS $LIBNAUTILUS_BURN_CFLAGS])
+               AC_DEFINE(HAVE_NAUTILUS_BURN, 1, [defined if you have 
nautilus-burn])
+               PLAYER_MODULE=player
+       else    
+               AC_MSG_ERROR([libnautilus-burn not found or too cold])     
+       fi
+else
+       PLAYER_MODULE=
+fi     
+AC_SUBST(PLAYER_MODULE)
+AM_CONDITIONAL(HAVE_NAUTILUS_BURN, test "x$enable_nautilus_burn" != "xno")
 
 AC_SUBST(CFLAGS)
 AC_SUBST(LDFLAGS)

@@ -944,7 +955,11 @@ fi
 if test x"${with_rhythmdb_debug}" != x0; then
        AC_MSG_NOTICE([** RhythmDB sanity checking enabled (may be slow!)])
 fi
-
+if test x"$enable_nautilus_burn" = xyes; then
+        AC_MSG_NOTICE([** CD burning is enabled])
+else
+       AC_MSG_NOTICE([   CD burning is disabled])
+fi
 
 if test x"$enable_tag_writing" = xyes; then
         AC_MSG_NOTICE([** Tag writing is enabled - USE AT YOUR OWN RISK])
Index: data/ui/Makefile.am
===================================================================
RCS file: /cvs/gnome/rhythmbox/data/ui/Makefile.am,v
retrieving revision 1.17
diff -u -p -r1.17 Makefile.am
--- data/ui/Makefile.am 25 May 2006 07:20:46 -0000      1.17
+++ data/ui/Makefile.am 8 Jun 2006 13:19:22 -0000
@@ -3,5 +3,9 @@
 uixmldir = $(pkgdatadir)
 uixml_DATA = rhythmbox-ui.xml ipod-ui.xml daap-ui.xml generic-player-ui.xml
 
-EXTRA_DIST = rhythmbox-ui.xml ipod-ui.xml daap-ui.xml generic-player-ui.xml
+EXTRA_DIST = rhythmbox-ui.xml.in ipod-ui.xml daap-ui.xml generic-player-ui.xml
 
+export
+
+rhythmbox-ui.xml: rhythmbox-ui.xml.in Makefile sifter.pl
+       ./sifter.pl $< $@
Index: player/rb-recorder-gst.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/player/rb-recorder-gst.c,v
retrieving revision 1.26
diff -u -p -r1.26 rb-recorder-gst.c
--- player/rb-recorder-gst.c    2 Jun 2006 05:58:18 -0000       1.26
+++ player/rb-recorder-gst.c    8 Jun 2006 13:19:22 -0000
@@ -100,7 +100,8 @@ struct _RBRecorderPrivate {
         double      progress;
         GList      *tracks;
 
+#ifdef HAVE_NAUTILUS_BURN
         NautilusBurnDrive    *drive;
         NautilusBurnRecorder *recorder;
 
         gboolean    playing;

Index: shell/Makefile.am
===================================================================
RCS file: /cvs/gnome/rhythmbox/shell/Makefile.am,v
retrieving revision 1.83
diff -u -p -r1.83 Makefile.am
--- shell/Makefile.am   14 May 2006 00:00:55 -0000      1.83
+++ shell/Makefile.am   8 Jun 2006 13:19:22 -0000
@@ -100,13 +100,16 @@ rhythmbox_LDADD =                                 \
        $(top_builddir)/sources/libsourcesimpl.la       \
        $(top_builddir)/iradio/librbiradio.la           \
        $(top_builddir)/podcast/librbpodcast.la         \
-       $(top_builddir)/player/librbplayer.la           \
        $(top_builddir)/metadata/librbmetadata.la       \
        $(top_builddir)/widgets/librbwidgets.la         \
        $(top_builddir)/rhythmdb/librhythmdb.la         \
        $(top_builddir)/backends/librbbackends.la       \
        $(top_builddir)/plugins/librbplugins.la         \
        $(top_builddir)/lib/librb.la
+
+if HAVE_NAUTILUS_BURN
+rhythmbox_LDADD += $(top_builddir)/player/librbplayer.la
+endif
 
 if USE_DAAP
 INCLUDES += -I$(top_srcdir)/daapsharing
Index: shell/main.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/shell/main.c,v
retrieving revision 1.98
diff -u -p -r1.98 main.c
--- shell/main.c        30 May 2006 13:47:16 -0000      1.98
+++ shell/main.c        8 Jun 2006 13:19:22 -0000
@@ -73,6 +73,7 @@
 #include <dbus/dbus-glib-lowlevel.h>
 #endif
 
+#ifdef HAVE_NAUTILUS_BURN
 #include <nautilus-burn-drive.h>
 #ifndef NAUTILUS_BURN_CHECK_VERSION     
 #define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE        
@@ -81,6 +82,13 @@
 #if NAUTILUS_BURN_CHECK_VERSION(2,15,3)
 #include <nautilus-burn.h>
 #endif
+
+#else // !HAVE_NAUTILUS_BURN
+#ifndef NAUTILUS_BURN_CHECK_VERSION     
+#define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE        
+#endif
+
+#endif // HAVE_NAUTILUS_BURN
 
 static gboolean debug           = FALSE;
 static char *debug_match        = NULL;
Index: shell/rb-playlist-manager.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/shell/rb-playlist-manager.c,v
retrieving revision 1.107
diff -u -p -r1.107 rb-playlist-manager.c
--- shell/rb-playlist-manager.c 7 Jun 2006 13:10:39 -0000       1.107
+++ shell/rb-playlist-manager.c 8 Jun 2006 13:19:22 -0000
@@ -70,8 +70,10 @@ static void rb_playlist_manager_cmd_load
                                                   RBPlaylistManager *mgr);
 static void rb_playlist_manager_cmd_save_playlist (GtkAction *action,
                                                   RBPlaylistManager *mgr);
+#ifdef HAVE_NAUTILUS_BURN
 static void rb_playlist_manager_cmd_burn_playlist (GtkAction *action,
                                                   RBPlaylistManager *mgr);
+#endif                                            
 static void rb_playlist_manager_cmd_new_playlist (GtkAction *action,
                                                  RBPlaylistManager *mgr);
 static void rb_playlist_manager_cmd_new_automatic_playlist (GtkAction *action,
@@ -144,9 +146,11 @@ static GtkActionEntry rb_playlist_manage
        { "MusicPlaylistSavePlaylist", GTK_STOCK_SAVE_AS, N_("_Save to 
File..."), NULL,
          N_("Save a playlist to a file"),
          G_CALLBACK (rb_playlist_manager_cmd_save_playlist) },
+#ifdef HAVE_NAUTILUS_BURN
        { "MusicPlaylistBurnPlaylist", GTK_STOCK_CDROM, N_("_Create Audio 
CD..."), NULL,
          N_("Create an audio CD from playlist"),
          G_CALLBACK (rb_playlist_manager_cmd_burn_playlist) },
+#endif  
        { "MusicPlaylistRenamePlaylist", NULL, N_("_Rename"), NULL,
          N_("Rename playlist"),
          G_CALLBACK (rb_playlist_manager_cmd_rename_playlist) },
@@ -314,12 +318,16 @@ static void
 rb_playlist_manager_playlist_entries_changed (GtkTreeModel *model, 
RhythmDBEntry *entry, RBPlaylistManager *mgr)
 {
        int num_tracks;
+#ifdef HAVE_NAUTILUS_BURN
        GtkAction *action;
+#endif 
 
        num_tracks = gtk_tree_model_iter_n_children (model, NULL);
 
+#ifdef HAVE_NAUTILUS_BURN
        action = gtk_action_group_get_action (mgr->priv->actiongroup, 
"MusicPlaylistBurnPlaylist");
        gtk_action_set_sensitive (action, (num_tracks > 0));
+#endif 
 }
 
 static void
@@ -391,6 +399,7 @@ rb_playlist_manager_set_source (RBPlayli
                                              "MusicPlaylistRenamePlaylist");
        gtk_action_set_visible (action, can_rename);
 
+#ifdef HAVE_NAUTILUS_BURN
        action = gtk_action_group_get_action (mgr->priv->actiongroup,
                                              "MusicPlaylistBurnPlaylist");
        if (playlist_active && rb_recorder_enabled ()) {
@@ -413,6 +422,7 @@ rb_playlist_manager_set_source (RBPlayli
        } else {
                gtk_action_set_visible (action, FALSE);
        }
+#endif 
 }
 
 static void
@@ -1401,12 +1411,14 @@ rb_playlist_manager_cmd_save_playlist (G
        g_object_unref (G_OBJECT (xml));
 }
 
+#ifdef HAVE_NAUTILUS_BURN
 static void
 rb_playlist_manager_cmd_burn_playlist (GtkAction *action,
                                       RBPlaylistManager *mgr)
 {
        rb_playlist_source_burn_playlist (RB_PLAYLIST_SOURCE 
(mgr->priv->selected_source));
 }
+#endif
 
 /**
  * rb_playlist_manager_get_playlists
Index: shell/rb-removable-media-manager.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/shell/rb-removable-media-manager.c,v
retrieving revision 1.28
diff -u -p -r1.28 rb-removable-media-manager.c
--- shell/rb-removable-media-manager.c  2 Jun 2006 22:27:46 -0000       1.28
+++ shell/rb-removable-media-manager.c  8 Jun 2006 13:19:22 -0000
@@ -27,6 +27,7 @@
 #include <gtk/gtk.h>
 
 #include <libgnomevfs/gnome-vfs.h>
+#ifdef HAVE_NAUTILUS_BURN
 
 #include <nautilus-burn-drive.h>
 #ifndef NAUTILUS_BURN_CHECK_VERSION     
@@ -37,6 +38,12 @@
 #include <nautilus-burn.h>
 #endif
 
+#else // !HAVE_NAUTILUS_BURN
+#ifndef NAUTILUS_BURN_CHECK_VERSION     
+#define NAUTILUS_BURN_CHECK_VERSION(a,b,c) FALSE        
+#endif
+#endif
+
 #include "rb-removable-media-manager.h"
 #include "rb-library-source.h"
 #include "rb-sourcelist.h"
@@ -371,7 +379,9 @@ typedef struct
        gboolean removed;
        gboolean tray_opened;
        RBRemovableMediaManager *manager;
+#ifdef HAVE_NAUTILUS_BURN
        NautilusBurnDrive *drive;
+#endif 
 } RbCdDriveInfo;
 
 #ifdef HAVE_BURN_DRIVE_DOOR
@@ -406,6 +416,7 @@ gboolean poll_tray_opened (RbCdDriveInfo
 }
 #endif
 
+#ifdef HAVE_NAUTILUS_BURN
 static
 void end_cd_drive_monitor (RbCdDriveInfo *info, RBRemovableMediaManager 
*manager)
 {
@@ -466,8 +477,10 @@ get_nautilus_burn_drive_for_path (const 
        return path_drive;
 #endif
 }
+#endif
 #endif /* NAUTILUS_BURN < 2.15.3 */
 
+#ifdef HAVE_NAUTILUS_BURN
 static char *
 split_drive_from_cdda_uri (const char *uri)
 {
@@ -538,17 +551,20 @@ rb_removable_media_manager_playing_uri_c
        g_free (priv->playing_uri);
        priv->playing_uri = (uri) ? g_strdup (uri) : NULL;
 }
+#endif
 
        
 static gboolean
 rb_removable_media_manager_load_media (RBRemovableMediaManager *manager)
 {
-       RBRemovableMediaManagerPrivate *priv = 
REMOVABLE_MEDIA_MANAGER_GET_PRIVATE (manager);
        GnomeVFSVolumeMonitor *monitor = gnome_vfs_get_volume_monitor ();
+#ifdef HAVE_NAUTILUS_BURN
+       RBRemovableMediaManagerPrivate *priv = 
REMOVABLE_MEDIA_MANAGER_GET_PRIVATE (manager);
 #if !NAUTILUS_BURN_CHECK_VERSION(2,15,3)
        GList *drives;
 #endif
        GObject *shell_player;
+#endif 
 
        /*
         * Monitor new (un)mounted file systems to look for new media
@@ -568,6 +584,7 @@ rb_removable_media_manager_load_media (R
                          G_CALLBACK 
(rb_removable_media_manager_volume_unmounted_cb), 
                          manager);
 
+#ifdef HAVE_NAUTILUS_BURN
        /*
         * Monitor all cd drives for inserted audio cds
         *
@@ -586,6 +603,7 @@ rb_removable_media_manager_load_media (R
        g_signal_connect (shell_player, "playing-uri-changed",
                          G_CALLBACK 
(rb_removable_media_manager_playing_uri_changed_cb),
                          manager);
+#endif                   
 
        return FALSE;
 }
@@ -819,6 +837,7 @@ rb_removable_media_manager_unmount_volum
        rb_removable_media_manager_unmount_volume (manager, volume);
 }
 
+#ifdef HAVE_NAUTILUS_BURN
 #if !NAUTILUS_BURN_CHECK_VERSION(2,15,3)
 static const char *
 nautilus_burn_drive_get_device (NautilusBurnDrive *drive)
@@ -828,6 +847,7 @@ nautilus_burn_drive_get_device (Nautilus
        return drive->device;
 }
 #endif
+#endif
 
 void
 rb_removable_media_manager_scan (RBRemovableMediaManager *manager)
@@ -862,6 +882,7 @@ rb_removable_media_manager_scan (RBRemov
        }
        g_list_free (list);
 
+#ifdef HAVE_NAUTILUS_BURN
        /* scan cd drives */
 #if NAUTILUS_BURN_CHECK_VERSION(2,15,3)
        list = nautilus_burn_drive_monitor_get_drives 
(nautilus_burn_get_drive_monitor ());
@@ -878,6 +899,7 @@ rb_removable_media_manager_scan (RBRemov
                }
        }
        g_list_free (list);
+#endif 
 }
 
 
Index: sources/Makefile.am
===================================================================
RCS file: /cvs/gnome/rhythmbox/sources/Makefile.am,v
retrieving revision 1.41
diff -u -p -r1.41 Makefile.am
--- sources/Makefile.am 27 May 2006 04:30:50 -0000      1.41
+++ sources/Makefile.am 8 Jun 2006 13:19:22 -0000
@@ -20,8 +20,6 @@ libsourcesimpl_la_SOURCES =           \
        rb-removable-media-source.h     \
        rb-audiocd-source.c             \
        rb-audiocd-source.h             \
-       rb-playlist-source-recorder.c   \
-       rb-playlist-source-recorder.h   \
        rb-playlist-source.c            \
        rb-playlist-source.h            \
        rb-playlist-xml.h               \
@@ -70,6 +68,11 @@ if USE_DAAP
 libsourcesimpl_la_SOURCES += $(daap_files)
 endif
 
+if HAVE_NAUTILUS_BURN
+libsourcesimpl_la_SOURCES += rb-playlist-source-recorder.c   \
+       rb-playlist-source-recorder.h
+endif
+       
 if USE_LIBSOUP
 INCLUDES += $(SOUP_CFLAGS)
 endif
Index: sources/rb-playlist-source.c
===================================================================
RCS file: /cvs/gnome/rhythmbox/sources/rb-playlist-source.c,v
retrieving revision 1.118
diff -u -p -r1.118 rb-playlist-source.c
--- sources/rb-playlist-source.c        25 May 2006 07:20:48 -0000      1.118
+++ sources/rb-playlist-source.c        8 Jun 2006 13:19:22 -0000
@@ -500,6 +500,7 @@ rb_playlist_source_save_playlist (RBPlay
                                 "%s", error->message);
 }
 
+#ifdef HAVE_NAUTILUS_BURN
 static gboolean
 burn_playlist_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, 
char **artist, char **title, gulong *duration)
 {
@@ -545,6 +546,7 @@ rb_playlist_source_burn_playlist (RBPlay
                                                          GTK_TREE_MODEL 
(source->priv->model),
                                                          
burn_playlist_iter_func,
                                                          &error);
+                                                         
        if (! res) {
                rb_error_dialog (GTK_WINDOW (parent),
                                 _("Unable to create audio CD"),
@@ -563,6 +565,7 @@ rb_playlist_source_burn_playlist (RBPlay
 
        gtk_widget_show (recorder);
 }
+#endif
 
 /* Adapted from yelp-toc-pager.c */
 static xmlChar *
<ui>
  <menubar name="MenuBar">
    <menu name="MusicMenu" action="Music">  
      <menuitem name="MusicImportFileMenu" action="MusicImportFile"/>
      <menuitem name="MusicImportFolderMenu" action="MusicImportFolder"/>
      <separator/>
      <menuitem name="MusicImportCD" action="MusicImportCD"/>
      <menuitem name="MusicScanMedia" action="MusicScanMedia"/>
      <separator/>
      <menu name="PlaylistMenu" action="Playlist">
        <menuitem name="MusicPlaylistNewPlaylistMenu" 
action="MusicPlaylistNewPlaylist"/>
        <menuitem name="MusicPlaylistNewAutomaticPlaylistMenu" 
action="MusicPlaylistNewAutomaticPlaylist"/>
        <menuitem name="MusicPlaylistLoadPlaylistMenu" 
action="MusicPlaylistLoadPlaylist"/>
        <menuitem name="MusicPlaylistSavePlaylistMenu" 
action="MusicPlaylistSavePlaylist"/>
#HAVE_NAUTILUS_BURN     <menuitem name="MusicPlaylistBurnPlaylistMenu" 
action="MusicPlaylistBurnPlaylist"/>
        <menuitem name="MusicPlaylistEditAutoPlaylistMenu" 
action="EditAutomaticPlaylist"/>
        <separator name="MusicPlaylistSeparator1"/>
        <menuitem name="MusicPlaylistDeletePlaylistMenu" 
action="MusicPlaylistDeletePlaylist"/>
      </menu>
      <menuitem name="MusicNewInternetRadioStationMenu" 
action="MusicNewInternetRadioStation"/>
      <menuitem name="MusicNewPodcastMenu" action="MusicNewPodcast"/>
      <separator/>
      <menuitem name="MusicPropertiesMenu" action="MusicProperties"/>
      <separator/>
      <menuitem name="MusicClose" action="MusicClose"/>
      <menuitem name="MusicQuit" action="MusicQuit"/>
    </menu>

    <menu name="EditMenu" action="Edit">
      <menuitem name="EditCutMenu" action="EditCut"/>
      <menuitem name="EditCopyMenu" action="EditCopy"/>
      <menuitem name="EditPasteMenu" action="EditPaste"/>
      <menuitem name="EditDeleteMenu" action="EditDelete"/>
      <separator/> 
      <menuitem name="EditSelectAllMenu" action="EditSelectAll"/>
      <menuitem name="EditSelectNoneMenu" action="EditSelectNone"/>
      <separator/> 
      <menuitem name="EditAddToQueueMenu" action="AddToQueue"/>
      <menu name="EditPlaylistAddMenu" action="EditPlaylistAdd">
        <menuitem name="EditPlaylistAddNew" action="EditPlaylistAddNew"/>
        <separator/> 
        <placeholder name="EditPlaylistAddPlaceholder"/>
      </menu>
      <separator/> 
      <menuitem name="EditMovetoTrash" action="EditMovetoTrash"/>
      <separator/>
      <menuitem name="EditPluginsMenu" action="EditPlugins"/> 
      <menuitem name="EditPreferencesMenu" action="EditPreferences"/> 
    </menu>

    <menu name="ViewMenu" action="View">
      <menuitem name="ViewSmallDisplayMenu" action="ViewSmallDisplay"/>
      <menuitem name="ViewPartyModeMenu" action="ViewPartyMode"/>
      <separator name="ViewSep1"/>
      <menuitem name="ViewSidePaneMenu" action="ViewSidePane"/>
      <menuitem name="ViewQueueAsSidebarMenu" action="ViewQueueAsSidebar"/>
      <menuitem name="ViewBrowserMenu" action="ViewBrowser"/>
      <menuitem name="ViewStatusbarMenu" action="ViewStatusbar"/>
      <menuitem name="ViewToolbarMenu" action="ViewToolbar"/>
      <separator name="ViewSep2"/>
      <menuitem name="ViewAllMenu" action="ViewAll"/>
      <separator name="ViewSep3"/>
      <menuitem name="ViewJumpToPlayingMenu" action="ViewJumpToPlaying"/>
    </menu>

    <menu name="ToolsMenu" action="Tools">
      <placeholder name="ToolsOps_1" />
      <separator/>
      <placeholder name="ToolsOps_2" />
      <separator/>
      <placeholder name="ToolsOps_3" />
      <separator/>
      <placeholder name="ToolsOps_4" />
      <separator/>
      <placeholder name="ToolsOps_5" />
    </menu>

    <menu name="ControlMenu" action="Control">
      <menuitem name="ControlPlayMenu" action="ControlPlay"/>
      <separator name="ControlSep1"/>
      <menuitem name="ControlPreviousMenu" action="ControlPrevious"/>
      <menuitem name="ControlNextMenu" action="ControlNext"/>
      <separator name="ControlSep2"/>
      <menuitem name="ControlVolumeUpMenu" action="ControlVolumeUp"/>
      <menuitem name="ControlVolumeDownMenu" action="ControlVolumeDown"/>
      <separator name="ControlSep3"/>
      <menuitem name="ControlShuffleMenu" action="ControlShuffle"/>
      <menuitem name="ControlRepeatMenu" action="ControlRepeat"/>
    </menu>

    <menu name="HelpMenu" action="Help">
      <menuitem name="HelpContentsMenu" action="HelpContents"/>
      <menuitem name="HelpAboutMenu" action="HelpAbout"/>
    </menu>

  </menubar>

  <toolbar name="ToolBar">
    <toolitem name="Previous" action="ControlPrevious"/>
    <toolitem name="Play" action="ControlPlay"/>
    <toolitem name="Next" action="ControlNext"/>
    <separator/>
    <toolitem name="Repeat" action="ControlRepeat"/>
    <toolitem name="Shuffle" action="ControlShuffle"/>
    <separator/>
    <toolitem name="Browse" action="ViewBrowser"/>
    <separator/>
  </toolbar>

  <toolbar name="SearchBar">
  </toolbar>

  <popup name="RhythmboxTrayPopup">
      <menuitem name="PlayTray" action="ControlPlay"/>
      <separator/>
      <menuitem name="PreviousTray" action="ControlPrevious"/>
      <menuitem name="NextTray" action="ControlNext"/>
      <separator/>
      <menuitem name="ShowWindowTray" action="TrayShowWindow"/>
      <menuitem name="ShowNotifications" action="TrayShowNotifications"/>
      <separator/>
      <menuitem name="QuitTray" action="MusicQuit"/>
  </popup>

  <popup name="BrowserSourceViewPopup">
    <menuitem name="AddToQueueLibraryPopup" action="AddToQueue"/>
    <menu name="BrowserSourcePopupPlaylistAdd" action="EditPlaylistAdd">
      <placeholder name="BrowserSourcePopupPlaylistAddPlaceholder"/>
      <separator/> 
      <menuitem name="BrowserSourcePopupPlaylistAddNew" 
action="EditPlaylistAddNew"/>
    </menu>
    <menuitem name="CopyLibraryPopup" action="EditCopy"/>
    <separator/>
    <menuitem name="DeleteLibraryPopup" action="EditDelete"/>
    <menuitem name="MovetoTrashPopup" action="EditMovetoTrash"/>
    <separator/>
    <menuitem name="BrowseGenreLibraryPopup" action="BrowserSrcChooseGenre"/>
    <menuitem name="BrowseArtistLibraryPopup" action="BrowserSrcChooseArtist"/>
    <menuitem name="BrowseAlbumLibraryPopup" action="BrowserSrcChooseAlbum"/>
    <separator/>
    <menuitem name="PropertiesLibraryPopup" action="MusicProperties"/>
  </popup>

  <popup name="ImportErrorsViewPopup">
    <menuitem name="MovetoTrashPopup" action="EditMovetoTrash"/>
  </popup>

  <popup name="PlaylistViewPopup">
    <menuitem name="AddToQueuePlaylistPopup" action="AddToQueue"/>
    <menu name="PlaylistPopupPlaylistAdd" action="EditPlaylistAdd">
      <menuitem name="PlaylistPopupPlaylistAddNew" action="EditPlaylistAddNew"/>
      <separator/> 
      <placeholder name="PlaylistPopupPlaylistAddPlaceholder"/>
    </menu>
    <menuitem name="CopyPlaylistPopup" action="EditCopy"/>
    <menuitem name="CutPlaylistPopup" action="EditCut"/>
    <menuitem name="DeletePlaylistPopup" action="EditDelete"/>
    <separator/>
    <menuitem name="MovetoTrashPlaylistPopup" action="EditMovetoTrash"/>
    <separator/>
    <menuitem name="PropertiesPlaylistPopup" action="MusicProperties"/>
  </popup>

  <popup name="QueuePlaylistViewPopup">
    <menuitem name="DeletePlaylistPopup" action="EditDelete"/>
    <separator/>
    <menuitem name="PropertiesPlaylistPopup" action="MusicProperties"/>
  </popup>
  
  <popup name="QueueSidebarViewPopup">
    <menuitem name="DeletePlaylistPopup" action="QueueDelete"/>
    <menuitem name="ClearPlaylistPopup" action="ClearQueue"/>
    <separator/>
    <menuitem name="PropertiesPlaylistPopup" action="QueueMusicProperties"/>
  </popup>

  <popup name="QueueSourcePopup">
    <menuitem name="ClearPlaylistPopup" action="ClearQueue"/>
#HAVE_NAUTILUS_BURN    <separator/>
#HAVE_NAUTILUS_BURN    <menuitem name="MusicPlaylistBurnPlaylistMenu" 
action="MusicPlaylistBurnPlaylist"/>
  </popup>

  <popup name="SourceListPopup">
    <menuitem name="SourceListPopupNewPlaylist" 
action="MusicPlaylistNewPlaylist"/>
    <menuitem name="SourceListPopupNewAutomaticPlaylist" 
action="MusicPlaylistNewAutomaticPlaylist"/>
  </popup>

  <popup name="LibrarySourcePopup">
    <menuitem name="LibrarySrcPopupAddFile" action="MusicImportFile"/>
    <menuitem name="LibrarySrcPopupAddFolder" action="MusicImportFolder"/>
    <menuitem name="LibrarySrcPopupAddCD" action="MusicImportCD"/>
  </popup>

  <popup name="IRadioSourcePopup">
    <menuitem name="IRadioSrcPopupNewStation" 
action="MusicNewInternetRadioStation"/>
  </popup>

  <popup name="IRadioViewPopup">
    <menuitem name="DeleteIRadioPopup" action="EditDelete"/>
    <separator/>
    <menuitem name="PropertiesIRadioPopup" action="MusicProperties"/>
  </popup>
  <popup name="PodcastSourcePopup">
    <menuitem name="PodcastSrcPopupNew" action="MusicNewPodcast"/>
    <menuitem name="PodcastSrcPopupUpdateAllFeeds" 
action="PodcastUpdateAllFeeds"/>
  </popup>

  <popup name="PodcastViewPopup">
    <menuitem name="DownloadPodcastPopup" action="PodcastSrcDownloadPost"/>
    <menuitem name="CancelDownloadPopup" action="PodcastSrcCancelDownload"/>
    <menuitem name="DeletePodcastPopup" action="EditDelete"/>
    <separator/>
    <menuitem name="AddToQueuePodcastPopup" action="AddToQueue"/>
    <separator/>
    <menuitem name="PropertiesPodcastPopup" action="MusicProperties"/>
  </popup>

  <popup name="PodcastFeedViewPopup">
    <menuitem name="NewPodcastPopup" action="MusicNewPodcast"/>
    <menuitem name="PodcastSrcPopupUpdateAllFeeds" 
action="PodcastUpdateAllFeeds"/>
    <separator/>
    <menuitem name="UpdateFeedPodcastPopup" action="PodcastFeedUpdate"/>
    <menuitem name="DeleteFeedPodcastPopup" action="PodcastFeedDelete"/>
    <separator/>
    <menuitem name="PropertiesFeedPodcastPopup" action="PodcastFeedProperties"/>
  </popup>

  <popup name="AudioCdSourcePopup">
    <menuitem name="AudioCdSourcePopupCopyAllTracks" 
action="RemovableSourceCopyAllTracks"/>
    <menuitem name="AudioCdSourcePopupEjectCd" action="RemovableSourceEject"/>
  </popup>

  <popup name="PlaylistSourcePopup">
    <menuitem name="RenameAutoPlaylistPopup" 
action="MusicPlaylistRenamePlaylist"/>
    <separator/>
    <menuitem name="QueuePlaylistPopup" action="QueuePlaylist"/>
    <separator/>
    <menuitem name="DeletePlaylistPopup" action="MusicPlaylistDeletePlaylist"/>
  </popup>

  <popup name="AutoPlaylistSourcePopup">
    <menuitem name="EditAutoPlaylistPopup" action="EditAutomaticPlaylist"/>
    <menuitem name="RenameAutoPlaylistPopup" 
action="MusicPlaylistRenamePlaylist"/>
    <separator/>
    <menuitem name="QueuePlaylistPopup" action="QueuePlaylist"/>
#HAVE_NAUTILUS_BURN    <menuitem name="MusicPlaylistBurnPlaylistMenu" 
action="MusicPlaylistBurnPlaylist"/>
    <separator/>
    <menuitem name="DeleteAutoPlaylistPopup" 
action="MusicPlaylistDeletePlaylist"/>
  </popup>

  <popup name="MissingFilesViewPopup">
    <menuitem name="DeleteMissingFilesPopup" action="EditDelete"/>
    <menuitem name="PropertiesMissingFilesPopup" action="MusicProperties"/>
  </popup>

</ui>
#!/usr/bin/perl -w 

open(INFILE, "< $ARGV[0]");
open(OUTFILE, "> $ARGV[1]");

while (<INFILE>)
{
	if (substr($_,0,1) eq "#")
	{
		($var,$rest) = split(/ /,$_,2);
		$var = substr($var,1);
		if (!exists $ENV{$var} || $ENV{$var} == 0)
		{
			next;
		}
		$_ = $rest;
	}
	print OUTFILE $_;
}
close INFILE;
_______________________________________________
rhythmbox-devel mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/rhythmbox-devel

Reply via email to