63 |
63 |
64 static void repolist_add(UiEvent *event, void *userdata) { |
64 static void repolist_add(UiEvent *event, void *userdata) { |
65 SettingsWindow *settings = event->window; |
65 SettingsWindow *settings = event->window; |
66 settings->repo_new = TRUE; |
66 settings->repo_new = TRUE; |
67 settings->selected_repo = -1; |
67 settings->selected_repo = -1; |
|
68 settings_clear_repository(settings); |
68 // switch to editing tab |
69 // switch to editing tab |
69 ui_set(settings->repo_tabview, 1); |
70 ui_set(settings->repo_tabview, 1); |
70 } |
71 } |
71 |
72 |
72 static void repolist_remove(UiEvent *event, void *userdata) { |
73 static void repolist_remove(UiEvent *event, void *userdata) { |
408 if(strlen(name) == 0) { |
409 if(strlen(name) == 0) { |
409 return; |
410 return; |
410 } |
411 } |
411 repo = dav_repository_new(config); |
412 repo = dav_repository_new(config); |
412 dav_config_add_repository(config, repo); |
413 dav_config_add_repository(config, repo); |
413 } else { |
414 } else if(settings->selected_repo >= 0) { |
414 repo = ui_list_get(settings->repos, settings->selected_repo); |
415 repo = ui_list_get(settings->repos, settings->selected_repo); |
415 if(!repo) { |
416 if(!repo) { |
416 fprintf(stderr, "Error: cannot get repository at index %d\n", settings->selected_repo); |
417 fprintf(stderr, "Error: cannot get repository at index %d\n", settings->selected_repo); |
417 return; |
418 return; |
418 } |
419 } |
|
420 } else { |
|
421 return; |
419 } |
422 } |
420 |
423 |
421 // always store name/url nodes |
424 // always store name/url nodes |
422 dav_cfg_string_set_value(config, &repo->name, repo->node, cx_str(ui_get(settings->repo_name)), "name"); |
425 dav_cfg_string_set_value(config, &repo->name, repo->node, cx_str(ui_get(settings->repo_name)), "name"); |
423 dav_cfg_string_set_value(config, &repo->url, repo->node, cx_str(ui_get(settings->repo_url)), "url"); |
426 dav_cfg_string_set_value(config, &repo->url, repo->node, cx_str(ui_get(settings->repo_url)), "url"); |
475 |
478 |
476 settings_update_repolist(settings); |
479 settings_update_repolist(settings); |
477 settings->selected_repo = -1; |
480 settings->selected_repo = -1; |
478 } |
481 } |
479 |
482 |
|
483 void settings_clear_repository(SettingsWindow *settings) { |
|
484 ui_set(settings->repo_name, ""); |
|
485 ui_set(settings->repo_url, ""); |
|
486 ui_set(settings->repo_user, ""); |
|
487 ui_set(settings->repo_password, ""); |
|
488 ui_set(settings->repo_cacert, ""); |
|
489 ui_list_setselection(settings->repo_credentials, 0); |
|
490 ui_list_setselection(settings->repo_keys, 0); |
|
491 ui_list_setselection(settings->repo_tls_versions, 0); |
|
492 ui_set(settings->repo_encryption, 0); |
|
493 ui_set(settings->repo_disable_verification, 0); |
|
494 } |
|
495 |
480 void settings_update_repolist(SettingsWindow *settings) { |
496 void settings_update_repolist(SettingsWindow *settings) { |
481 DavConfig *config = settings->config; |
497 DavConfig *config = settings->config; |
482 |
498 |
483 ui_list_clear(settings->repos); |
499 ui_list_clear(settings->repos); |
484 |
500 |