? attachment.cgi?id=63839&action=view
? foo
? totem-2.17.3.tar.bz2
? browser-plugin/attachment.cgi?id=76680&action=view
? help/fr/.xml2po.mo
? help/fr/totem.xml
? help/sv/.xml2po.mo
? help/sv/totem.xml
? src/foo.png
? src/totem-mozilla-interface.h
? src/totem-mozilla-viewer
Index: configure.in
===================================================================
RCS file: /cvs/gnome/totem/configure.in,v
retrieving revision 1.317
diff -u -p -r1.317 configure.in
--- configure.in	27 Nov 2006 17:51:27 -0000	1.317
+++ configure.in	29 Nov 2006 18:31:22 -0000
@@ -34,6 +34,7 @@ GLIB_REQS=2.8.0
 GTK_REQS=2.10.0
 GNOMEVFS_REQS=2.8.2
 GNOMEUI_REQS=2.3.3
+LIBGNOME_REQS=2.14.0
 GNOMEICON_REQS=2.15.90
 DBUS_REQS=0.61
 
@@ -221,7 +222,7 @@ dnl Seems that the order matters because
 dnl Also check if we're going to be using GTK+ only
 if test x$ENABLE_GTK = "xno" ; then
 # FIXME: use gmodule-no-export instead!
-	PKG_CHECK_MODULES(EXTRA_GNOME, glib-2.0 >= $GLIB_REQS gtk+-2.0 >= $GTK_REQS libgnomeui-2.0 >= $GNOMEUI_REQS libglade-2.0 gnome-vfs-2.0 >= $GNOMEVFS_REQS gnome-vfs-module-2.0 >= $GNOMEVFS_REQS gnome-desktop-2.0 >= 2.1.5 gnome-icon-theme >= $GNOMEICON_REQS gmodule-2.0 iso-codes $MM)
+	PKG_CHECK_MODULES(EXTRA_GNOME, glib-2.0 >= $GLIB_REQS gtk+-2.0 >= $GTK_REQS libgnomeui-2.0 >= $GNOMEUI_REQS libglade-2.0 gnome-vfs-2.0 >= $GNOMEVFS_REQS gnome-vfs-module-2.0 >= $GNOMEVFS_REQS libgnome-2.0 >= $LIBGNOME_REQS  gnome-desktop-2.0 >= 2.1.5 gnome-icon-theme >= $GNOMEICON_REQS gmodule-2.0 iso-codes $MM)
 	HAVE_GNOME=yes
 else
 # FIXME: use gmodule-no-export instead!
Index: src/totem-options.c
===================================================================
RCS file: /cvs/gnome/totem/src/totem-options.c,v
retrieving revision 1.4
diff -u -p -r1.4 totem-options.c
--- src/totem-options.c	28 Apr 2005 09:20:11 -0000	1.4
+++ src/totem-options.c	29 Nov 2006 18:31:23 -0000
@@ -32,114 +32,72 @@
 #include "bacon-video-widget.h"
 #include "totem-private.h"
 
-static struct poptOption options[] = {
-	{NULL, '\0', POPT_ARG_INCLUDE_TABLE, NULL, 0, N_("Backend options"), NULL},
-	{"debug", '\0', POPT_ARG_NONE, NULL, 0, N_("Enable debug"), NULL},
-	{"play-pause", '\0', POPT_ARG_NONE, NULL, 0, N_("Play/Pause"), NULL},
-	{"play", '\0', POPT_ARG_NONE, NULL, 0, N_("Play"), NULL},
-	{"pause", '\0', POPT_ARG_NONE, NULL, 0, N_("Pause"), NULL},
-	{"next", '\0', POPT_ARG_NONE, NULL, 0, N_("Next"), NULL},
-	{"previous", '\0', POPT_ARG_NONE, NULL, 0, N_("Previous"), NULL},
-	{"seek-fwd", '\0', POPT_ARG_NONE, NULL, 0, N_("Seek Forwards"), NULL},
-	{"seek-bwd", '\0', POPT_ARG_NONE, NULL, 0, N_("Seek Backwards"), NULL},
-	{"volume-up", '\0', POPT_ARG_NONE, NULL, 0, N_("Volume Up"), NULL},
-	{"volume-down", '\0', POPT_ARG_NONE, NULL, 0, N_("Volume Down"), NULL},
-	{"fullscreen", '\0', POPT_ARG_NONE, NULL, 0, N_("Toggle Fullscreen"), NULL},
-	{"toggle-controls", '\0', POPT_ARG_NONE, NULL, 0, N_("Show/Hide Controls"), NULL},
-	{"quit", '\0', POPT_ARG_NONE, NULL, 0, N_("Quit"), NULL},
-	{"enqueue", '\0', POPT_ARG_NONE, NULL, 0, N_("Enqueue"), NULL},
-	{"replace", '\0', POPT_ARG_NONE, NULL, 0, N_("Replace"), NULL},
-	{NULL, '\0', 0, NULL, 0} /* end the list */
-};
+TotemCmdLineOptions optionstate;	/* Decoded command line options */
 
-poptOption
-totem_options_get_options (void)
-{
-	options[0].arg = bacon_video_widget_get_popt_table ();
-	return options;
-}
+const GOptionEntry options[] = {
+	{"debug", '\0', 0, G_OPTION_ARG_NONE, &optionstate.debug, N_("Enable debug"), NULL},
+	{"play-pause", '\0', 0, G_OPTION_ARG_NONE, &optionstate.playpause, N_("Play/Pause"), NULL},
+	{"play", '\0', 0, G_OPTION_ARG_NONE, &optionstate.play, N_("Play"), NULL},
+	{"pause", '\0', 0, G_OPTION_ARG_NONE, &optionstate.pause, N_("Pause"), NULL},
+	{"next", '\0', 0, G_OPTION_ARG_NONE, &optionstate.next, N_("Next"), NULL},
+	{"previous", '\0', 0, G_OPTION_ARG_NONE, &optionstate.previous, N_("Previous"), NULL},
+	{"seek-fwd", '\0', 0, G_OPTION_ARG_NONE, &optionstate.seekfwd, N_("Seek Forwards"), NULL},
+	{"seek-bwd", '\0', 0, G_OPTION_ARG_NONE, &optionstate.seekbwd, N_("Seek Backwards"), NULL},
+	{"volume-up", '\0', 0, G_OPTION_ARG_NONE, &optionstate.volumeup, N_("Volume Up"), NULL},
+	{"volume-down", '\0', 0, G_OPTION_ARG_NONE, &optionstate.volumedown, N_("Volume Down"), NULL},
+	{"fullscreen", '\0', 0, G_OPTION_ARG_NONE, &optionstate.fullscreen, N_("Toggle Fullscreen"), NULL},
+	{"toggle-controls", '\0', 0, G_OPTION_ARG_NONE, &optionstate.togglecontrols, N_("Show/Hide Controls"), NULL},
+	{"quit", '\0', 0, G_OPTION_ARG_NONE, &optionstate.quit, N_("Quit"), NULL},
+	{"enqueue", '\0', 0, G_OPTION_ARG_NONE, &optionstate.enqueue, N_("Enqueue"), NULL},
+	{"replace", '\0', 0, G_OPTION_ARG_NONE, &optionstate.replace, N_("Replace"), NULL},
+	{"seek", '\0', 0, G_OPTION_ARG_INT, &optionstate.seek, N_("Seek"), NULL},
+	{"playlist-idx", '\0', 0, G_OPTION_ARG_DOUBLE, &optionstate.playlistidx, N_("Playlist index"), NULL},
+	{G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_FILENAME_ARRAY, &optionstate.filenames, N_("Movies to play"), NULL},
+	{NULL} /* end the list */
+};
 
 gboolean
-totem_options_process_late (Totem *totem, int *argc, char ***argv)
+totem_options_process_late (Totem *totem, const TotemCmdLineOptions* options)
 {
-	int i;
-	guint options = 0;
-	char **args = *argv;
 	gboolean session_restored = FALSE;
 
-	if (*argc == 1) {
-		*argc = 0;
-		*argv = *argv + 1;
-		return FALSE;
-	}
 
-	for (i = 1; i < *argc; i++)
-	{
-		if (strcmp (args[i], "--debug") == 0)
-		{
-			options++;
-		} else if (strcmp (args[i], "--fullscreen") == 0) {
-			totem_action_fullscreen_toggle (totem);
-			options++;
-		} else if (strcmp (args[i], "--toggle-controls") == 0) {
-			totem_action_toggle_controls (totem);
-		} else if (strcmp (args[i], "--sm-config-prefix") == 0
+	if (options->fullscreen) 
+		totem_action_fullscreen_toggle (totem);
+
+	if (options->togglecontrols) 
+		totem_action_toggle_controls (totem);
+
+#if 0 /* FIXME: how to handle non totem options with goption ? */
+		if (strcmp (args[i], "--sm-config-prefix") == 0
 				|| strcmp (args[i], "--sm-client-id") == 0
 				|| strcmp (args[i], "--screen") == 0) {
 			session_restored = TRUE;
-			options++;
-			i++;
-			if (i < *argc)
-				options++;
-		} else if (strcmp (args[i], "--playlist-idx") == 0) {
-			options++;
-			i++;
-			if (i < *argc)
-			{
-				options++;
-				totem->index = g_ascii_strtod (args[i], NULL);
-			}
-		} else if (strcmp (args[i], "--seek") == 0) {
-			options++;
+			count++;
 			i++;
-			if (i < *argc)
-			{
-				options++;
-				if (sscanf (args[i], "%"G_GINT64_FORMAT, &totem->seek_to) != 1)
-					totem->seek_to = 0;
-			}
-		} else if (g_str_has_prefix (args[i], "--") != FALSE) {
-			printf (_("Option '%s' is unknown and was ignored\n"),
-					args[i]);
-			options++;
-		}
-	}
+		} 
+#endif
+	/* Handle --playlist-idx */
+	totem->index = options->playlistidx;
 
-	*argc = *argc - options;
-	*argv = *argv + options + 1;
+	/* Handle --seek */
+	totem->seek_to = options->seek; /* FIXME: Should be a GINT64, but GOptions doesn't support it ATM */
 
 	return session_restored;
 }
 
 void
-totem_options_process_early (GConfClient *gc, int argc, char **argv)
+totem_options_process_early (GConfClient *gc, const TotemCmdLineOptions* options)
 {
-	int i;
-
-	if (argc == 1)
-		return;
-
-	for (i = 1; i < argc; i++)
+	if (options->debug)
 	{
-		if (strcmp (argv[i], "--debug") == 0)
-		{
-			gconf_client_set_bool (gc, GCONF_PREFIX"/debug",
-					TRUE, NULL);
-		} else if (strcmp (argv[i], "--quit") == 0) {
-			/* If --quit is one of the commands, just quit */
-			gdk_notify_startup_complete ();
-			exit (0);
-		}
+		gconf_client_set_bool (gc, GCONF_PREFIX"/debug",
+				TRUE, NULL);
+	} else if (options->quit) 
+	{
+		/* If --quit is one of the commands, just quit */
+		gdk_notify_startup_complete ();
+		exit (0);
 	}
 }
 
@@ -153,56 +111,67 @@ totem_print_playing_cb (const gchar *msg
 
 void
 totem_options_process_for_server (BaconMessageConnection *conn,
-		int argc, char **argv)
+		const TotemCmdLineOptions* options)
 {
 	int i, command;
 	char *line, *full_path;
 
-	if (argc == 1)
-	{
-		/* Just show totem if there aren't any arguments */
-		line = g_strdup_printf ("%03d ", TOTEM_REMOTE_COMMAND_SHOW);
-		bacon_message_connection_send (conn, line);
-		g_free (line);
-
-		return;
-	}
-
-	i = 2;
+#if 0 	/* FIXME: Handle TOTEM_REMOTE_COMMAND_SHOW */
+	/* Just show totem if there aren't any arguments */
+	line = g_strdup_printf ("%03d ", TOTEM_REMOTE_COMMAND_SHOW);
+	bacon_message_connection_send (conn, line);
+	g_free (line);
+	return;
+#endif
 
+#if 0 	/* FIXME: Handle TOTEM_REMOTE_COMMAND_REPLACE */
 	if (strlen (argv[1]) > 3 && g_str_has_prefix (argv[1], "--") == FALSE)
-	{
 		command = TOTEM_REMOTE_COMMAND_REPLACE;
-		i = 1;
-	} else if (strcmp (argv[1], "--play-pause") == 0) {
+#endif
+	if (options->playpause) 
 		command = TOTEM_REMOTE_COMMAND_PLAYPAUSE;
-	} else if (strcmp (argv[1], "--play") == 0) {
+
+	if (options->play)
 		command = TOTEM_REMOTE_COMMAND_PLAY;
-	} else if (strcmp (argv[1], "--pause") == 0) {
+
+	if (options->pause)
 		command = TOTEM_REMOTE_COMMAND_PAUSE;
-	} else if (strcmp (argv[1], "--next") == 0) {
+
+	if (options->next)
 		command = TOTEM_REMOTE_COMMAND_NEXT;
-	} else if (strcmp (argv[1], "--previous") == 0) {
+
+	if (options->previous)
 		command = TOTEM_REMOTE_COMMAND_PREVIOUS;
-	} else if (strcmp (argv[1], "--seek-fwd") == 0) {
+
+	if (options->seekfwd)
 		command = TOTEM_REMOTE_COMMAND_SEEK_FORWARD;
-	} else if (strcmp (argv[1], "--seek-bwd") == 0) {
+
+	if (options->seekbwd)
 		command = TOTEM_REMOTE_COMMAND_SEEK_BACKWARD;
-	} else if (strcmp (argv[1], "--volume-up") == 0) {
+
+	if (options->volumeup)
 		command = TOTEM_REMOTE_COMMAND_VOLUME_UP;
-	} else if (strcmp (argv[1], "--volume-down") == 0) {
+
+	if (options->volumedown)
 		command = TOTEM_REMOTE_COMMAND_VOLUME_DOWN;
-	} else if (strcmp (argv[1], "--fullscreen") == 0) {
+
+	if (options->fullscreen)
 		command = TOTEM_REMOTE_COMMAND_FULLSCREEN;
-	} else if (strcmp (argv[1], "--quit") == 0) {
+
+	if (options->quit)
 		command = TOTEM_REMOTE_COMMAND_QUIT;
-	} else if (strcmp (argv[1], "--enqueue") == 0) {
+
+	if (options->enqueue)
 		command = TOTEM_REMOTE_COMMAND_ENQUEUE;
-	} else if (strcmp (argv[1], "--replace") == 0) {
+
+	if (options->replace)
 		command = TOTEM_REMOTE_COMMAND_REPLACE;
-	} else if (strcmp (argv[1], "--toggle-controls") == 0) {
+
+	if (options->togglecontrols)
 		command = TOTEM_REMOTE_COMMAND_TOGGLE_CONTROLS;
-	} else if (strcmp (argv[1], "--print-playing") == 0) {
+
+	if (options->printplaying)
+	{
 		GMainLoop *loop = g_main_loop_new (NULL, FALSE);
 
 		command = TOTEM_REMOTE_COMMAND_SHOW_PLAYING;
@@ -227,9 +196,9 @@ totem_options_process_for_server (BaconM
 		return;
 	}
 
-	for (; argv[i] != NULL; i++)
+	for (i = 0; options->filenames[i] != NULL; i++)
 	{
-		full_path = totem_create_full_path (argv[i]);
+		full_path = totem_create_full_path (options->filenames[i]);
 		line = g_strdup_printf ("%03d %s", command, full_path);
 		bacon_message_connection_send (conn, line);
 		g_free (line);
Index: src/totem-options.h
===================================================================
RCS file: /cvs/gnome/totem/src/totem-options.h,v
retrieving revision 1.2
diff -u -p -r1.2 totem-options.h
--- src/totem-options.h	1 Jan 2005 21:28:29 -0000	1.2
+++ src/totem-options.h	29 Nov 2006 18:31:23 -0000
@@ -23,20 +23,44 @@
 #ifndef TOTEM_OPTIONS_H
 #define TOTEM_OPTIONS_H
 
-#include <popt.h>
-
 #include "totem.h"
 #include "bacon-message-connection.h"
 
-G_BEGIN_DECLS
+/* Stores the state of the command line options */
+typedef struct 
+{
+	gboolean debug;
+	gboolean playpause;
+	gboolean play;
+	gboolean pause;
+	gboolean next;
+	gboolean previous;
+	gboolean seekfwd;
+	gboolean seekbwd;
+	gboolean volumeup;
+	gboolean volumedown;
+	gboolean fullscreen;
+	gboolean togglecontrols;
+	gboolean quit;
+	gboolean enqueue;
+	gboolean replace;
+	gboolean printplaying;
+	gdouble playlistidx;
+	gint seek;
+	gchar **filenames;
+}
+TotemCmdLineOptions;
 
-poptOption totem_options_get_options (void);
+extern TotemCmdLineOptions optionstate;
 
-void totem_options_process_early (GConfClient *gc, int argc, char **argv);
-gboolean totem_options_process_late (Totem *totem, int *argc, char ***argv);
+G_BEGIN_DECLS
 
-void totem_options_process_for_server (BaconMessageConnection *conn,
-		int argc, char **argv);
+void totem_options_process_early (GConfClient *gc, 
+	const TotemCmdLineOptions* options);
+gboolean totem_options_process_late (Totem *totem, 
+	const TotemCmdLineOptions* options);
+void totem_options_process_for_server (BaconMessageConnection *conn, 
+	const TotemCmdLineOptions* options);
 
 G_END_DECLS
 
Index: src/totem-video-indexer.c
===================================================================
RCS file: /cvs/gnome/totem/src/totem-video-indexer.c,v
retrieving revision 1.2
diff -u -p -r1.2 totem-video-indexer.c
--- src/totem-video-indexer.c	31 Oct 2006 14:40:01 -0000	1.2
+++ src/totem-video-indexer.c	29 Nov 2006 18:31:23 -0000
@@ -143,11 +143,7 @@ on_got_metadata_event (BaconVideoWidget 
 
 int main (int argc, char **argv)
 {
-	static struct poptOption options[] = {
-		{NULL, '\0', POPT_ARG_INCLUDE_TABLE, NULL, 0,
-			"Backend options", NULL},
-		{NULL, '\0', 0, NULL, 0} /* end the list */
-	};
+	GOptionGroup *options;
 	GtkWidget *widget;
 	BaconVideoWidget *bvw;
 	GError *error = NULL;
@@ -167,7 +163,7 @@ int main (int argc, char **argv)
 
 	g_thread_init (NULL);
 	gdk_threads_init ();
-	options[0].arg = bacon_video_widget_get_popt_table ();
+	options = bacon_video_widget_get_option_group ();
 	g_type_init ();
 
 #ifndef HAVE_GTK_ONLY
Index: src/totem-video-thumbnailer.c
===================================================================
RCS file: /cvs/gnome/totem/src/totem-video-thumbnailer.c,v
retrieving revision 1.61
diff -u -p -r1.61 totem-video-thumbnailer.c
--- src/totem-video-thumbnailer.c	29 Nov 2006 17:15:41 -0000	1.61
+++ src/totem-video-thumbnailer.c	29 Nov 2006 18:31:23 -0000
@@ -20,7 +20,7 @@
  * permission are above and beyond the permissions granted by the GPL license
  * Totem is covered by.
  *
- * Monday 7th February 2005: Christian Schaller: Add excemption clause.
+ * Monday 7th February 2005: Christian Schaller: Add exception clause.
  * See license_change file for details.
  *
  */
@@ -29,8 +29,6 @@
 
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
-
-#include <popt.h>
 
 #include <unistd.h>
 #include <string.h>
Index: src/totem.c
===================================================================
RCS file: /cvs/gnome/totem/src/totem.c,v
retrieving revision 1.539
diff -u -p -r1.539 totem.c
--- src/totem.c	27 Nov 2006 16:56:02 -0000	1.539
+++ src/totem.c	29 Nov 2006 18:31:24 -0000
@@ -107,6 +107,8 @@ static void play_pause_set_label (Totem 
 static gboolean on_video_motion_notify_event (GtkWidget *widget, GdkEventMotion *event, Totem *totem);
 static void popup_timeout_remove (Totem *totem);
 
+extern const GOptionEntry *options;
+
 static void
 long_action (void)
 {
@@ -3230,6 +3232,11 @@ main (int argc, char **argv)
 {
 	Totem *totem;
 	GConfClient *gc;
+#ifndef HAVE_GTK_ONLY
+	GnomeProgram *program;
+#endif
+	GOptionContext *context;
+	GOptionGroup *baconoptiongroup;
 
 	bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
@@ -3246,14 +3253,20 @@ main (int argc, char **argv)
 
 	g_thread_init (NULL);
 
+	/* Handle command line arguments */
+	context = g_option_context_new (_("- Play movies and songs"));
+	baconoptiongroup = bacon_video_widget_get_option_group();
+	g_option_context_add_main_entries (context, options, GETTEXT_PACKAGE);
+	g_option_context_add_group (context, baconoptiongroup);
+
 #ifdef HAVE_GTK_ONLY
 	gtk_init (&argc, &argv);
 #else
-	gnome_program_init ("totem", VERSION,
+	program = gnome_program_init (argv[0], VERSION,
 			LIBGNOMEUI_MODULE,
 			argc, argv,
 			GNOME_PARAM_APP_DATADIR, DATADIR,
-			GNOME_PARAM_POPT_TABLE, totem_options_get_options (),
+			GNOME_PARAM_GOPTION_CONTEXT, context,
 			GNOME_PARAM_NONE);
 #endif /* HAVE_GTK_ONLY */
 
@@ -3278,13 +3291,13 @@ main (int argc, char **argv)
 	totem->conn = bacon_message_connection_new (GETTEXT_PACKAGE);
 	if (bacon_message_connection_get_is_server (totem->conn) == FALSE)
 	{
-		totem_options_process_for_server (totem->conn, argc, argv);
+		totem_options_process_for_server (totem->conn, &optionstate);
 		bacon_message_connection_free (totem->conn);
 		g_free (totem);
 		gdk_notify_startup_complete ();
 		exit (0);
 	} else {
-		totem_options_process_early (gc, argc, argv);
+		totem_options_process_early (gc, &optionstate);
 	}
 
 	/* Init totem itself */
@@ -3361,7 +3374,7 @@ main (int argc, char **argv)
 	totem_setup_preferences (totem);
 
 	/* Command-line handling */
-	if (totem_options_process_late (totem, &argc, &argv) != FALSE)
+	if (totem_options_process_late (totem, &optionstate) != FALSE)
 	{
 		totem_session_restore (totem, argv);
 	} else if (argc >= 1 && totem_action_open_files (totem, argv)) {
@@ -3386,5 +3399,9 @@ main (int argc, char **argv)
 
 	gtk_main ();
 
+#ifndef HAVE_GTK_ONLY
+	/* Will destroy GOption allocated data automatically */
+	g_object_unref (program);
+#endif	
 	return 0;
 }
Index: src/backend/bacon-video-widget-gst-0.10.c
===================================================================
RCS file: /cvs/gnome/totem/src/backend/bacon-video-widget-gst-0.10.c,v
retrieving revision 1.98
diff -u -p -r1.98 bacon-video-widget-gst-0.10.c
--- src/backend/bacon-video-widget-gst-0.10.c	27 Nov 2006 16:56:11 -0000	1.98
+++ src/backend/bacon-video-widget-gst-0.10.c	29 Nov 2006 18:31:27 -0000
@@ -4256,16 +4256,15 @@ bacon_video_widget_init_gst (gpointer no
 
 static GOnce bvw_init_once = G_ONCE_INIT;
 
-struct poptOption *
-bacon_video_widget_get_popt_table (void)
+inline GOptionGroup*
+bacon_video_widget_get_option_group (void)
 {
-  static struct poptOption gstreamer_options[] = {
-    POPT_TABLEEND
-  };
-
+#if 0
+  /* FIXME: Hangs since popt->GOption migration, can this be removed safely ? */
   g_once (&bvw_init_once, (GThreadFunc) bacon_video_widget_init_gst, NULL);
-
-  return gstreamer_options;
+#endif
+  
+  return (GOptionGroup*) gst_init_get_option_group ();
 }
 
 void
Index: src/backend/bacon-video-widget.h
===================================================================
RCS file: /cvs/gnome/totem/src/backend/bacon-video-widget.h,v
retrieving revision 1.76
diff -u -p -r1.76 bacon-video-widget.h
--- src/backend/bacon-video-widget.h	29 Nov 2006 17:15:41 -0000	1.76
+++ src/backend/bacon-video-widget.h	29 Nov 2006 18:31:27 -0000
@@ -29,7 +29,6 @@
 #define HAVE_BACON_VIDEO_WIDGET_H
 
 #include <gtk/gtkbox.h>
-#include <popt.h>
 
 /* for optical disc enumeration type */
 #include "totem-disc.h"
@@ -98,7 +97,7 @@ typedef enum {
 
 GQuark bacon_video_widget_error_quark		 (void) G_GNUC_CONST;
 GType bacon_video_widget_get_type                (void);
-struct poptOption *bacon_video_widget_get_popt_table    (void);
+GOptionGroup* bacon_video_widget_get_option_group (void);
 /* This can be used if the app does not use popt */
 void bacon_video_widget_init_backend		 (int *argc, char ***argv);
 
