application/application.c

changeset 6
09ac07345656
parent 5
83263002816f
child 7
905ac52c910f
equal deleted inserted replaced
5:83263002816f 6:09ac07345656
29 #include "application.h" 29 #include "application.h"
30 30
31 #include <string.h> 31 #include <string.h>
32 #include <stdbool.h> 32 #include <stdbool.h>
33 33
34 #include <libidav/webdav.h>
35
34 #include "window.h" 36 #include "window.h"
37 #include "config.h"
35 38
39 static DavContext* davctx;
36 40
37 void application_init(void) { 41 void application_init(void) {
42 davctx = dav_context_new();
43
38 application_create_menu(); 44 application_create_menu();
39 } 45 }
40 46
41 47
42 void application_startup(UiEvent* event, void* data) { 48 void application_startup(UiEvent* event, void* data) {
49 if (load_config(davctx)) {
50 // TODO: error
51 exit(-1);
52 }
53
43 UiObject* win = window_create(); 54 UiObject* win = window_create();
44 55
45 DavApp* app = application_create_app_document(); 56 DavApp* app = application_create_app_document();
46 UiContext* global = ui_global_context(); 57 UiContext* global = ui_global_context();
47 ui_attach_document(global, app); 58 ui_attach_document(global, app);
86 ui_toolbar_add_default("LocalBrowser", UI_TOOLBAR_RIGHT); 97 ui_toolbar_add_default("LocalBrowser", UI_TOOLBAR_RIGHT);
87 ui_toolbar_add_default("PreviewPane", UI_TOOLBAR_RIGHT); 98 ui_toolbar_add_default("PreviewPane", UI_TOOLBAR_RIGHT);
88 } 99 }
89 100
90 101
102
91 DavApp* application_create_app_document(void) { 103 DavApp* application_create_app_document(void) {
92 DavApp* doc = ui_document_new(sizeof(DavApp)); 104 DavApp* doc = ui_document_new(sizeof(DavApp));
93 UiContext* ctx = ui_document_context(doc); 105 UiContext* ctx = ui_document_context(doc);
94 doc->repos = ui_list_new(ctx, "repolist"); 106 doc->repos = ui_list_new(ctx, "repolist");
95 107
96 ui_list_append(doc->repos, "test"); 108 // create repo list
97 109 application_update_repolist(doc);
98
99 110
100 return doc; 111 return doc;
101 } 112 }
113
114 void application_update_repolist(DavApp* app) {
115 DavConfig* config = get_config();
116 DavCfgRepository* repo = config->repositories;
117
118 // TODO: free list content ptr
119 ui_list_clear(app->repos);
120
121 for (DavCfgRepository* repo = config->repositories; repo; repo = repo->next) {
122 // TODO: copy repo name
123 ui_list_append(app->repos, repo->name.value.ptr);
124 }
125 }

mercurial