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 } |