[gnome-control-center] info: Merge media panel into info panel
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] info: Merge media panel into info panel
- Date: Fri, 9 Sep 2011 10:06:54 +0000 (UTC)
commit 9b817795bbb30d82188ac8d1ff937683a1088600
Author: Bastien Nocera <hadess hadess net>
Date: Fri Sep 9 10:33:10 2011 +0100
info: Merge media panel into info panel
https://bugzilla.gnome.org/show_bug.cgi?id=657859
panels/Makefile.am | 1 -
panels/info/cc-info-panel.c | 508 ++++++++++++++++++++++
panels/info/gnome-info-panel.desktop.in.in | 2 +-
panels/info/info.ui | 496 +++++++++++++++++++++-
panels/media/Makefile.am | 37 --
panels/media/cc-media-panel.c | 598 --------------------------
panels/media/cc-media-panel.h | 73 ----
panels/media/gnome-media-panel.desktop.in.in | 17 -
panels/media/gnome-media-properties.ui | 461 --------------------
panels/media/media-module.c | 41 --
po/POTFILES.in | 3 -
po/POTFILES.skip | 1 -
12 files changed, 1003 insertions(+), 1235 deletions(-)
---
diff --git a/panels/Makefile.am b/panels/Makefile.am
index 566a2f8..d2133f5 100644
--- a/panels/Makefile.am
+++ b/panels/Makefile.am
@@ -5,7 +5,6 @@ SUBDIRS= \
power \
color \
display \
- media \
mouse \
online-accounts \
region \
diff --git a/panels/info/cc-info-panel.c b/panels/info/cc-info-panel.c
index 9e72e2a..36586c9 100644
--- a/panels/info/cc-info-panel.c
+++ b/panels/info/cc-info-panel.c
@@ -38,6 +38,19 @@
#include "hostname-helper.h"
+/* Autorun options */
+#define PREF_MEDIA_AUTORUN_NEVER "autorun-never"
+#define PREF_MEDIA_AUTORUN_X_CONTENT_START_APP "autorun-x-content-start-app"
+#define PREF_MEDIA_AUTORUN_X_CONTENT_IGNORE "autorun-x-content-ignore"
+#define PREF_MEDIA_AUTORUN_X_CONTENT_OPEN_FOLDER "autorun-x-content-open-folder"
+
+#define CUSTOM_ITEM_ASK "cc-item-ask"
+#define CUSTOM_ITEM_DO_NOTHING "cc-item-do-nothing"
+#define CUSTOM_ITEM_OPEN_FOLDER "cc-item-open-folder"
+
+#define MEDIA_HANDLING_SCHEMA "org.gnome.desktop.media-handling"
+
+/* Session */
#define GNOME_SESSION_MANAGER_SCHEMA "org.gnome.desktop.session"
#define KEY_SESSION_NAME "session-name"
@@ -77,6 +90,10 @@ struct _CcInfoPanelPrivate
guint64 total_bytes;
GCancellable *cancellable;
+ /* Media */
+ GSettings *media_settings;
+ GtkWidget *other_application_combo;
+
GDBusConnection *session_bus;
GDBusProxy *pk_proxy;
GDBusProxy *pk_transaction_proxy;
@@ -522,6 +539,18 @@ cc_info_panel_finalize (GObject *object)
priv->hostnamed_proxy = NULL;
}
+ if (priv->media_settings != NULL)
+ {
+ g_object_unref (priv->media_settings);
+ priv->media_settings = NULL;
+ }
+
+ if (priv->session_settings != NULL)
+ {
+ g_object_unref (priv->session_settings);
+ priv->session_settings = NULL;
+ }
+
G_OBJECT_CLASS (cc_info_panel_parent_class)->finalize (object);
}
@@ -960,6 +989,478 @@ info_panel_setup_default_apps (CcInfoPanel *self)
1, 2, 5, 6);
}
+static char **
+remove_elem_from_str_array (char **v,
+ const char *s)
+{
+ GPtrArray *array;
+ guint idx;
+
+ array = g_ptr_array_new ();
+
+ for (idx = 0; v[idx] != NULL; idx++) {
+ if (g_strcmp0 (v[idx], s) == 0) {
+ continue;
+ }
+
+ g_ptr_array_add (array, v[idx]);
+ }
+
+ g_ptr_array_add (array, NULL);
+
+ g_free (v);
+
+ return (char **) g_ptr_array_free (array, FALSE);
+}
+
+static char **
+add_elem_to_str_array (char **v,
+ const char *s)
+{
+ GPtrArray *array;
+ guint idx;
+
+ array = g_ptr_array_new ();
+
+ for (idx = 0; v[idx] != NULL; idx++) {
+ g_ptr_array_add (array, v[idx]);
+ }
+
+ g_ptr_array_add (array, g_strdup (s));
+ g_ptr_array_add (array, NULL);
+
+ g_free (v);
+
+ return (char **) g_ptr_array_free (array, FALSE);
+}
+
+static int
+media_panel_g_strv_find (char **strv,
+ const char *find_me)
+{
+ guint index;
+
+ g_return_val_if_fail (find_me != NULL, -1);
+
+ for (index = 0; strv[index] != NULL; ++index) {
+ if (g_strcmp0 (strv[index], find_me) == 0) {
+ return index;
+ }
+ }
+
+ return -1;
+}
+
+static void
+autorun_get_preferences (CcInfoPanel *self,
+ const char *x_content_type,
+ gboolean *pref_start_app,
+ gboolean *pref_ignore,
+ gboolean *pref_open_folder)
+{
+ char **x_content_start_app;
+ char **x_content_ignore;
+ char **x_content_open_folder;
+
+ g_return_if_fail (pref_start_app != NULL);
+ g_return_if_fail (pref_ignore != NULL);
+ g_return_if_fail (pref_open_folder != NULL);
+
+ *pref_start_app = FALSE;
+ *pref_ignore = FALSE;
+ *pref_open_folder = FALSE;
+ x_content_start_app = g_settings_get_strv (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_X_CONTENT_START_APP);
+ x_content_ignore = g_settings_get_strv (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_X_CONTENT_IGNORE);
+ x_content_open_folder = g_settings_get_strv (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_X_CONTENT_OPEN_FOLDER);
+ if (x_content_start_app != NULL) {
+ *pref_start_app = media_panel_g_strv_find (x_content_start_app, x_content_type) != -1;
+ }
+ if (x_content_ignore != NULL) {
+ *pref_ignore = media_panel_g_strv_find (x_content_ignore, x_content_type) != -1;
+ }
+ if (x_content_open_folder != NULL) {
+ *pref_open_folder = media_panel_g_strv_find (x_content_open_folder, x_content_type) != -1;
+ }
+ g_strfreev (x_content_ignore);
+ g_strfreev (x_content_start_app);
+ g_strfreev (x_content_open_folder);
+}
+
+static void
+autorun_set_preferences (CcInfoPanel *self,
+ const char *x_content_type,
+ gboolean pref_start_app,
+ gboolean pref_ignore,
+ gboolean pref_open_folder)
+{
+ char **x_content_start_app;
+ char **x_content_ignore;
+ char **x_content_open_folder;
+
+ g_assert (x_content_type != NULL);
+
+ x_content_start_app = g_settings_get_strv (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_X_CONTENT_START_APP);
+ x_content_ignore = g_settings_get_strv (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_X_CONTENT_IGNORE);
+ x_content_open_folder = g_settings_get_strv (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_X_CONTENT_OPEN_FOLDER);
+
+ x_content_start_app = remove_elem_from_str_array (x_content_start_app, x_content_type);
+ if (pref_start_app) {
+ x_content_start_app = add_elem_to_str_array (x_content_start_app, x_content_type);
+ }
+ g_settings_set_strv (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_X_CONTENT_START_APP, (const gchar * const*) x_content_start_app);
+
+ x_content_ignore = remove_elem_from_str_array (x_content_ignore, x_content_type);
+ if (pref_ignore) {
+ x_content_ignore = add_elem_to_str_array (x_content_ignore, x_content_type);
+ }
+ g_settings_set_strv (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_X_CONTENT_IGNORE, (const gchar * const*) x_content_ignore);
+
+ x_content_open_folder = remove_elem_from_str_array (x_content_open_folder, x_content_type);
+ if (pref_open_folder) {
+ x_content_open_folder = add_elem_to_str_array (x_content_open_folder, x_content_type);
+ }
+ g_settings_set_strv (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_X_CONTENT_OPEN_FOLDER, (const gchar * const*) x_content_open_folder);
+
+ g_strfreev (x_content_open_folder);
+ g_strfreev (x_content_ignore);
+ g_strfreev (x_content_start_app);
+
+}
+
+static void
+custom_item_activated_cb (GtkAppChooserButton *button,
+ const gchar *item,
+ gpointer user_data)
+{
+ CcInfoPanel *self = user_data;
+ gchar *content_type;
+
+ content_type = gtk_app_chooser_get_content_type (GTK_APP_CHOOSER (button));
+
+ if (g_strcmp0 (item, CUSTOM_ITEM_ASK) == 0) {
+ autorun_set_preferences (self, content_type,
+ FALSE, FALSE, FALSE);
+ } else if (g_strcmp0 (item, CUSTOM_ITEM_OPEN_FOLDER) == 0) {
+ autorun_set_preferences (self, content_type,
+ FALSE, FALSE, TRUE);
+ } else if (g_strcmp0 (item, CUSTOM_ITEM_DO_NOTHING) == 0) {
+ autorun_set_preferences (self, content_type,
+ FALSE, TRUE, FALSE);
+ }
+
+ g_free (content_type);
+}
+
+static void
+combo_box_changed_cb (GtkComboBox *combo_box,
+ gpointer user_data)
+{
+ CcInfoPanel *self = user_data;
+ GAppInfo *info;
+ gchar *content_type;
+
+ info = gtk_app_chooser_get_app_info (GTK_APP_CHOOSER (combo_box));
+
+ if (info == NULL)
+ return;
+
+ content_type = gtk_app_chooser_get_content_type (GTK_APP_CHOOSER (combo_box));
+ autorun_set_preferences (self, content_type,
+ TRUE, FALSE, FALSE);
+ g_app_info_set_as_default_for_type (info, content_type, NULL);
+
+ g_object_unref (info);
+ g_free (content_type);
+}
+
+static void
+prepare_combo_box (CcInfoPanel *self,
+ GtkWidget *combo_box,
+ const gchar *heading)
+{
+ GtkAppChooserButton *app_chooser = GTK_APP_CHOOSER_BUTTON (combo_box);
+ gboolean pref_ask;
+ gboolean pref_start_app;
+ gboolean pref_ignore;
+ gboolean pref_open_folder;
+ GAppInfo *info;
+ gchar *content_type;
+
+ content_type = gtk_app_chooser_get_content_type (GTK_APP_CHOOSER (app_chooser));
+
+ /* fetch preferences for this content type */
+ autorun_get_preferences (self, content_type,
+ &pref_start_app, &pref_ignore, &pref_open_folder);
+ pref_ask = !pref_start_app && !pref_ignore && !pref_open_folder;
+
+ info = gtk_app_chooser_get_app_info (GTK_APP_CHOOSER (combo_box));
+
+ /* append the separator only if we have >= 1 apps in the chooser */
+ if (info != NULL) {
+ gtk_app_chooser_button_append_separator (app_chooser);
+ g_object_unref (info);
+ }
+
+ gtk_app_chooser_button_append_custom_item (app_chooser, CUSTOM_ITEM_ASK,
+ _("Ask what to do"),
+ NULL);
+
+ gtk_app_chooser_button_append_custom_item (app_chooser, CUSTOM_ITEM_DO_NOTHING,
+ _("Do nothing"),
+ NULL);
+
+ gtk_app_chooser_button_append_custom_item (app_chooser, CUSTOM_ITEM_OPEN_FOLDER,
+ _("Open folder"),
+ NULL);
+
+ gtk_app_chooser_button_set_show_dialog_item (app_chooser, TRUE);
+ gtk_app_chooser_button_set_heading (app_chooser, _(heading));
+
+ if (pref_ask) {
+ gtk_app_chooser_button_set_active_custom_item (app_chooser, CUSTOM_ITEM_ASK);
+ } else if (pref_ignore) {
+ gtk_app_chooser_button_set_active_custom_item (app_chooser, CUSTOM_ITEM_DO_NOTHING);
+ } else if (pref_open_folder) {
+ gtk_app_chooser_button_set_active_custom_item (app_chooser, CUSTOM_ITEM_OPEN_FOLDER);
+ }
+
+ g_signal_connect (app_chooser, "changed",
+ G_CALLBACK (combo_box_changed_cb), self);
+ g_signal_connect (app_chooser, "custom-item-activated",
+ G_CALLBACK (custom_item_activated_cb), self);
+
+ g_free (content_type);
+}
+
+static void
+other_type_combo_box_changed (GtkComboBox *combo_box,
+ CcInfoPanel *self)
+{
+ GtkTreeIter iter;
+ GtkTreeModel *model;
+ char *x_content_type;
+ GtkWidget *action_container;
+
+ x_content_type = NULL;
+
+ if (!gtk_combo_box_get_active_iter (combo_box, &iter)) {
+ return;
+ }
+
+ model = gtk_combo_box_get_model (combo_box);
+ if (model == NULL) {
+ return;
+ }
+
+ gtk_tree_model_get (model, &iter,
+ 2, &x_content_type,
+ -1);
+
+ action_container = GTK_WIDGET (gtk_builder_get_object (self->priv->builder,
+ "media_other_action_container"));
+ if (self->priv->other_application_combo != NULL) {
+ gtk_widget_destroy (self->priv->other_application_combo);
+ }
+
+ self->priv->other_application_combo = gtk_app_chooser_button_new (x_content_type);
+ gtk_box_pack_start (GTK_BOX (action_container), self->priv->other_application_combo, TRUE, TRUE, 0);
+ prepare_combo_box (self, self->priv->other_application_combo, NULL);
+ gtk_widget_show (self->priv->other_application_combo);
+
+ g_free (x_content_type);
+}
+
+static void
+on_extra_options_dialog_response (GtkWidget *dialog,
+ int response,
+ CcInfoPanel *self)
+{
+ gtk_widget_hide (dialog);
+
+ if (self->priv->other_application_combo != NULL) {
+ gtk_widget_destroy (self->priv->other_application_combo);
+ self->priv->other_application_combo = NULL;
+ }
+}
+
+static void
+on_extra_options_button_clicked (GtkWidget *button,
+ CcInfoPanel *self)
+{
+ GtkWidget *dialog;
+ GtkWidget *combo_box;
+
+ dialog = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "extra_options_dialog"));
+ combo_box = GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "media_other_type_combobox"));
+ gtk_window_set_transient_for (GTK_WINDOW (dialog),
+ GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self))));
+ gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
+ g_signal_connect (dialog,
+ "response",
+ G_CALLBACK (on_extra_options_dialog_response),
+ self);
+ /* update other_application_combo */
+ other_type_combo_box_changed (GTK_COMBO_BOX (combo_box), self);
+ gtk_window_present (GTK_WINDOW (dialog));
+}
+
+static void
+info_panel_setup_media (CcInfoPanel *self)
+{
+ guint n;
+ GList *l, *content_types;
+ GtkWidget *other_type_combo_box;
+ GtkWidget *extras_button;
+ GtkListStore *other_type_list_store;
+ GtkCellRenderer *renderer;
+ GtkTreeIter iter;
+ GtkBuilder *builder = self->priv->builder;
+
+ struct {
+ const gchar *widget_name;
+ const gchar *content_type;
+ const gchar *heading;
+ } const defs[] = {
+ { "media_audio_cdda_combobox", "x-content/audio-cdda", N_("Select an application for audio CDs") },
+ { "media_video_dvd_combobox", "x-content/video-dvd", N_("Select an application for video DVDs") },
+ { "media_music_player_combobox", "x-content/audio-player", N_("Select an application to run when a music player is connected") },
+ { "media_dcf_combobox", "x-content/image-dcf", N_("Select an application to run when a camera is connected") },
+ { "media_software_combobox", "x-content/software", N_("Select an application for software CDs") },
+ };
+
+ struct {
+ const gchar *content_type;
+ const gchar *description;
+ } const other_defs[] = {
+ /* translators: these strings are duplicates of shared-mime-info
+ * strings, just here to fix capitalization of the English originals.
+ * If the shared-mime-info translation works for your language,
+ * simply leave these untranslated.
+ */
+ { "x-content/audio-dvd", N_("audio DVD") },
+ { "x-content/blank-bd", N_("blank Blu-ray disc") },
+ { "x-content/blank-cd", N_("blank CD disc") },
+ { "x-content/blank-dvd", N_("blank DVD disc") },
+ { "x-content/blank-hddvd", N_("blank HD DVD disc") },
+ { "x-content/video-bluray", N_("Blu-ray video disc") },
+ { "x-content/ebook-reader", N_("e-book reader") },
+ { "x-content/video-hddvd", N_("HD DVD video disc") },
+ { "x-content/image-picturecd", N_("Picture CD") },
+ { "x-content/video-svcd", N_("Super Video CD") },
+ { "x-content/video-vcd", N_("Video CD") }
+ };
+
+ for (n = 0; n < G_N_ELEMENTS (defs); n++) {
+ prepare_combo_box (self,
+ GTK_WIDGET (gtk_builder_get_object (builder, defs[n].widget_name)),
+ defs[n].heading);
+ }
+
+ other_type_combo_box = GTK_WIDGET (gtk_builder_get_object (builder, "media_other_type_combobox"));
+
+ other_type_list_store = gtk_list_store_new (3,
+ G_TYPE_ICON,
+ G_TYPE_STRING,
+ G_TYPE_STRING);
+
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (other_type_list_store),
+ 1, GTK_SORT_ASCENDING);
+
+
+ content_types = g_content_types_get_registered ();
+
+ for (l = content_types; l != NULL; l = l->next) {
+ char *content_type = l->data;
+ char *description = NULL;
+ GIcon *icon;
+
+ if (!g_str_has_prefix (content_type, "x-content/"))
+ continue;
+
+ for (n = 0; n < G_N_ELEMENTS (defs); n++) {
+ if (g_content_type_is_a (content_type, defs[n].content_type)) {
+ goto skip;
+ }
+ }
+
+ for (n = 0; n < G_N_ELEMENTS (other_defs); n++) {
+ if (strcmp (content_type, other_defs[n].content_type) == 0) {
+ const gchar *s = other_defs[n].description;
+ if (s == _(s))
+ description = g_content_type_get_description (content_type);
+ else
+ description = g_strdup (_(s));
+
+ break;
+ }
+ }
+
+ gtk_list_store_append (other_type_list_store, &iter);
+ icon = g_content_type_get_icon (content_type);
+
+ gtk_list_store_set (other_type_list_store, &iter,
+ 0, icon,
+ 1, description,
+ 2, content_type,
+ -1);
+ g_free (description);
+ g_object_unref (icon);
+ skip:
+ ;
+ }
+
+ g_list_free_full (content_types, g_free);
+
+ gtk_combo_box_set_model (GTK_COMBO_BOX (other_type_combo_box),
+ GTK_TREE_MODEL (other_type_list_store));
+
+ renderer = gtk_cell_renderer_pixbuf_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (other_type_combo_box), renderer, FALSE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (other_type_combo_box), renderer,
+ "gicon", 0,
+ NULL);
+
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (other_type_combo_box), renderer, TRUE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (other_type_combo_box), renderer,
+ "text", 1,
+ NULL);
+
+ g_signal_connect (other_type_combo_box,
+ "changed",
+ G_CALLBACK (other_type_combo_box_changed),
+ self);
+
+ gtk_combo_box_set_active (GTK_COMBO_BOX (other_type_combo_box), 0);
+
+ extras_button = GTK_WIDGET (gtk_builder_get_object (builder, "extra_options_button"));
+ g_signal_connect (extras_button,
+ "clicked",
+ G_CALLBACK (on_extra_options_button_clicked),
+ self);
+
+ g_settings_bind (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_NEVER,
+ gtk_builder_get_object (self->priv->builder, "media_autorun_never_checkbutton"),
+ "active",
+ G_SETTINGS_BIND_DEFAULT);
+
+ g_settings_bind (self->priv->media_settings,
+ PREF_MEDIA_AUTORUN_NEVER,
+ GTK_WIDGET (gtk_builder_get_object (self->priv->builder, "media_handling_vbox")),
+ "sensitive",
+ G_SETTINGS_BIND_INVERT_BOOLEAN);
+}
+
static void
info_panel_setup_selector (CcInfoPanel *self)
{
@@ -1004,6 +1505,11 @@ info_panel_setup_selector (CcInfoPanel *self)
gtk_list_store_append (model, &iter);
gtk_list_store_set (model, &iter, section_name_column,
+ _("Removable Media"),
+ -1);
+
+ gtk_list_store_append (model, &iter);
+ gtk_list_store_set (model, &iter, section_name_column,
_("Graphics"),
-1);
@@ -1378,6 +1884,7 @@ cc_info_panel_init (CcInfoPanel *self)
self->priv->builder = gtk_builder_new ();
self->priv->session_settings = g_settings_new (GNOME_SESSION_MANAGER_SCHEMA);
+ self->priv->media_settings = g_settings_new (MEDIA_HANDLING_SCHEMA);
self->priv->session_bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
@@ -1424,6 +1931,7 @@ cc_info_panel_init (CcInfoPanel *self)
info_panel_setup_selector (self);
info_panel_setup_overview (self);
info_panel_setup_default_apps (self);
+ info_panel_setup_media (self);
info_panel_setup_graphics (self);
}
diff --git a/panels/info/gnome-info-panel.desktop.in.in b/panels/info/gnome-info-panel.desktop.in.in
index bb080f9..fcf9c78 100644
--- a/panels/info/gnome-info-panel.desktop.in.in
+++ b/panels/info/gnome-info-panel.desktop.in.in
@@ -16,4 +16,4 @@ X-GNOME-Settings-Panel=info
# Translators: those are keywords for the System Information panel
# "Preferred Applications" is the old name for the preference, so make
# sure that you use the same "translation" for those keywords
-_X-GNOME-Keywords=device;system;information;memory;processor;version;default;application;fallback;preferred;
+_X-GNOME-Keywords=device;system;information;memory;processor;version;default;application;fallback;preferred;cd;dvd;usb;audio;video;disc;removable;media;autorun;
diff --git a/panels/info/info.ui b/panels/info/info.ui
index 6cc8efc..0d88b57 100644
--- a/panels/info/info.ui
+++ b/panels/info/info.ui
@@ -1,6 +1,187 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="2.16"/>
+ <object class="GtkDialog" id="extra_options_dialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">10</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="extras-dialog-vbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <child>
+ <object class="GtkVBox" id="vbox50">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkLabel" id="label61">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Select how other media should be handled</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment20">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkVBox" id="vbox51">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkTable" id="table5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">6</property>
+ <property name="row_spacing">10</property>
+ <child>
+ <object class="GtkComboBox" id="media_other_type_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label64">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Acti_on:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">media_other_action_container</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="media_other_action_container">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label63">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Type:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">media_other_type_combobox</property>
+ </object>
+ <packing>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">button1</action-widget>
+ </action-widgets>
+ </object>
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<child>
@@ -615,6 +796,317 @@
</packing>
</child>
<child>
+ <object class="GtkHBox" id="media_preferences_vbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkVBox" id="media_preferences_vbox3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">10</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkVBox" id="media_handling_vbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">10</property>
+ <property name="valign">start</property>
+ <property name="vexpand">False</property>
+ <child>
+ <object class="GtkVBox" id="vbox44">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkLabel" id="label42">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Select how media should be handled</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment18">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkVBox" id="vbox52">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkTable" id="table4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="n_rows">5</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">6</property>
+ <property name="row_spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label44">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">CD _audio:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">media_audio_cdda_combobox</property>
+ </object>
+ <packing>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label50">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_DVD video:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">media_video_dvd_combobox</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAppChooserButton" id="media_audio_cdda_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="content_type">x-content/audio-cdda</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAppChooserButton" id="media_video_dvd_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="content_type">x-content/video-dvd</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label54">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Music player:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">media_music_player_combobox</property>
+ </object>
+ <packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAppChooserButton" id="media_music_player_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="content_type">x-content/audio-player</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label59">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Photos:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">media_dcf_combobox</property>
+ </object>
+ <packing>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAppChooserButton" id="media_dcf_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="content_type">x-content/image-dcf</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label57">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Software:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">media_software_combobox</property>
+ </object>
+ <packing>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAppChooserButton" id="media_software_combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="content_type">x-content/software</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options">GTK_FILL</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkButton" id="extra_options_button">
+ <property name="label" translatable="yes">_Other Media...</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="media_autorun_never_checkbutton">
+ <property name="label" translatable="yes">_Never prompt or start programs on media insertion</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ <property name="valign">end</property>
+ <property name="vexpand">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label16">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Removable Media</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkAlignment" id="graphics_detail_container">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -763,7 +1255,7 @@
</child>
</object>
<packing>
- <property name="position">2</property>
+ <property name="position">3</property>
</packing>
</child>
<child type="tab">
@@ -773,7 +1265,7 @@
<property name="label" translatable="yes">Graphics</property>
</object>
<packing>
- <property name="position">2</property>
+ <property name="position">3</property>
<property name="tab_fill">False</property>
</packing>
</child>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 476c8ee..971afa2 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -27,9 +27,6 @@ panels/keyboard/eggcellrendererkeys.c
panels/keyboard/gnome-keyboard-panel.desktop.in.in
panels/keyboard/keyboard-shortcuts.c
[type: gettext/glade]panels/keyboard/gnome-keyboard-panel.ui
-panels/media/cc-media-panel.c
-[type: gettext/glade]panels/media/gnome-media-properties.ui
-panels/media/gnome-media-panel.desktop.in.in
panels/online-accounts/cc-online-accounts-panel.c
panels/online-accounts/gnome-online-accounts-panel.desktop.in.in
[type: gettext/glade]panels/online-accounts/online-accounts.ui
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index 2d424e1..29afcf4 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -7,7 +7,6 @@ panels/display/gnome-display-panel.desktop.in
panels/info/gnome-screen-panel.desktop.in
panels/info/gnome-info-panel.desktop.in
panels/keyboard/gnome-keyboard-panel.desktop.in
-panels/media/gnome-media-panel.desktop.in
panels/power/gnome-power-panel.desktop.in
panels/color/gnome-color-panel.desktop.in
panels/printers/gnome-printers-panel.desktop.in
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]