From e0d6ae07de786cdcd675341998664ead4db153af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Mon, 28 Jun 2021 22:18:26 +0200 Subject: [PATCH] feat: use dialog for errors --- file-browser/include/file_access.h | 1 + file-browser/src/window_browser.c | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/file-browser/include/file_access.h b/file-browser/include/file_access.h index 88b5a709b3a168ef082bfab4363dc5ce1b9078cc..4d63898b36b583b1bbe9a7be1d9f11107225620d 100644 --- a/file-browser/include/file_access.h +++ b/file-browser/include/file_access.h @@ -167,6 +167,7 @@ extern const fileaccess_t extern fileaccess_connector_t fileaccess_connectors[(FA_COUNT-1)*FA_COUNT]; void fileaccess_log_error(logger_t *logger, file_operation_error_t error); +const char *fileaccess_get_error_text(file_operation_error_t error); fileaccess_state_t fileaccess_init(const fileaccess_t *fileaccess, void *data); bool fileaccess_deinit(fileaccess_state_t state); diff --git a/file-browser/src/window_browser.c b/file-browser/src/window_browser.c index 701412e17e43d252c852ec3690f9f1686b58164b..faa623d6a978cf36aec988ed97748b524a4c8619 100644 --- a/file-browser/src/window_browser.c +++ b/file-browser/src/window_browser.c @@ -80,8 +80,9 @@ bool window_browser_open(gui_t *gui, font_t *font, fileaccess_state_t state) { directory_or_error_t root = fileaccess_root_list(state); if (root.error) { - fileaccess_log_error(gui->logger, root.error); - // TODO: dialog + fileaccess_log_error(gui->logger, root.payload.error); + dialog_info_show(gui, font, "Could not open root directory", + fileaccess_get_error_text(root.payload.error)); return false; } @@ -166,6 +167,7 @@ static void browser_window_item_clicked(container_t *container, void *state, file_operation_error_t error = file_open(¤t_file, browser_exec_options, bstate->state); if (error != FILOPER_SUCCESS) { fileaccess_log_error(logger, error); + dialog_info_show(bstate->gui, bstate->font, "Could not open file", fileaccess_get_error_text(error)); } else { logger_info(logger, __FILE__, __FUNCTION__, __LINE__, "Successfully returned from executing file."); } @@ -175,8 +177,9 @@ static void browser_window_item_clicked(container_t *container, void *state, directory_or_error_t data = fileaccess_directory_list(bstate->state, new_dir_path); if (data.error) { - // show error fileaccess_log_error(logger, data.payload.error); + dialog_info_show(bstate->gui, bstate->font, "Could not open directory", + fileaccess_get_error_text(data.payload.error)); } else { fileaccess_directory_close(bstate->state, bstate->current_directory); bstate->current_directory = data.payload.directory;