34 #include <libidav/webdav.h> |
34 #include <libidav/webdav.h> |
35 |
35 |
36 #include "window.h" |
36 #include "window.h" |
37 #include "config.h" |
37 #include "config.h" |
38 #include "davcontroller.h" |
38 #include "davcontroller.h" |
|
39 #include "settings.h" |
39 |
40 |
40 static DavContext* davctx; |
41 static DavContext* davctx; |
|
42 |
|
43 static DavApp *app; |
41 |
44 |
42 void application_init(void) { |
45 void application_init(void) { |
43 davctx = dav_context_new(); |
46 davctx = dav_context_new(); |
44 dav_context_set_mtsafe(davctx, true); |
47 dav_context_set_mtsafe(davctx, true); |
45 |
48 |
46 application_create_menu(); |
49 application_create_menu(); |
47 } |
50 } |
48 |
51 |
|
52 DavApp* get_application(void) { |
|
53 return app; |
|
54 } |
49 |
55 |
50 void application_startup(UiEvent* event, void* data) { |
56 void application_startup(UiEvent* event, void* data) { |
51 if (load_config(davctx)) { |
57 if (load_config(davctx)) { |
52 // TODO: error |
58 // TODO: error |
53 exit(-1); |
59 exit(-1); |
54 } |
60 } |
55 |
61 |
56 window_init(); |
62 window_init(); |
57 |
63 |
58 // create document for global settings (repolist, ...) |
64 // create document for global settings (repolist, ...) |
59 DavApp *app = application_create_app_document(); |
65 app = application_create_app_document(); |
60 UiContext *global = ui_global_context(); |
66 UiContext *global = ui_global_context(); |
61 ui_attach_document(global, app); |
67 ui_attach_document(global, app); |
62 |
68 |
63 // create new window |
69 // create new window |
64 UiObject *win = window_create(); |
70 UiObject *win = window_create(); |
133 return doc; |
139 return doc; |
134 } |
140 } |
135 |
141 |
136 void application_update_repolist(DavApp *app) { |
142 void application_update_repolist(DavApp *app) { |
137 DavConfig *config = get_config(); |
143 DavConfig *config = get_config(); |
138 DavCfgRepository *repo = config->repositories; |
|
139 |
144 |
140 ui_list_clear(app->repos); |
145 ui_list_clear(app->repos); |
141 |
146 |
142 for (DavCfgRepository *repo = config->repositories; repo; repo = repo->next) { |
147 for (DavCfgRepository *repo = config->repositories; repo; repo = repo->next) { |
143 ui_list_append(app->repos, repo); |
148 ui_list_append(app->repos, repo); |
144 } |
149 } |
|
150 |
|
151 ui_notify(app->repos->observers, NULL); |
145 } |
152 } |
146 |
153 |
147 |
154 |
148 DavContext* application_dav_context(void) { |
155 DavContext* application_dav_context(void) { |
149 return davctx; |
156 return davctx; |
305 .button2_label = "Cancel", |
312 .button2_label = "Cancel", |
306 .result = newfolderdialog_result); |
313 .result = newfolderdialog_result); |
307 } |
314 } |
308 |
315 |
309 void action_open_settings(UiEvent *event, void *data) { |
316 void action_open_settings(UiEvent *event, void *data) { |
310 |
317 settings_window_open(); |
311 } |
318 } |
312 |
319 |
313 void action_open_properties(UiEvent *event, void *data) { |
320 void action_open_properties(UiEvent *event, void *data) { |
314 char *type = data; |
321 char *type = data; |
315 DavBrowser *browser = event->document; |
322 DavBrowser *browser = event->document; |