From 5604ff93d775da19a7118b5ce6e59f77281c36da Mon Sep 17 00:00:00 2001 From: Markus Koch Date: Wed, 15 Feb 2017 19:38:04 +0100 Subject: [PATCH] Added an error message in case some entries can not be read --- src/mainwindow.c | 10 ++++++++++ src/mdiary.c | 12 ++++++++---- src/mdiary.h | 1 + 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/mainwindow.c b/src/mainwindow.c index cb92863..0d51e29 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -722,6 +722,7 @@ static void mainWindow_show_error(struct mainWindow *mainWindow, gchar *text) void mainWindow_switch_workspace(struct mainWindow *mainWindow, gchar *path, gboolean gpg_enabled) { struct mdiary_scanner *mdiary_scanner; + gchar *temp; g_print("Switching workspace to %s.\n", path); gtk_popover_popdown(GTK_POPOVER(mainWindow->popoverWorkspace)); @@ -739,6 +740,15 @@ void mainWindow_switch_workspace(struct mainWindow *mainWindow, gchar *path, gbo gtk_widget_set_visible(mainWindow->buttonDecrypt, TRUE); else gtk_widget_set_visible(mainWindow->buttonDecrypt, FALSE); + + if (mdiary_scanner->entries_failed) { + temp = g_strdup_printf("%d entr%s could not be read.\n" + "See the console log for more information.", + mdiary_scanner->entries_failed, + mdiary_scanner->entries_failed > 1 ? "ies" : "y"); + mainWindow_show_error(mainWindow, temp); + g_free(temp); + } } else { gtk_header_bar_set_subtitle(GTK_HEADER_BAR(mainWindow->headerBar), "No workspace opened."); mainWindow_show_error(mainWindow, "Could not open workspace or no entries were found in it."); diff --git a/src/mdiary.c b/src/mdiary.c index 7dfba11..cd3dbaa 100644 --- a/src/mdiary.c +++ b/src/mdiary.c @@ -265,6 +265,7 @@ static void mdiary_add_file_to_store(struct mdiary_scanner *mdiary_scanner, guint header_state = 0; g_message("Add file: %s\n", filename); + mdiary_scanner->entries_failed++; /* Will be decremented again when entry was successfully added. */ if (!content) { file = g_file_new_for_path(filename); @@ -338,6 +339,7 @@ static void mdiary_add_file_to_store(struct mdiary_scanner *mdiary_scanner, title = g_strdup("Untitled"); } + mdiary_scanner->entries_failed--; mdiary_scanner->entries_added++; mdiary_add_entry_to_store(entryListStore, autoCompletion, @@ -378,6 +380,7 @@ static void mdiary_add_gpg_to_store(struct mdiary_scanner *mdiary_scanner, g_message("GPG: Decryption OK!\n"); mdiary_add_file_to_store(mdiary_scanner, filename, cmd_stdout, entryListStore, autoCompletion); } else { + mdiary_scanner->entries_failed++; g_warning("GPG: Decryption of message failed!\n" "---------- SNIP ----------\n" "%s" @@ -446,10 +449,11 @@ struct mdiary_scanner *mdiary_scanner_new(gboolean gpg_enabled) mdiary_scanner = malloc(sizeof(struct mdiary_scanner)); if (mdiary_scanner) { - mdiary_scanner->time_earliest = G_MAXINT64; - mdiary_scanner->time_latest = 0; - mdiary_scanner->entries_added = 0; - mdiary_scanner->gpg_enabled = gpg_enabled; + mdiary_scanner->time_earliest = G_MAXINT64; + mdiary_scanner->time_latest = 0; + mdiary_scanner->entries_added = 0; + mdiary_scanner->gpg_enabled = gpg_enabled; + mdiary_scanner->entries_failed = 0; mdiary_scanner->entries_encrypted = 0; } } diff --git a/src/mdiary.h b/src/mdiary.h index 033b6a5..dbda7ce 100644 --- a/src/mdiary.h +++ b/src/mdiary.h @@ -22,6 +22,7 @@ struct mdiary_scanner { gint64 time_latest; gint entries_added; gint entries_encrypted; + gint entries_failed; }; struct mdiary_scanner *mdiary_scanner_new(gboolean gpg_enabled);