gnome-control-center/panels/system/meson.build
Felipe Borges d52ec68f8d system: Add "Users" panel
This moves the UserAccounts panel to a page in the System panel.

This simplifies a lot of the existing code in the UserAccounts panel.

I did minimal changes to the sub dialogs so that those can be touched
in following changes, making it easier to review this one alone.

The main panel widget is now CcUsersPage, and is an AdwNavigationView
widget that has a default "current_user_page" page. Each page is a
CcUserPage (careful with the one-character difference between these
two classes).

Each CcUserPage has an associated ActUser object.
2024-01-08 13:59:26 +01:00

146 lines
3.9 KiB
Meson

panels_list += cappletname
desktop = 'gnome-@0@-panel.desktop'.format(cappletname)
i18n.merge_file(
type: 'desktop',
input: desktop + '.in',
output: desktop,
po_dir: po_dir,
install: true,
install_dir: control_center_desktopdir
)
polkit = 'org.gnome.controlcenter.user-accounts.policy'.format(cappletname)
i18n.merge_file(
input: 'users/' + polkit + '.in',
output: polkit,
po_dir: po_dir,
install: true,
install_dir: join_paths(control_center_datadir, 'polkit-1', 'actions')
)
sources = files(
'cc-system-panel.c',
'about/cc-about-page.c',
'about/cc-system-details-window.c',
'about/cc-info-entry.c',
'about/info-cleanup.c',
'datetime/cc-datetime-page.c',
'datetime/cc-tz-item.c',
'datetime/cc-tz-dialog.c',
'datetime/date-endian.c',
'datetime/tz.c',
'region/cc-region-page.c',
'region/cc-format-chooser.c',
'region/cc-format-preview.c',
'remote-desktop/cc-gnome-remote-desktop.c',
'remote-desktop/cc-remote-desktop-page.c',
'remote-desktop/cc-tls-certificate.c',
'remote-desktop/cc-systemd-service.c',
'users/cc-add-user-dialog.c',
'users/cc-avatar-chooser.c',
'users/cc-crop-area.c',
'users/cc-fingerprint-dialog.c',
'users/cc-fingerprint-manager.c',
'users/cc-password-dialog.c',
'users/cc-realm-manager.c',
'users/cc-user-page.c',
'users/cc-users-page.c',
'users/pw-utils.c',
'users/run-passwd.c',
'users/user-utils.c',
)
sources += gnome.compile_resources(
'cc-' + cappletname + '-resources',
cappletname + '.gresource.xml',
c_name : 'cc_' + cappletname,
export : true
)
enums_header = files(
gsettings_desktop_dep.get_variable(pkgconfig: 'prefix') + '/include/gsettings-desktop-schemas/gdesktop-enums.h',
'datetime/cc-datetime-page.h'
)
enums = 'gdesktop-enums-types'
sources += gnome.mkenums(
enums + '.h',
sources: enums_header,
fhead: '#pragma once\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n',
fprod: '/* enumerations from "@filename@" */\n',
vhead: 'GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define G_DESKTOP_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n',
ftail: 'G_END_DECLS\n'
)
sources += gnome.mkenums(
enums + '.c',
sources: enums_header,
fhead: '#include <gdesktop-enums.h>\n#include "gdesktop-enums-types.h"\n#include "datetime/cc-datetime-page.h"',
fprod: '\n/* enumerations from "@filename@" */',
vhead: 'GType\n@enum_name@_get_type (void)\n{\n static GType etype = 0;\n if (etype == 0) {\n static const G@Type@Value values[] = {',
vprod: ' { @VALUENAME@, "@VALUENAME@", "@valuenick@" },',
vtail: ' { 0, NULL, NULL }\n };\n etype = g_@type@_register_static ("@EnumName@", values);\n }\n return etype;\n}\n'
)
libsecret_dep = dependency('libsecret-1')
gnutls_dep = dependency('gnutls')
libgtop2 = dependency('libgtop-2.0')
udisks2 = dependency('udisks2', version: '>= 2.8.2')
# Kerberos support
krb_dep = dependency('krb5', required: false)
assert(krb_dep.found(), 'kerberos libraries not found in your path')
deps = common_deps + [
accounts_dep,
gcr_dep,
gdk_pixbuf_dep,
gnome_desktop_dep,
gnutls_dep,
gudev_dep,
libgtop2,
liblanguage_dep,
libsecret_dep,
krb_dep,
polkit_gobject_dep,
pwquality_dep,
udisks2,
]
if enable_ibus
deps += ibus_dep
endif
if enable_malcontent
deps += malcontent_dep
endif
settings_daemon = 'org.gnome.SettingsDaemon'
gsd_gdbus = settings_daemon + '.Sharing'
sources += gnome.gdbus_codegen(
gsd_gdbus,
gsd_gdbus + '.xml',
interface_prefix: settings_daemon + '.',
namespace: 'Gsd'
)
cflags += [
'-DDATADIR="@0@"'.format(control_center_datadir),
'-DLIBEXECDIR="@0@"'.format(control_center_libexecdir),
'-DGNOMECC_DATA_DIR="@0@"'.format(control_center_pkgdatadir)
]
subdir('about')
subdir('datetime')
subdir('region')
subdir('users')
panels_libs += static_library(
cappletname,
sources: sources,
include_directories: [ top_inc, common_inc, include_directories('.'), include_directories('users')],
dependencies: deps,
c_args: cflags
)