diff --git a/.dir-locals.el b/.dir-locals.el index c30377152ec99266791ebbee935ca2aa59e0975c..86f9a46fab7d4be8de142374ecd70ec566fed1de 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -1,7 +1,7 @@ ((nil . ((indent-tabs-mode . nil) - (projectile-project-compilation-cmd . "ninja -C _build") - (projectile-project-test-cmd . "ninja -C _build test") - (projectile-project-configure-cmd . "meson . _build") + (projectile-project-compilation-cmd . "meson compile -C _build") + (projectile-project-test-cmd . "meson test -C _build") + (projectile-project-configure-cmd . "meson _build --wipe") (projectile-project-compilation-dir . ".") (projectile-project-run-cmd . "_build/run -vvv") )) diff --git a/.gitignore b/.gitignore index 7494d4f6c7f037d80b7058b23157f975bf33ca89..1b9ae8d082448397ed8be0a55e7b53b67d924a90 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,11 @@ -_build *.swp *~ \#*# .\#* build +_build .buildconfig .flatpak-builder +.gdb_history po/calls.pot po/missing diff --git a/src/calls-call-record-row.c b/src/calls-call-record-row.c index 9e28c11a10a1cea627a51c696314db13a6927df3..e5dd2515f47dbfadb08662874ad89ced309148e8 100644 --- a/src/calls-call-record-row.c +++ b/src/calls-call-record-row.c @@ -22,6 +22,8 @@ * */ +#define G_LOG_DOMAIN "CallsCallRecordRow" + #include "calls-call-record-row.h" #include "calls-best-match.h" #include "calls-contacts-provider.h" @@ -130,7 +132,9 @@ static gboolean date_change_cb (CallsCallRecordRow *self); static void setup_date_change_timeout (CallsCallRecordRow *self) { - GDateTime *gnow, *gnextday, *gtomorrow; + g_autoptr (GDateTime) gnow = NULL; + g_autoptr (GDateTime) gnextday = NULL; + g_autoptr (GDateTime) gtomorrow = NULL; struct timeval now, tomorrow, delta; int err; guint interval; @@ -140,7 +144,6 @@ setup_date_change_timeout (CallsCallRecordRow *self) // Get the next day gnextday = g_date_time_add_days (gnow, 1); - g_date_time_unref (gnow); // Get the start of the next day gtomorrow = @@ -151,12 +154,10 @@ setup_date_change_timeout (CallsCallRecordRow *self) 0, 0, 0.0); - g_date_time_unref (gnextday); // Convert to a timeval tomorrow.tv_sec = g_date_time_to_unix (gtomorrow); tomorrow.tv_usec = 0; - g_date_time_unref (gtomorrow); // Get the precise time now err = gettimeofday (&now, NULL); @@ -186,16 +187,15 @@ setup_date_change_timeout (CallsCallRecordRow *self) static gboolean date_change_cb (CallsCallRecordRow *self) { - GDateTime *end; + g_autoptr (GDateTime) end = NULL; gboolean final; - g_object_get (G_OBJECT (self->record), + g_object_get (self->record, "end", &end, NULL); g_assert (end != NULL); update_time_text (self, end, &final); - g_date_time_unref (end); if (final) self->date_change_timeout = 0; @@ -231,9 +231,9 @@ notify_time_cb (CallsCallRecordRow *self, GParamSpec *pspec, CallsCallRecord *record) { + g_autoptr (GDateTime) answered = NULL; + g_autoptr (GDateTime) end = NULL; gboolean inbound; - GDateTime *answered; - GDateTime *end; g_object_get (G_OBJECT (self->record), "inbound", &inbound, @@ -243,14 +243,11 @@ notify_time_cb (CallsCallRecordRow *self, update_time (self, inbound, answered, end); - if (answered) { - g_date_time_unref (answered); + if (answered) calls_clear_signal (record, &self->answered_notify_handler_id); - } - if (end) { - g_date_time_unref (end); + + if (end) calls_clear_signal (record, &self->end_notify_handler_id); - } } @@ -387,6 +384,11 @@ on_long_pressed (GtkGestureLongPress *gesture, gdouble y, GtkWidget *self) { + if (!gtk_widget_get_realized (self)) { + g_warning ("widget is not realized, why does it emit 'pressed'? Aborting.."); + return; + } + context_menu (self, NULL); } @@ -399,6 +401,7 @@ calls_call_record_row_button_press_event (GtkGestureClick* controller, GtkWidget *self) { GdkEvent *event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (controller)); + if (gdk_event_triggers_context_menu (event)) { context_menu (self, (GdkEvent *) event); } @@ -431,8 +434,8 @@ constructed (GObject *object) { CallsCallRecordRow *self = CALLS_CALL_RECORD_ROW (object); gboolean inbound; - GDateTime *answered; - GDateTime *end; + g_autoptr (GDateTime) answered = NULL; + g_autoptr (GDateTime) end = NULL; g_autofree char *protocol = NULL; g_autofree char *action_name = NULL; g_autofree char *target = NULL; @@ -463,8 +466,6 @@ constructed (GObject *object) "(ss)", target, ""); setup_time (self, inbound, answered, end); - calls_date_time_unref (answered); - calls_date_time_unref (end); setup_contact (self); } @@ -498,7 +499,7 @@ dispose (GObject *object) g_clear_object (&self->contact); g_clear_object (&self->action_map); - calls_clear_source (&self->date_change_timeout); + g_clear_handle_id (&self->date_change_timeout, g_source_remove); calls_clear_signal (self->record, &self->answered_notify_handler_id); calls_clear_signal (self->record, &self->end_notify_handler_id); g_clear_object (&self->record); @@ -657,12 +658,16 @@ calls_call_record_row_init (CallsCallRecordRow *self) gesture = gtk_gesture_click_new (); gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY); - g_signal_connect (gesture, "pressed", G_CALLBACK (calls_call_record_row_button_press_event), self); + g_signal_connect_object (gesture, "pressed", + G_CALLBACK (calls_call_record_row_button_press_event), + self, G_CONNECT_AFTER); gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture)); gesture = gtk_gesture_long_press_new (); gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (gesture), TRUE); - g_signal_connect (gesture, "pressed", G_CALLBACK (on_long_pressed), self); + g_signal_connect_object (gesture, "pressed", + G_CALLBACK (on_long_pressed), + self, G_CONNECT_AFTER); gtk_widget_add_controller (GTK_WIDGET (self), GTK_EVENT_CONTROLLER (gesture)); } diff --git a/src/calls-call-record-row.h b/src/calls-call-record-row.h index 849880816fbbc56c07df5b28dc7f04eff7cba14c..5d189e72bb36306ba69ee4bd272630f871bd6e11 100644 --- a/src/calls-call-record-row.h +++ b/src/calls-call-record-row.h @@ -26,7 +26,6 @@ #define CALLS_CALL_RECORD_ROW_H__ #include "calls-call-record.h" -#include "calls-new-call-box.h" #include diff --git a/src/calls-history-box.c b/src/calls-history-box.c index 1ffeb45cb7cd31b3be9f909b78ab961f52136b7f..ca8838e98d3659c2cbcb948656b37162e1d4a095 100644 --- a/src/calls-history-box.c +++ b/src/calls-history-box.c @@ -121,6 +121,9 @@ create_row_cb (CallsCallRecord *record, row_widget = GTK_WIDGET (calls_call_record_row_new (record)); + g_debug ("Created new row [%p] for record [%p]", + row_widget, record); + g_signal_connect (record, "call-delete", G_CALLBACK (delete_call_cb), diff --git a/src/calls-record-store.c b/src/calls-record-store.c index 45c27dc55c673f939f2e90a115b8310bf840836b..56d2e6c17066ba127f4e03e476a9389388d84d32 100644 --- a/src/calls-record-store.c +++ b/src/calls-record-store.c @@ -487,10 +487,8 @@ record_call (CallsRecordStore *self, record, g_object_unref); data = g_new (struct CallsRecordCallData, 1); - g_object_ref (self); - g_object_ref (call); - data->self = self; - data->call = call; + data->self = g_object_ref (self); + data->call = g_object_ref (call); gom_resource_save_async (GOM_RESOURCE (record), (GAsyncReadyCallback) record_call_save_cb, @@ -522,13 +520,12 @@ update_cb (GomResource *resource, static void stamp_call (CallsCallRecord *record, - const gchar *stamp_name) + const char *stamp_name) { - GObject *record_obj = G_OBJECT (record); GDateTime *stamp = NULL; /* Check the call has not already been stamped */ - g_object_get (record_obj, + g_object_get (record, stamp_name, &stamp, NULL); if (stamp) @@ -537,7 +534,7 @@ stamp_call (CallsCallRecord *record, g_debug ("Stamping call `%s'", stamp_name); stamp = g_date_time_new_now_utc (); - g_object_set (record_obj, + g_object_set (record, stamp_name, stamp, NULL); g_date_time_unref (stamp); diff --git a/src/calls-util.h b/src/calls-util.h index 9a7e28489f37441226966e86d24e25b969c20511..9331ada77520e186f2cdbd637e1fae897f98298a 100644 --- a/src/calls-util.h +++ b/src/calls-util.h @@ -89,13 +89,6 @@ G_BEGIN_DECLS CALLS_DEFINE_IFACE_GETTER_BASE(calls,iface,Calls,Iface,CALLS,IFACE,prop,rettype,errval) -#define calls_clear_source(source_id_ptr) \ - if (*source_id_ptr != 0) \ - { \ - g_source_remove (*source_id_ptr); \ - *source_id_ptr = 0; \ - } - #define calls_clear_signal(object,handler_id_ptr) \ if (*handler_id_ptr != 0) \ { \ @@ -103,13 +96,6 @@ G_BEGIN_DECLS *handler_id_ptr = 0; \ } -#define calls_date_time_unref(date_time) \ - if (date_time) \ - { \ - g_date_time_unref (date_time); \ - } - - gboolean calls_date_time_is_same_day (GDateTime *a, GDateTime *b);