application/application.c

changeset 60
ee4e4742391e
parent 53
da05df77652e
equal deleted inserted replaced
59:6bd37fe6d905 60:ee4e4742391e
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;

mercurial