diff -r 905ac52c910f -r 726b24766437 application/application.c --- a/application/application.c Mon Jan 29 12:09:24 2024 +0100 +++ b/application/application.c Mon Jan 29 18:50:04 2024 +0100 @@ -35,6 +35,7 @@ #include "window.h" #include "config.h" +#include "davcontroller.h" static DavContext* davctx; @@ -51,8 +52,15 @@ exit(-1); } + window_init(); + + // create new window UiObject *win = window_create(); + // create new browser document and attach it to the main window + DavBrowser *doc = davbrowser_create(win); + ui_attach_document(win->ctx, doc); + // create document for global settings (repolist, ...) DavApp *app = application_create_app_document(); UiContext *global = ui_global_context(); ui_attach_document(global, app); @@ -60,6 +68,11 @@ ui_show(win); } +static void* davrepo_getname(void *elm, int unused) { + DavCfgRepository *repo = elm; + return repo->name.value.ptr; +} + void application_create_menu(void) { // menu @@ -68,7 +81,7 @@ ui_toolbar_item("Home", .icon = "Home"); ui_toolbar_item("NewWindow", .icon = "NewWindow"); ui_toolbar_menu("Repo", .label = "Repository") { - ui_menu_itemlist(.varname = "repolist", .onselect = action_repo_selected); + ui_menu_itemlist(.varname = "repolist", .getvalue = davrepo_getname, .onselect = action_repo_selected); } ui_toolbar_item("Refresh", .icon = "Refresh"); ui_toolbar_item("NewFolder", .icon = "NewFolder"); @@ -115,13 +128,10 @@ DavConfig *config = get_config(); DavCfgRepository *repo = config->repositories; - - // TODO: free list content ptr ui_list_clear(app->repos); for (DavCfgRepository *repo = config->repositories; repo; repo = repo->next) { - // TODO: copy repo name - ui_list_append(app->repos, repo->name.value.ptr); + ui_list_append(app->repos, repo); } } @@ -132,5 +142,7 @@ void action_repo_selected(UiEvent *event, void *data) { - + DavCfgRepository *repo = event->eventdata; + DavBrowser *browser = event->document; + davbrowser_connect2repo(event->obj, browser, repo); }