info: Split removable-media into its own panel

This commit is contained in:
Robert Ancell 2019-08-12 16:18:46 +12:00 committed by Robert Ancell
parent e743b8efd7
commit 1f34dd67dd
11 changed files with 134 additions and 91 deletions

View file

@ -2,7 +2,6 @@
<gresources> <gresources>
<gresource prefix="/org/gnome/control-center/info"> <gresource prefix="/org/gnome/control-center/info">
<file preprocess="xml-stripblanks">cc-info-overview-panel.ui</file> <file preprocess="xml-stripblanks">cc-info-overview-panel.ui</file>
<file preprocess="xml-stripblanks">cc-info-removable-media-panel.ui</file>
<file>GnomeLogoVerticalMedium.svg</file> <file>GnomeLogoVerticalMedium.svg</file>
</gresource> </gresource>
</gresources> </gresources>

View file

@ -1,20 +1,16 @@
panel_names = [ desktop = 'gnome-@0@-panel.desktop'.format('info-overview')
'info-overview',
'removable-media'
]
panels_list += panel_names panels_list += 'info-overview'
foreach name: panel_names desktop = 'gnome-info-overview-panel.desktop'
desktop = 'gnome-' + name + '-panel.desktop'
desktop_in = configure_file( desktop_in = configure_file(
input: desktop + '.in.in', input: desktop + '.in.in',
output: desktop + '.in', output: desktop + '.in',
configuration: desktop_conf configuration: desktop_conf
) )
i18n.merge_file( i18n.merge_file(
desktop, desktop,
type: 'desktop', type: 'desktop',
input: desktop_in, input: desktop_in,
@ -22,8 +18,7 @@ foreach name: panel_names
po_dir: po_dir, po_dir: po_dir,
install: true, install: true,
install_dir: control_center_desktopdir install_dir: control_center_desktopdir
) )
endforeach
cflags += [ cflags += [
'-DBINDIR="@0@"'.format(control_center_bindir), '-DBINDIR="@0@"'.format(control_center_bindir),
@ -33,14 +28,12 @@ cflags += [
sources = files( sources = files(
'cc-info-overview-panel.c', 'cc-info-overview-panel.c',
'cc-info-removable-media-panel.c',
'info-cleanup.c' 'info-cleanup.c'
) )
resource_data = files( resource_data = files(
'GnomeLogoVerticalMedium.svg', 'GnomeLogoVerticalMedium.svg',
'cc-info-overview-panel.ui', 'cc-info-overview-panel.ui'
'cc-info-removable-media-panel.ui'
) )
sources += gnome.compile_resources( sources += gnome.compile_resources(
@ -52,7 +45,6 @@ sources += gnome.compile_resources(
) )
deps = common_deps + [ deps = common_deps + [
polkit_gobject_dep,
dependency('udisks2', version: '>= 2.1.8'), dependency('udisks2', version: '>= 2.1.8'),
dependency('libgtop-2.0') dependency('libgtop-2.0')
] ]

View file

@ -16,6 +16,7 @@ panels = [
'printers', 'printers',
'privacy', 'privacy',
'region', 'region',
'removable-media',
'search', 'search',
'sharing', 'sharing',
'sound', 'sound',

View file

@ -21,8 +21,7 @@
#include <config.h> #include <config.h>
#include "cc-info-resources.h" #include "cc-removable-media-resources.h"
#include "info-cleanup.h"
#include <glib.h> #include <glib.h>
#include <glib/gi18n.h> #include <glib/gi18n.h>
@ -42,7 +41,7 @@
#include <gdk/gdkx.h> #include <gdk/gdkx.h>
#endif #endif
#include "cc-info-removable-media-panel.h" #include "cc-removable-media-panel.h"
/* Autorun options */ /* Autorun options */
@ -57,7 +56,7 @@
#define MEDIA_HANDLING_SCHEMA "org.gnome.desktop.media-handling" #define MEDIA_HANDLING_SCHEMA "org.gnome.desktop.media-handling"
struct _CcInfoRemovableMediaPanel struct _CcRemovableMediaPanel
{ {
CcPanel parent_instance; CcPanel parent_instance;
@ -82,7 +81,7 @@ struct _CcInfoRemovableMediaPanel
}; };
G_DEFINE_TYPE (CcInfoRemovableMediaPanel, cc_info_removable_media_panel, CC_TYPE_PANEL) G_DEFINE_TYPE (CcRemovableMediaPanel, cc_removable_media_panel, CC_TYPE_PANEL)
static void static void
ellipsize_cell_layout (GtkCellLayout *cell_layout) ellipsize_cell_layout (GtkCellLayout *cell_layout)
@ -158,7 +157,7 @@ media_panel_g_strv_find (char **strv,
} }
static void static void
autorun_get_preferences (CcInfoRemovableMediaPanel *self, autorun_get_preferences (CcRemovableMediaPanel *self,
const char *x_content_type, const char *x_content_type,
gboolean *pref_start_app, gboolean *pref_start_app,
gboolean *pref_ignore, gboolean *pref_ignore,
@ -193,7 +192,7 @@ autorun_get_preferences (CcInfoRemovableMediaPanel *self,
} }
static void static void
autorun_set_preferences (CcInfoRemovableMediaPanel *self, autorun_set_preferences (CcRemovableMediaPanel *self,
const char *x_content_type, const char *x_content_type,
gboolean pref_start_app, gboolean pref_start_app,
gboolean pref_ignore, gboolean pref_ignore,
@ -240,7 +239,7 @@ custom_item_activated_cb (GtkAppChooserButton *button,
const gchar *item, const gchar *item,
gpointer user_data) gpointer user_data)
{ {
CcInfoRemovableMediaPanel *self = user_data; CcRemovableMediaPanel *self = user_data;
g_autofree gchar *content_type = NULL; g_autofree gchar *content_type = NULL;
content_type = gtk_app_chooser_get_content_type (GTK_APP_CHOOSER (button)); content_type = gtk_app_chooser_get_content_type (GTK_APP_CHOOSER (button));
@ -261,7 +260,7 @@ static void
combo_box_changed_cb (GtkComboBox *combo_box, combo_box_changed_cb (GtkComboBox *combo_box,
gpointer user_data) gpointer user_data)
{ {
CcInfoRemovableMediaPanel *self = user_data; CcRemovableMediaPanel *self = user_data;
g_autoptr(GAppInfo) info = NULL; g_autoptr(GAppInfo) info = NULL;
g_autofree gchar *content_type = NULL; g_autofree gchar *content_type = NULL;
@ -277,7 +276,7 @@ combo_box_changed_cb (GtkComboBox *combo_box,
} }
static void static void
prepare_combo_box (CcInfoRemovableMediaPanel *self, prepare_combo_box (CcRemovableMediaPanel *self,
GtkWidget *combo_box, GtkWidget *combo_box,
const gchar *heading) const gchar *heading)
{ {
@ -336,7 +335,7 @@ prepare_combo_box (CcInfoRemovableMediaPanel *self,
static void static void
other_type_combo_box_changed (GtkComboBox *combo_box, other_type_combo_box_changed (GtkComboBox *combo_box,
CcInfoRemovableMediaPanel *self) CcRemovableMediaPanel *self)
{ {
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel *model; GtkTreeModel *model;
@ -377,7 +376,7 @@ other_type_combo_box_changed (GtkComboBox *combo_box,
static void static void
on_extra_options_dialog_response (GtkWidget *dialog, on_extra_options_dialog_response (GtkWidget *dialog,
int response, int response,
CcInfoRemovableMediaPanel *self) CcRemovableMediaPanel *self)
{ {
gtk_widget_hide (dialog); gtk_widget_hide (dialog);
@ -389,7 +388,7 @@ on_extra_options_dialog_response (GtkWidget *dialog,
static void static void
on_extra_options_button_clicked (GtkWidget *button, on_extra_options_button_clicked (GtkWidget *button,
CcInfoRemovableMediaPanel *self) CcRemovableMediaPanel *self)
{ {
GtkWidget *combo_box; GtkWidget *combo_box;
@ -412,11 +411,11 @@ on_extra_options_button_clicked (GtkWidget *button,
gtk_window_present (GTK_WINDOW (self->media_dialog)); gtk_window_present (GTK_WINDOW (self->media_dialog));
} }
#define OFFSET(x) (G_STRUCT_OFFSET (CcInfoRemovableMediaPanel, x)) #define OFFSET(x) (G_STRUCT_OFFSET (CcRemovableMediaPanel, x))
#define WIDGET_FROM_OFFSET(x) (G_STRUCT_MEMBER (GtkWidget*, self, x)) #define WIDGET_FROM_OFFSET(x) (G_STRUCT_MEMBER (GtkWidget*, self, x))
static void static void
info_panel_setup_media (CcInfoRemovableMediaPanel *self) info_panel_setup_media (CcRemovableMediaPanel *self)
{ {
guint n; guint n;
GList *l, *content_types; GList *l, *content_types;
@ -558,56 +557,56 @@ info_panel_setup_media (CcInfoRemovableMediaPanel *self)
static void static void
cc_info_removable_media_panel_finalize (GObject *object) cc_removable_media_panel_finalize (GObject *object)
{ {
CcInfoRemovableMediaPanel *self = CC_INFO_REMOVABLE_MEDIA_PANEL (object); CcRemovableMediaPanel *self = CC_REMOVABLE_MEDIA_PANEL (object);
g_clear_object (&self->media_settings); g_clear_object (&self->media_settings);
G_OBJECT_CLASS (cc_info_removable_media_panel_parent_class)->finalize (object); G_OBJECT_CLASS (cc_removable_media_panel_parent_class)->finalize (object);
} }
static void static void
cc_info_removable_media_panel_dispose (GObject *object) cc_removable_media_panel_dispose (GObject *object)
{ {
CcInfoRemovableMediaPanel *self = CC_INFO_REMOVABLE_MEDIA_PANEL (object); CcRemovableMediaPanel *self = CC_REMOVABLE_MEDIA_PANEL (object);
g_clear_pointer (&self->media_dialog, gtk_widget_destroy); g_clear_pointer (&self->media_dialog, gtk_widget_destroy);
G_OBJECT_CLASS (cc_info_removable_media_panel_parent_class)->dispose (object); G_OBJECT_CLASS (cc_removable_media_panel_parent_class)->dispose (object);
} }
static void static void
cc_info_removable_media_panel_class_init (CcInfoRemovableMediaPanelClass *klass) cc_removable_media_panel_class_init (CcRemovableMediaPanelClass *klass)
{ {
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->finalize = cc_info_removable_media_panel_finalize; object_class->finalize = cc_removable_media_panel_finalize;
object_class->dispose = cc_info_removable_media_panel_dispose; object_class->dispose = cc_removable_media_panel_dispose;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/info/cc-info-removable-media-panel.ui"); gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/removable-media/cc-removable-media-panel.ui");
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_handling_vbox); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_handling_vbox);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_autorun_never_checkbutton); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_autorun_never_checkbutton);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, extra_options_button); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, extra_options_button);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_audio_cdda_combobox); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_audio_cdda_combobox);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_video_dvd_combobox); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_video_dvd_combobox);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_music_player_combobox); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_music_player_combobox);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_dcf_combobox); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_dcf_combobox);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_software_combobox); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_software_combobox);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_dialog); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_dialog);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_other_type_combobox); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_other_type_combobox);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_other_action_label); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_other_action_label);
gtk_widget_class_bind_template_child (widget_class, CcInfoRemovableMediaPanel, media_other_action_container); gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_other_action_container);
} }
static void static void
cc_info_removable_media_panel_init (CcInfoRemovableMediaPanel *self) cc_removable_media_panel_init (CcRemovableMediaPanel *self)
{ {
g_resources_register (cc_info_get_resource ()); g_resources_register (cc_removable_media_get_resource ());
gtk_widget_init_template (GTK_WIDGET (self)); gtk_widget_init_template (GTK_WIDGET (self));
self->media_settings = g_settings_new (MEDIA_HANDLING_SCHEMA); self->media_settings = g_settings_new (MEDIA_HANDLING_SCHEMA);

View file

@ -17,17 +17,17 @@
* *
*/ */
#ifndef CC_INFO_REMOVABLE_MEDIA_PANEL_H #ifndef CC_REMOVABLE_MEDIA_PANEL_H
#define CC_INFO_REMOVABLE_MEDIA_PANEL_H #define CC_REMOVABLE_MEDIA_PANEL_H
#include <shell/cc-panel.h> #include <shell/cc-panel.h>
G_BEGIN_DECLS G_BEGIN_DECLS
#define CC_TYPE_INFO_REMOVABLE_MEDIA_PANEL (cc_info_removable_media_panel_get_type ()) #define CC_TYPE_REMOVABLE_MEDIA_PANEL (cc_removable_media_panel_get_type ())
G_DECLARE_FINAL_TYPE (CcInfoRemovableMediaPanel, cc_info_removable_media_panel, CC, INFO_REMOVABLE_MEDIA_PANEL, CcPanel) G_DECLARE_FINAL_TYPE (CcRemovableMediaPanel, cc_removable_media_panel, CC, REMOVABLE_MEDIA_PANEL, CcPanel)
G_END_DECLS G_END_DECLS
#endif /* CC_INFO_REMOVABLE_MEDIA_PANEL_H */ #endif /* CC_REMOVABLE_MEDIA_PANEL_H */

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<interface> <interface>
<!-- interface-requires gtk+ 3.0 --> <!-- interface-requires gtk+ 3.0 -->
<template class="CcInfoRemovableMediaPanel" parent="CcPanel"> <template class="CcRemovableMediaPanel" parent="CcPanel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="expand">True</property> <property name="expand">True</property>

View file

@ -0,0 +1,46 @@
panels_list += cappletname
desktop = 'gnome-@0@-panel.desktop'.format(cappletname)
desktop_in = configure_file(
input: desktop + '.in.in',
output: desktop + '.in',
configuration: desktop_conf
)
i18n.merge_file(
desktop,
type: 'desktop',
input: desktop_in,
output: desktop,
po_dir: po_dir,
install: true,
install_dir: control_center_desktopdir
)
sources = files(
'cc-removable-media-panel.c'
)
resource_data = files(
'cc-removable-media-panel.ui'
)
sources += gnome.compile_resources(
'cc-' + cappletname + '-resources',
cappletname + '.gresource.xml',
c_name: 'cc_' + cappletname.underscorify (),
dependencies: resource_data,
export: true
)
deps = common_deps + [
dependency('libgtop-2.0')
]
panels_libs += static_library(
cappletname,
sources: sources,
include_directories: [ top_inc, common_inc ],
dependencies: deps,
c_args: cflags
)

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/control-center/removable-media">
<file preprocess="xml-stripblanks">cc-removable-media-panel.ui</file>
</gresource>
</gresources>

View file

@ -46,10 +46,7 @@ panels/display/cc-night-light-page.ui
panels/display/gnome-display-panel.desktop.in.in panels/display/gnome-display-panel.desktop.in.in
panels/info/cc-info-overview-panel.c panels/info/cc-info-overview-panel.c
panels/info/cc-info-overview-panel.ui panels/info/cc-info-overview-panel.ui
panels/info/cc-info-removable-media-panel.c
panels/info/cc-info-removable-media-panel.ui
panels/info/gnome-info-overview-panel.desktop.in.in panels/info/gnome-info-overview-panel.desktop.in.in
panels/info/gnome-removable-media-panel.desktop.in.in
panels/keyboard/00-multimedia.xml.in panels/keyboard/00-multimedia.xml.in
panels/keyboard/01-input-sources.xml.in panels/keyboard/01-input-sources.xml.in
panels/keyboard/01-launchers.xml.in panels/keyboard/01-launchers.xml.in
@ -172,6 +169,9 @@ panels/region/cc-input-chooser.ui
panels/region/cc-region-panel.c panels/region/cc-region-panel.c
panels/region/cc-region-panel.ui panels/region/cc-region-panel.ui
panels/region/gnome-region-panel.desktop.in.in panels/region/gnome-region-panel.desktop.in.in
panels/removable-media/cc-removable-media-panel.c
panels/removable-media/cc-removable-media-panel.ui
panels/removable-media/gnome-removable-media-panel.desktop.in.in
panels/search/cc-search-locations-dialog.c panels/search/cc-search-locations-dialog.c
panels/search/cc-search-panel.c panels/search/cc-search-panel.c
panels/search/cc-search-panel-row.ui panels/search/cc-search-panel-row.ui

View file

@ -41,7 +41,6 @@ extern GType cc_date_time_panel_get_type (void);
extern GType cc_default_apps_panel_get_type (void); extern GType cc_default_apps_panel_get_type (void);
extern GType cc_display_panel_get_type (void); extern GType cc_display_panel_get_type (void);
extern GType cc_info_overview_panel_get_type (void); extern GType cc_info_overview_panel_get_type (void);
extern GType cc_info_removable_media_panel_get_type (void);
extern GType cc_keyboard_panel_get_type (void); extern GType cc_keyboard_panel_get_type (void);
extern GType cc_mouse_panel_get_type (void); extern GType cc_mouse_panel_get_type (void);
#ifdef BUILD_NETWORK #ifdef BUILD_NETWORK
@ -54,6 +53,7 @@ extern GType cc_power_panel_get_type (void);
extern GType cc_printers_panel_get_type (void); extern GType cc_printers_panel_get_type (void);
extern GType cc_privacy_panel_get_type (void); extern GType cc_privacy_panel_get_type (void);
extern GType cc_region_panel_get_type (void); extern GType cc_region_panel_get_type (void);
extern GType cc_removable_media_panel_get_type (void);
extern GType cc_search_panel_get_type (void); extern GType cc_search_panel_get_type (void);
extern GType cc_sharing_panel_get_type (void); extern GType cc_sharing_panel_get_type (void);
extern GType cc_sound_panel_get_type (void); extern GType cc_sound_panel_get_type (void);
@ -94,7 +94,6 @@ static CcPanelLoaderVtable default_panels[] =
PANEL_TYPE("default-apps", cc_default_apps_panel_get_type, NULL), PANEL_TYPE("default-apps", cc_default_apps_panel_get_type, NULL),
PANEL_TYPE("display", cc_display_panel_get_type, NULL), PANEL_TYPE("display", cc_display_panel_get_type, NULL),
PANEL_TYPE("info-overview", cc_info_overview_panel_get_type, NULL), PANEL_TYPE("info-overview", cc_info_overview_panel_get_type, NULL),
PANEL_TYPE("removable-media", cc_info_removable_media_panel_get_type, NULL),
PANEL_TYPE("keyboard", cc_keyboard_panel_get_type, NULL), PANEL_TYPE("keyboard", cc_keyboard_panel_get_type, NULL),
PANEL_TYPE("mouse", cc_mouse_panel_get_type, NULL), PANEL_TYPE("mouse", cc_mouse_panel_get_type, NULL),
#ifdef BUILD_NETWORK #ifdef BUILD_NETWORK
@ -107,6 +106,7 @@ static CcPanelLoaderVtable default_panels[] =
PANEL_TYPE("printers", cc_printers_panel_get_type, NULL), PANEL_TYPE("printers", cc_printers_panel_get_type, NULL),
PANEL_TYPE("privacy", cc_privacy_panel_get_type, NULL), PANEL_TYPE("privacy", cc_privacy_panel_get_type, NULL),
PANEL_TYPE("region", cc_region_panel_get_type, NULL), PANEL_TYPE("region", cc_region_panel_get_type, NULL),
PANEL_TYPE("removable-media", cc_removable_media_panel_get_type, NULL),
PANEL_TYPE("search", cc_search_panel_get_type, NULL), PANEL_TYPE("search", cc_search_panel_get_type, NULL),
PANEL_TYPE("sharing", cc_sharing_panel_get_type, NULL), PANEL_TYPE("sharing", cc_sharing_panel_get_type, NULL),
PANEL_TYPE("sound", cc_sound_panel_get_type, NULL), PANEL_TYPE("sound", cc_sound_panel_get_type, NULL),