application/davcontroller.c

changeset 115
e57ca2747782
parent 107
b34bd1557c6c
equal deleted inserted replaced
114:3da24640513a 115:e57ca2747782
76 ui_list_append(browser->resources, res); 76 ui_list_append(browser->resources, res);
77 } 77 }
78 78
79 ui_list_update(browser->resources); 79 ui_list_update(browser->resources);
80 80
81 ui_set_group(ui->ctx, APP_STATE_BROWSER_SESSION); 81 ui_set_state(ui->ctx, APP_STATE_BROWSER_SESSION);
82 } 82 }
83 83
84 // ------------------------------ davbrowser_connect2repo ------------------------------ 84 // ------------------------------ davbrowser_connect2repo ------------------------------
85 85
86 typedef struct DavConnect2Repo { 86 typedef struct DavConnect2Repo {
463 if (!browser->sn) { 463 if (!browser->sn) {
464 return; // TODO: error msg 464 return; // TODO: error msg
465 } 465 }
466 466
467 cxmutstr wtitle = cx_asprintf("Upload to: %s", ui_get(browser->path)); 467 cxmutstr wtitle = cx_asprintf("Upload to: %s", ui_get(browser->path));
468 UiObject *dialog = ui_simple_window(wtitle.ptr, NULL); 468 UiObject *dialog = ui_simple_window(wtitle.ptr);
469 free(wtitle.ptr); 469 free(wtitle.ptr);
470 470
471 DavFileUpload *upload = dav_upload_create(browser, dialog, files); 471 DavFileUpload *upload = dav_upload_create(browser, dialog, files);
472 transfer_window_init(dialog, action_upload_cancel); 472 transfer_window_init(dialog, action_upload_cancel);
473 dav_upload_start(upload); 473 dav_upload_start(upload);
474 application_register_transfer(&upload->trans); 474 application_register_transfer(&upload->trans);
475 } 475 }
476 476
477 void davbrowser_download(UiObject *ui, DavBrowser *browser, DavResource *reslist, const char *local_path) { 477 void davbrowser_download(UiObject *ui, DavBrowser *browser, DavResource *reslist, const char *local_path) {
478 cxmutstr wtitle = cx_asprintf("Download to: %s", local_path); 478 cxmutstr wtitle = cx_asprintf("Download to: %s", local_path);
479 UiObject *dialog = ui_simple_window(wtitle.ptr, NULL); 479 UiObject *dialog = ui_simple_window(wtitle.ptr);
480 free(wtitle.ptr); 480 free(wtitle.ptr);
481 481
482 DavFileDownload *download = dav_download_create(browser, dialog, reslist, local_path); 482 DavFileDownload *download = dav_download_create(browser, dialog, reslist, local_path);
483 transfer_window_init(dialog, action_download_cancel); 483 transfer_window_init(dialog, action_download_cancel);
484 dav_download_start(download); 484 dav_download_start(download);
1112 1112
1113 if(upload->error) { 1113 if(upload->error) {
1114 cxmutstr errormsg = cx_asprintf("Upload failed: %d", upload->sn->error); // TODO: add full error message 1114 cxmutstr errormsg = cx_asprintf("Upload failed: %d", upload->sn->error); // TODO: add full error message
1115 ui_dialog(event->obj, .title = "Error", .content = errormsg.ptr, .closebutton_label = "OK"); 1115 ui_dialog(event->obj, .title = "Error", .content = errormsg.ptr, .closebutton_label = "OK");
1116 free(errormsg.ptr); 1116 free(errormsg.ptr);
1117 ui_set_group(event->obj->ctx, RESOURCEVIEWER_STATE_MODIFIED); 1117 ui_set_state(event->obj->ctx, RESOURCEVIEWER_STATE_MODIFIED);
1118 } 1118 }
1119 1119
1120 free(upload->text.ptr); 1120 free(upload->text.ptr);
1121 free(upload); 1121 free(upload);
1122 } 1122 }
1132 ui_object_unref(event->obj); 1132 ui_object_unref(event->obj);
1133 if(res->error) { 1133 if(res->error) {
1134 cxmutstr errormsg = cx_asprintf("Proppatch failed: %d", res->sn->error); // TODO: add full error message 1134 cxmutstr errormsg = cx_asprintf("Proppatch failed: %d", res->sn->error); // TODO: add full error message
1135 ui_dialog(event->obj, .title = "Error", .content = errormsg.ptr, .closebutton_label = "OK"); 1135 ui_dialog(event->obj, .title = "Error", .content = errormsg.ptr, .closebutton_label = "OK");
1136 free(errormsg.ptr); 1136 free(errormsg.ptr);
1137 ui_set_group(event->obj->ctx, RESOURCEVIEWER_STATE_MODIFIED); 1137 ui_set_state(event->obj->ctx, RESOURCEVIEWER_STATE_MODIFIED);
1138 res->properties_modified = TRUE; 1138 res->properties_modified = TRUE;
1139 } else { 1139 } else {
1140 CxList *properties = res->properties->data; 1140 CxList *properties = res->properties->data;
1141 CxIterator i = cxListIterator(properties); 1141 CxIterator i = cxListIterator(properties);
1142 cx_foreach(DavPropertyList *, prop, i) { 1142 cx_foreach(DavPropertyList *, prop, i) {
1175 1175
1176 ui_object_ref(res->obj); 1176 ui_object_ref(res->obj);
1177 ui_threadpool_job(res->dav_queue, ui, jobthr_store_properties, res, uithr_store_properties_finished, res); 1177 ui_threadpool_job(res->dav_queue, ui, jobthr_store_properties, res, uithr_store_properties_finished, res);
1178 } 1178 }
1179 1179
1180 ui_unset_group(ui->ctx, RESOURCEVIEWER_STATE_MODIFIED); 1180 ui_unset_state(ui->ctx, RESOURCEVIEWER_STATE_MODIFIED);
1181 } 1181 }
1182 1182
1183 void dav_resourceviewer_destroy(DavResourceViewer *res) { 1183 void dav_resourceviewer_destroy(DavResourceViewer *res) {
1184 1184
1185 } 1185 }
1186 1186
1187 void dav_resourceviewer_property_remove(DavResourceViewer *res, DavPropertyList *prop) { 1187 void dav_resourceviewer_property_remove(DavResourceViewer *res, DavPropertyList *prop) {
1188 if(!prop->isnew) { 1188 if(!prop->isnew) {
1189 dav_remove_property_ns(res->current, prop->ns, prop->name); 1189 dav_remove_property_ns(res->current, prop->ns, prop->name);
1190 ui_set_group(res->obj->ctx, RESOURCEVIEWER_STATE_MODIFIED); 1190 ui_set_state(res->obj->ctx, RESOURCEVIEWER_STATE_MODIFIED);
1191 res->properties_modified = TRUE; 1191 res->properties_modified = TRUE;
1192 } 1192 }
1193 1193
1194 CxList *properties = res->properties->data; 1194 CxList *properties = res->properties->data;
1195 cxListFindRemove(properties, prop); 1195 cxListFindRemove(properties, prop);
1208 prop->xml = NULL; 1208 prop->xml = NULL;
1209 prop->value_full = ui_strdup(res->ctx, text); 1209 prop->value_full = ui_strdup(res->ctx, text);
1210 prop->value_simplified = NULL; 1210 prop->value_simplified = NULL;
1211 prop->update = TRUE; 1211 prop->update = TRUE;
1212 1212
1213 ui_set_group(res->obj->ctx, RESOURCEVIEWER_STATE_MODIFIED); 1213 ui_set_state(res->obj->ctx, RESOURCEVIEWER_STATE_MODIFIED);
1214 res->properties_modified = TRUE; 1214 res->properties_modified = TRUE;
1215 ui_list_update(res->properties); 1215 ui_list_update(res->properties);
1216 } 1216 }
1217 1217
1218 void dav_resourceviewer_property_update_xml(DavResourceViewer *res, DavPropertyList *prop, DavXmlNode *xml) { 1218 void dav_resourceviewer_property_update_xml(DavResourceViewer *res, DavPropertyList *prop, DavXmlNode *xml) {
1228 prop->xml = NULL; 1228 prop->xml = NULL;
1229 prop->isnew = TRUE; 1229 prop->isnew = TRUE;
1230 prop->update = TRUE; 1230 prop->update = TRUE;
1231 1231
1232 ui_list_append(res->properties, prop); 1232 ui_list_append(res->properties, prop);
1233 ui_set_group(res->obj->ctx, RESOURCEVIEWER_STATE_MODIFIED); 1233 ui_set_state(res->obj->ctx, RESOURCEVIEWER_STATE_MODIFIED);
1234 res->properties_modified = TRUE; 1234 res->properties_modified = TRUE;
1235 ui_list_update(res->properties); 1235 ui_list_update(res->properties);
1236 } 1236 }
1237 1237
1238 void dav_resourceviewer_property_add_xml(DavResourceViewer *res, const char *ns, const char *name, const char *nsdef, DavXmlNode *xml) { 1238 void dav_resourceviewer_property_add_xml(DavResourceViewer *res, const char *ns, const char *name, const char *nsdef, DavXmlNode *xml) {

mercurial