From: Olaf Wintermann Date: Fri, 27 Feb 2026 16:23:37 +0000 (+0100) Subject: load file list X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=dac3409466cb605fdc4b0b1a97c4831f05657169;p=mizunara.git load file list --- diff --git a/mizunara/filebrowser.c b/mizunara/filebrowser.c index 9a0eefe..35f26ed 100644 --- a/mizunara/filebrowser.c +++ b/mizunara/filebrowser.c @@ -138,6 +138,7 @@ int jobthr_filebrowser_op_load(void *data) { void filebrowser_op_finished(UiEvent *event, void *data) { FileBrowserOp *op = data; + FileBrowser *browser = op->browser; printf("filebrowser_op_finished\n"); if(op->result) { @@ -149,11 +150,19 @@ void filebrowser_op_finished(UiEvent *event, void *data) { section->parent_url = op->url; op->result = NULL; op->url = NULL; - + // update_grid takes ownership of section - op->browser->update_grid(op->browser, section, 1, op->browser->update_grid_data); - } else if(view == 1) { + if(browser->update_grid) { + browser->update_grid(op->browser, section, 1, browser->update_grid_data); + } + } else if(view == 1) { + ui_list_clear(browser->list_files); + CxIterator i = cxListIterator(op->result); + cx_foreach(FileInfo *, file, i) { + ui_list_append(browser->list_files, file); + } + ui_list_update(browser->list_files); } } else { // TODO: error msg diff --git a/mizunara/window.c b/mizunara/window.c index 335dbef..529563d 100644 --- a/mizunara/window.c +++ b/mizunara/window.c @@ -112,7 +112,7 @@ UiObject* window_create(const char *url) { #endif window_create_browser_view(obj, wdata); - ui_set(browser->view, 0); // select default view + ui_set(browser->view, 1); // select default view // test ui_set(browser->path, "/usr"); @@ -193,6 +193,18 @@ void window_sidebar_user_dirs_item(UiList *list, void *sublist_userdata, void *r void* window_filelistview_getvalue(UiList *list, void *elm, int row, int col, void *userdata, UiBool *freeResult) { + FileInfo *file = elm; + switch(col) { + case 0: { + return S_ISDIR(file->mode) ? ui_foldericon(16) : ui_fileicon(16); + } + case 1: { + return file->name; + } + case 2: { + break; + } + } return NULL; }