diff options
author | Niels De Graef <nielsdegraef@gmail.com> | 2021-01-11 19:22:17 +0100 |
---|---|---|
committer | Niels De Graef <nielsdegraef@gmail.com> | 2022-08-06 12:45:49 +0200 |
commit | fcbc87c40406b322513c209844d3430bc4108b13 (patch) | |
tree | 74efc305e00d893a72b3c8fb22017435b6792111 /meson.build | |
parent | f37176d5e04b3dc7cc2ad8cb9843d7d7fc35485e (diff) | |
download | gnome-contacts-fcbc87c40406b322513c209844d3430bc4108b13.tar.gz |
Enable importing & exporting VCards
This commit adds the experimental functionality in Contacts to import
VCard (*.vcf) files.
Since importing a contact means we have to take in untrusted/unvalidated
input, let's give a high-level view of what happens:
* Contacts starts a native file chooser dialog so the user can choose
which file to import
* According to the chosen file, Contacts will launch a subprocess to do
the actual parsing using a `Contacts.Io.Parser`. At this point, we
only have a single subclass, which allows importing VCards.
* The helper process serializes the result to a `GLib.Variant`, and
sends it to the main process, which will receive the result and
parses it again.
* After the parsing operation is done, we can then start up a
`ImportOperation`, which will import the contacts using libfolks' API.
Exporting contacts is quite a bit easier, since we don't have to deal
with untrusted input: we serialize the list of selected contacts and
asynchronously write each to the given output stream. In the app, that's
a user chosen file; in tests, that can be a string.
Fixes: https://gitlab.gnome.org/GNOME/gnome-contacts/-/issues/1
Fixes: https://gitlab.gnome.org/GNOME/gnome-contacts/-/issues/38
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/meson.build b/meson.build index 307a3e3..fef5f6b 100644 --- a/meson.build +++ b/meson.build @@ -70,6 +70,7 @@ conf.set_quoted('APP_ID', contacts_app_id) conf.set_quoted('GETTEXT_PACKAGE', meson.project_name()) conf.set_quoted('G_LOG_DOMAIN', meson.project_name()) conf.set_quoted('LOCALEDIR', locale_dir) +conf.set_quoted('LIBEXECDIR', get_option('prefix') / get_option('libexecdir')) conf.set_quoted('PACKAGE_NAME', meson.project_name()) conf.set_quoted('PACKAGE_STRING', meson.project_name()) conf.set_quoted('PACKAGE_VERSION', meson.project_version()) |