Add desktop notifications code

This commit is contained in:
augustin64 2023-07-16 11:06:32 +02:00
parent 61de4adf18
commit be6c4fa9c5
3 changed files with 21 additions and 6 deletions

View File

@ -1,4 +1,4 @@
FLAGS = -g -Wall -Wextra -DLOG_USE_COLOR FLAGS = -g -Wall -Wextra -DLOG_USE_COLOR `pkg-config --cflags --libs libnotify`
LD_FLAGS = -lsqlite3 LD_FLAGS = -lsqlite3
@ -34,3 +34,4 @@ uninstall: takl
clean: clean:
rm out -r rm out -r
rm ./takl rm ./takl
rm ./takl-daemon

View File

@ -23,4 +23,9 @@ Libère la mémoire allouée à une liste de tâches
*/ */
void free_task_list(task_list_t* list); void free_task_list(task_list_t* list);
/*
Envoyer une notification avec t
*/
void desktop_notification(task_t t);
#endif #endif

View File

@ -4,6 +4,7 @@ Fonctions utilitaires concernant les tâches
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <time.h> #include <time.h>
#include <libnotify/notify.h>
#include "include/db.h" #include "include/db.h"
#include "include/struct.h" #include "include/struct.h"
@ -64,20 +65,20 @@ void print_task_list(task_list_t* list, bool show_completed) {
} }
cur = list; cur = list;
while (cur) { // Show not completed but not due_to then while (cur) { // Show not completed but not due_to now then
task_t t = cur->task; task_t t = cur->task;
if (!t.done && (difftime(now, t.due_to) <= 0 || t.due_to == 0)) { if (!t.done && (difftime(now, t.due_to) <= 0 || t.due_to == 0)) {
printf(BOLD YELLOW "[%d]" RESET " %s\n", t.id, t.text); // Task not completed but should be ! printf(BOLD YELLOW "[%d]" RESET " %s\n", t.id, t.text); // Task not completed but fine
} }
cur = cur->next; cur = cur->next;
} }
if (show_completed) { if (show_completed) {
cur = list; cur = list;
while (cur) { // Show not completed but not due_to then while (cur) { // Show completed
task_t t = cur->task; task_t t = cur->task;
if (t.done) { if (t.done) {
printf(BOLD GREEN "[%d]" RESET " %s\n", t.id, t.text); // Task not completed but should be ! printf(BOLD GREEN "[%d]" RESET " %s\n", t.id, t.text); // Task already done
} }
cur = cur->next; cur = cur->next;
} }
@ -93,3 +94,11 @@ void free_task_list(task_list_t* list) {
list = next; list = next;
} }
} }
void desktop_notification(task_t t) {
notify_init ("TaKl");
NotifyNotification * Notif = notify_notification_new ("TaKl Daemon", t.text, "dialog-information");
notify_notification_show (Notif, NULL);
g_object_unref(G_OBJECT(Notif));
notify_uninit();
}