1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2024-11-10 02:21:18 +00:00
Commit graph

822 commits

Author SHA1 Message Date
Anton Lazarev
fd9378267d ui: gtk4-builder-tool simplify --3to4 --replace *.ui
plus some manual tweaks to restore True/False instead of 1/0

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:26 -07:00
Anton Lazarev
8aea5498d7 calls-record-store: GtkApplicationWindow is not a GListModel
I'm not sure how this worked in GTK3, but it doesn't anymore. The list
model is now composed with the record store instead of inherited.

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:26 -07:00
Anton Lazarev
0a3ce1d701 calls-new-call-box: gtk_widget_get_toplevel has been removed
https://docs.gtk.org/gtk4/migrating-3to4.html#gtk_widget_get_toplevel-has-been-removed

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:26 -07:00
Anton Lazarev
5abfae254a calls-call-selector-item: Adapt to GtkBox API changes
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkbox-api-changes

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:26 -07:00
Anton Lazarev
011d8a29b7 calls-contacts-row: AdwAvatar API changes
https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/migrating-libhandy-1-4-to-libadwaita.html#adapt-to-adwavatar-api-changes

This is *not* ideal, since it relies on Folks returning a GFileIcon
internally, and it's also blocking. However, better to use something
simple that compiles and works to begin with.

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:26 -07:00
Anton Lazarev
27c2f62dc1 calls-call-record-row: Stop using Gtk.Widget::popup-menu
Removed in GTK4... I don't know if there's a replacement for it at the
moment.

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:26 -07:00
Anton Lazarev
b85d7efc4f calls-call-record-row: migrate button-press-event to GtkGestureClick
https://docs.gtk.org/gtk4/migrating-3to4.html#stop-using-gtkwidget-event-signals

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
669568869c calls-call-record-row: Adapt to event controller API changes
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-event-controller-api-changes

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
78ad3af035 calls-call-window: Adapt to GtkBin removal
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkbin-removal

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
2618620124 calls-call-record-row: Adapt to GtkPopover changes
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkpopover-changes

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
e5c73011e2 calls-account-overview: Adapt to event controller API changes
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-event-controller-api-changes

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
a80001bd0e calls-contacts-box: Stop using GtkShadowType property
https://docs.gtk.org/gtk4/migrating-3to4.html#stop-using-gtkshadowtype-and-gtkrelief-properties

It can probably be replaced later by a CSS style, if necessary

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
3617f7b7cb calls-contacts-box: Adapt to GtkContainer removal
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkcontainer-removal

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
0727996edf calls-account-overview: Adapt to GtkBin/GtkContainer removal
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkbin-removal

https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkcontainer-removal

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
f7354a06c6 calls-call-window: Adapt to GtkContainer removal
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkcontainer-removal

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
50126f05f0 calls-application: Replace GtkClipboard with GdkClipboard
https://docs.gtk.org/gtk4/migrating-3to4.html#replace-gtkclipboard-with-gdkclipboard

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
31d6a9dcf3 calls-new-call-box: adapt to AdwComboRow API changes
https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/migrating-libhandy-1-4-to-libadwaita.html#adapt-to-adwcomborow-api-changes

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
ca059116b9 calls-application: Stop using GdkScreen
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkwidgets-size-allocation-changes

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
fef4e02b50 calls-main-window: Adapt to GTKWidget's size allocation changes
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkwidgets-size-allocation-changes

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
f6c9ff5c2e calls-main-window: Adapt to GtkContainer removal
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtkcontainer-removal

Now using `GtkStackPage` to manage icons.

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:25 -07:00
Anton Lazarev
674906f788 calls-application: Unconditionally use AdwStyleManager
> In libadwaita color schemes will be the only way to request dark
appearance.

https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/migrating-libhandy-1-4-to-libadwaita.html#use-hdystylemanager-instead-of-gtksettingsgtk-application-prefer-dark-theme

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:24 -07:00
Anton Lazarev
2b972ba035 treewide: gtk_widget_destroy() removal
https://docs.gtk.org/gtk4/migrating-3to4.html#adapt-to-gtk_widget_destroy-removal

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:24 -07:00
Anton Lazarev
34a7651f44 treewide: Replace hide/show with set_visible
Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:24 -07:00
Anton Lazarev
12b78ca5f6 calls-best-match: AdwAvatar API changes
https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/migrating-libhandy-1-4-to-libadwaita.html#adapt-to-adwavatar-api-changes

This is *not* ideal, since it relies on Folks returning a GFileIcon
internally, and it's also blocking. However, better to use something
simple that compiles and works to begin with.

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:24 -07:00
Anton Lazarev
52a0963e6c treewide: Remove icon size from constructors
Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:24 -07:00
Anton Lazarev
4b0b20eb0a treewide: GtkEntry -> GtkEditable
Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:24 -07:00
Anton Lazarev
10b0672f9e treewide: Remove GtkEventBox
https://docs.gtk.org/gtk4/migrating-3to4.html#stop-using-gtkeventbox

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:24 -07:00
Anton Lazarev
ee3abc009a treewide: Replace libhandy with libadwaita
Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:24 -07:00
Anton Lazarev
4ed1bba0b8 treewide: Subclass custom classes from GtkWidget
Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:24 -07:00
Anton Lazarev
bc90d6e64f gtklistmodels: remove gtklistmodels polyfills
Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-06 08:15:24 -07:00
Anton Lazarev
98231778ed meson: Bump gtk dependency to 4.0
Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-01 18:37:57 -07:00
Anton Lazarev
b26faf1b13 calls-new-call-box: compose with GtkBin instead of subclassing GtkBox
Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-01 18:37:57 -07:00
Anton Lazarev
2141c1ffc2 in-app-notification: compose with GtkBin instead of subclassing GtkRevealer
Note that the GtkOverlay must pass-through interactions for this to
work, meaning it's no longer possible to interact with the
notifications. I'm leaving it like this since I'll need to replace it
with AdwToast later anyways.

Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-01 18:37:57 -07:00
Anton Lazarev
f1e63c4979 history-box: compose with GtkBin instead of subclassing GtkStack
Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/714>
2024-04-01 18:37:57 -07:00
Guido Günther
041921ca26 calls-manager: Connect listener past the list model filters
The list model filters connect signal handlers for item-changed to
refilter the list models.

In order to enable protocols based on what the origin supports
`on_origins_changed` needs these filtered results. Since it is a signal
handler by itself connect it late so it runs later in the filter chain.

Closes: https://gitlab.gnome.org/GNOME/calls/-/issues/601
2024-03-13 10:17:16 +00:00
Daniel Rusek
58d2474f28 emergency-call-types: Add Czech Republic 2024-02-28 09:11:45 +00:00
Guido Günther
3a467d85ad emergency-call-types: Add EU countries
They all support 112.
2024-02-10 17:10:14 +01:00
Guido Günther
e49cd86035 emergency-calls-manager: Use network code to get emergency numbers
By far not all sims have emergency numbers and we want to respect the
users current location anyway.

We use a hash to avoid duplicates.
2024-02-10 17:10:10 +01:00
Guido Günther
678a41bade emergency-calls-manager: Move contact adding to separate function
Improves readability and will be get another call site soon.
2024-02-10 17:09:59 +01:00
Guido Günther
9c0acdd560 emergency-calls-manager: Fix object name 2024-02-10 17:09:57 +01:00
Guido Günther
edb46acfa5 emergency-call-types: Add location source
We named it fallback but location is a better name as we get it
from the current country code.
2024-02-10 17:09:48 +01:00
Guido Günther
4951cf5b3b emergency-call-types: Use hash for flag lookups too 2024-02-10 17:09:45 +01:00
Guido Günther
aaefc0443a emergency-call-types: Allow to lookup emergency numbers by country code
We build a hash as cache to speed up lookups. As this is a one time
thing we just do it once and don't bother to free it up.

We currently assume that all numbers can be used for the location based
lookups. Should that change we want to add a flag indicating that.
2024-02-10 17:09:37 +01:00
Guido Günther
c4630a2647 origin: Add network country code
This is technically only useful for mobile networks.
2024-02-10 17:09:10 +01:00
Guido Günther
4695f81f5c dbus: Fix typo 2024-02-10 17:09:01 +01:00
Evangelos Ribeiro Tzaras
6987d0f1e3 plugin-manager: Add debugging to init() 2023-06-13 18:56:03 +02:00
Evangelos Ribeiro Tzaras
7d3b5afad9 application: Reindent struct members
Split into separate commit to reduce diff noise.
2023-05-20 04:04:50 +02:00
Evangelos Ribeiro Tzaras
d3e42c93cd refactor: Switch to CallsPluginManager 2023-05-20 04:04:50 +02:00
Evangelos Ribeiro Tzaras
1b3f8ca20c Introduce CallsPluginManager 2023-05-20 04:04:48 +02:00
Evangelos Ribeiro Tzaras
3f5d570d4f Introduce CallsPlugin
A convenience class to query information about plugins and to allow
loading and unloading.
2023-05-15 09:56:28 +02:00
Evangelos Ribeiro Tzaras
c6ea3adf64 manager: Respect object life cycle for signal handlers 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
f7dd62c0bd contacts-provider: Disconnect signals on finalize 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
c7ba302b18 account-row: Guard calls_account_row_new() against invalid provider 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
3076f913e7 manager: Clear providers after origins
Fixes a segmentation fault on shutdown in nua_unregister()
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
23e9cca320 main-window: Use gtk_widget_destroy() for windows
Top level widgets should typically call gtk_widget_destroy()
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
47bb3aaa62 account-overview: Respect object life cycle for signal handlers
Prevents the following failed assertion when shutting down Calls:

CallsAccountOverview:ERROR:../src/calls-account-overview.c:222:update_account_list: assertion failed: (CALLS_IS_ACCOUNT_OVERVIEW (self))
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
34d4e854bc manager: Respect object life cycle for signal handlers
Don't call signal handlers after the manager has been disposed.
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
f485215a9f application: Initialize objects before parsing options
This helps making object life cycles clearer and
with logging already set up we won't miss any early debugging messages.
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
d690fe5f68 application: Handle setting verbosity first
We want logging verbosity to be set before other command line options
are handled as we might be missing messages otherwise.
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
813103e684 application: Don't leak CallsManager 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
2f3f55c831 new-call-box: Don't leak CallsOrigin
get_selected_origin () does not need to take a reference on CallsOrigin
2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
ea5d7038e7 new-call-box: Use STR_IS_NULL_OR_EMPTY macro 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
0452d8a2bf manager: Use STR_IS_NULL_OR_EMPTY macro 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
3e43ba2975 call-window: Remove dead code 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
2550141585 application: Remove unused macro 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
4e900e1ac5 main-window: Codestyle 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
0261271560 main-window: Sort includes 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
9ff06561e8 resources: Sort alphabetically 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
0cb25d9e3c build: Sort enum headers 2023-04-18 08:34:39 +00:00
Evangelos Ribeiro Tzaras
23ee0475dd best-match: Don't special case NULL best match
We always get a valid best match, even for NULL or empty ids,
so there is no more need to special case it.
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras
830906f57a contacts-provider: Handle NULL and empty strings graceful in lookup
Fixes a crash where we asserted on best match when the id was NULL or
empty.

Closes: #567
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras
10d74634ba contacts-provider: Simplify refcounting in lookup_id()
g_autoptr usage was a bit pointless here since
calls_contacts_provider_lookup_id() is transfer full
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras
ac2dc8573d best-match: Add gtk-doc annotations to the public API
Notably this adds ownership and nullable annotations, where appropriate.
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras
3fb016f6b2 best-match: Allow both NULL and empty strings as phone number
This allows us to get rid of some special casing when retrieving
primary and secondary display information.
2023-04-13 06:01:05 +00:00
Evangelos Ribeiro Tzaras
36fdbc28e6 emergency-calls-manager: Don't leak origin
g_list_model_get_item is transfer full
2023-04-09 16:08:22 +02:00
Evangelos Ribeiro Tzaras
0de7599567 emergency-calls-manager: Add missing argument for on_origins_changed handler
The "removed" argument of the models "items-changed" signal was
forgotten making it misbehave when origins do get removed:

GLib-GObject[1287799]: WARNING: invalid (NULL) pointer instance
GLib-GObject[1287799]:CRITICAL: g_signal_connect_object: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
2023-04-09 16:08:00 +02:00
Evangelos Ribeiro Tzaras
9a52c57ffe emergency-calls-manager: Fix indentation
By running uncrustify
2023-04-09 12:18:55 +02:00
Guido Günther
e5a4d899f8 emergency-calls-manager: Add support for dialing emergency numbers
We just pick the first matching provider.
2023-04-09 09:48:36 +00:00
Guido Günther
b58be993a6 emergency-calls-manager: Don't leak origin
g_list_model_get_item is transfer full
2023-04-09 09:48:36 +00:00
Guido Günther
b087bea16b Resolve emergency number types
We add a small hardcoded table for now. Future versions
will improve this to parse this out of ASOPs eccdata.

If we can't determine the type of a number we add it verbatim.
2023-04-06 16:37:59 +00:00
Guido Günther
a8cb3dd7c7 emergency-calls: Notify on DBus when emergency numbers change
This is needed if an origin changes it's emergency numbers on the fly
(e.g. when initializing them late).
2023-04-06 16:37:59 +00:00
Guido Günther
6cdae3fd40 origin: Allow to fetch country code
This is an optional method as not all origins might support this
(e.g. SIP).
2023-04-06 16:37:59 +00:00
Guido Günther
d5cba4db7f emergency-calls-manager: Query origins for numbers
When the origins change we notify that emergency numbers
might have changed.
2023-02-12 08:00:56 +00:00
Guido Günther
df9d541968 origin: Add interface to get emergency numbers 2023-02-12 08:00:56 +00:00
Guido Günther
e3d1193f7f dbus-manager: Use emergency-call manager 2023-02-12 08:00:56 +00:00
Guido Günther
4bdb6945bd Add emergency-call manager to interface with DBus 2023-02-12 08:00:56 +00:00
Guido Günther
213b27bf20 dbus: Add initial interface for emergency calls 2023-02-12 08:00:56 +00:00
Evangelos Ribeiro Tzaras
d901e4c8a6 application: Delay shutting down until database is done
Operations on the database are not cancellable, so we need to ensure any
critical code (such as database migration) has completed.
Otherwise we risk leaving the database in a locked state (or worse):

WARNING **: 09:24:53.428: Failed to determine schema version: sqlite3_prepare_v2 failed: database is locked: CREATE TABLE IF NOT EXISTS _gom_version (version INTEGER);
2023-02-09 19:07:32 +00:00
Evangelos Ribeiro Tzaras
fb07e0122d record-store: Emit signal once DB is migrated
This helps letting CallsApplication decide if it should run a few more
iterations to ensure any critical code finishes executing.
2023-02-09 19:07:32 +00:00
Evangelos Ribeiro Tzaras
01b8a1c873 record-store: Allow overriding database location
By setting the environment variable CALLS_RECORD_DIR the database
location can be overriden which is useful for testing.
2023-02-09 19:07:32 +00:00
Evangelos Ribeiro Tzaras
656c8f96bf account-overview: Respect object lifecycle for signals 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras
ffc3c984b0 application: Respect object lifecycle for signals 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras
6ab5905a9b call-window: Respect object lifecycle for signals 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras
63d065118f main-window: Respect object lifecycle for signals 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras
e168170f9e new-call-box: Respect object lifecycle for signals 2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras
46736a63fa record-store: Ensure store stays alive during async tasks
As GOM does not allow us to cancel asynchronous tasks,
we need to hold references temporarily.
2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras
b49e086549 application: Guard against setting application name twice
This is useful for testing the CallsApplication.
2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras
ac6aff798d application: Shut down cleanly when application quits
Previously the application was only properly shut down
when it received SIGTERM/SIGINT.
2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras
0c004b5204 application: Only destroy previously created widgets
If this is not the primary instance self->main_window and
self->call_window will not have been created in the first place.

Fixes: e878fabb27
2023-02-01 08:48:35 +01:00
Evangelos Ribeiro Tzaras
481c67a707 application: Coding style 2023-02-01 08:48:35 +01:00