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>
<gresource prefix="/org/gnome/control-center/info">
<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>
</gresource>
</gresources>

View file

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

View file

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

View file

@ -21,8 +21,7 @@
#include <config.h>
#include "cc-info-resources.h"
#include "info-cleanup.h"
#include "cc-removable-media-resources.h"
#include <glib.h>
#include <glib/gi18n.h>
@ -42,7 +41,7 @@
#include <gdk/gdkx.h>
#endif
#include "cc-info-removable-media-panel.h"
#include "cc-removable-media-panel.h"
/* Autorun options */
@ -57,7 +56,7 @@
#define MEDIA_HANDLING_SCHEMA "org.gnome.desktop.media-handling"
struct _CcInfoRemovableMediaPanel
struct _CcRemovableMediaPanel
{
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
ellipsize_cell_layout (GtkCellLayout *cell_layout)
@ -158,11 +157,11 @@ media_panel_g_strv_find (char **strv,
}
static void
autorun_get_preferences (CcInfoRemovableMediaPanel *self,
const char *x_content_type,
gboolean *pref_start_app,
gboolean *pref_ignore,
gboolean *pref_open_folder)
autorun_get_preferences (CcRemovableMediaPanel *self,
const char *x_content_type,
gboolean *pref_start_app,
gboolean *pref_ignore,
gboolean *pref_open_folder)
{
g_auto(GStrv) x_content_start_app = NULL;
g_auto(GStrv) x_content_ignore = NULL;
@ -193,11 +192,11 @@ autorun_get_preferences (CcInfoRemovableMediaPanel *self,
}
static void
autorun_set_preferences (CcInfoRemovableMediaPanel *self,
const char *x_content_type,
gboolean pref_start_app,
gboolean pref_ignore,
gboolean pref_open_folder)
autorun_set_preferences (CcRemovableMediaPanel *self,
const char *x_content_type,
gboolean pref_start_app,
gboolean pref_ignore,
gboolean pref_open_folder)
{
g_auto(GStrv) x_content_start_app = NULL;
g_auto(GStrv) x_content_ignore = NULL;
@ -240,7 +239,7 @@ custom_item_activated_cb (GtkAppChooserButton *button,
const gchar *item,
gpointer user_data)
{
CcInfoRemovableMediaPanel *self = user_data;
CcRemovableMediaPanel *self = user_data;
g_autofree gchar *content_type = NULL;
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,
gpointer user_data)
{
CcInfoRemovableMediaPanel *self = user_data;
CcRemovableMediaPanel *self = user_data;
g_autoptr(GAppInfo) info = NULL;
g_autofree gchar *content_type = NULL;
@ -277,9 +276,9 @@ combo_box_changed_cb (GtkComboBox *combo_box,
}
static void
prepare_combo_box (CcInfoRemovableMediaPanel *self,
GtkWidget *combo_box,
const gchar *heading)
prepare_combo_box (CcRemovableMediaPanel *self,
GtkWidget *combo_box,
const gchar *heading)
{
GtkAppChooserButton *app_chooser = GTK_APP_CHOOSER_BUTTON (combo_box);
gboolean pref_ask;
@ -335,8 +334,8 @@ prepare_combo_box (CcInfoRemovableMediaPanel *self,
}
static void
other_type_combo_box_changed (GtkComboBox *combo_box,
CcInfoRemovableMediaPanel *self)
other_type_combo_box_changed (GtkComboBox *combo_box,
CcRemovableMediaPanel *self)
{
GtkTreeIter iter;
GtkTreeModel *model;
@ -375,9 +374,9 @@ other_type_combo_box_changed (GtkComboBox *combo_box,
}
static void
on_extra_options_dialog_response (GtkWidget *dialog,
int response,
CcInfoRemovableMediaPanel *self)
on_extra_options_dialog_response (GtkWidget *dialog,
int response,
CcRemovableMediaPanel *self)
{
gtk_widget_hide (dialog);
@ -388,8 +387,8 @@ on_extra_options_dialog_response (GtkWidget *dialog,
}
static void
on_extra_options_button_clicked (GtkWidget *button,
CcInfoRemovableMediaPanel *self)
on_extra_options_button_clicked (GtkWidget *button,
CcRemovableMediaPanel *self)
{
GtkWidget *combo_box;
@ -412,11 +411,11 @@ on_extra_options_button_clicked (GtkWidget *button,
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))
static void
info_panel_setup_media (CcInfoRemovableMediaPanel *self)
info_panel_setup_media (CcRemovableMediaPanel *self)
{
guint n;
GList *l, *content_types;
@ -558,56 +557,56 @@ info_panel_setup_media (CcInfoRemovableMediaPanel *self)
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_OBJECT_CLASS (cc_info_removable_media_panel_parent_class)->finalize (object);
G_OBJECT_CLASS (cc_removable_media_panel_parent_class)->finalize (object);
}
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_OBJECT_CLASS (cc_info_removable_media_panel_parent_class)->dispose (object);
G_OBJECT_CLASS (cc_removable_media_panel_parent_class)->dispose (object);
}
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);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->finalize = cc_info_removable_media_panel_finalize;
object_class->dispose = cc_info_removable_media_panel_dispose;
object_class->finalize = cc_removable_media_panel_finalize;
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, CcInfoRemovableMediaPanel, 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, media_handling_vbox);
gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_autorun_never_checkbutton);
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, CcInfoRemovableMediaPanel, 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, CcInfoRemovableMediaPanel, 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_audio_cdda_combobox);
gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_video_dvd_combobox);
gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_music_player_combobox);
gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_dcf_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, CcInfoRemovableMediaPanel, 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, CcInfoRemovableMediaPanel, media_other_action_container);
gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_dialog);
gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_other_type_combobox);
gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_other_action_label);
gtk_widget_class_bind_template_child (widget_class, CcRemovableMediaPanel, media_other_action_container);
}
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));
self->media_settings = g_settings_new (MEDIA_HANDLING_SCHEMA);

View file

@ -17,17 +17,17 @@
*
*/
#ifndef CC_INFO_REMOVABLE_MEDIA_PANEL_H
#define CC_INFO_REMOVABLE_MEDIA_PANEL_H
#ifndef CC_REMOVABLE_MEDIA_PANEL_H
#define CC_REMOVABLE_MEDIA_PANEL_H
#include <shell/cc-panel.h>
G_BEGIN_DECLS
#define CC_TYPE_INFO_REMOVABLE_MEDIA_PANEL (cc_info_removable_media_panel_get_type ())
G_DECLARE_FINAL_TYPE (CcInfoRemovableMediaPanel, cc_info_removable_media_panel, CC, INFO_REMOVABLE_MEDIA_PANEL, CcPanel)
#define CC_TYPE_REMOVABLE_MEDIA_PANEL (cc_removable_media_panel_get_type ())
G_DECLARE_FINAL_TYPE (CcRemovableMediaPanel, cc_removable_media_panel, CC, REMOVABLE_MEDIA_PANEL, CcPanel)
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"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
<template class="CcInfoRemovableMediaPanel" parent="CcPanel">
<template class="CcRemovableMediaPanel" parent="CcPanel">
<property name="visible">True</property>
<property name="can-focus">False</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/info/cc-info-overview-panel.c
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-removable-media-panel.desktop.in.in
panels/keyboard/00-multimedia.xml.in
panels/keyboard/01-input-sources.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.ui
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-panel.c
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_display_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_mouse_panel_get_type (void);
#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_privacy_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_sharing_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("display", cc_display_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("mouse", cc_mouse_panel_get_type, NULL),
#ifdef BUILD_NETWORK
@ -107,6 +106,7 @@ static CcPanelLoaderVtable default_panels[] =
PANEL_TYPE("printers", cc_printers_panel_get_type, NULL),
PANEL_TYPE("privacy", cc_privacy_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("sharing", cc_sharing_panel_get_type, NULL),
PANEL_TYPE("sound", cc_sound_panel_get_type, NULL),