application/settings.c

changeset 63
d0eeb2b98dae
parent 62
dbde5e038ea9
equal deleted inserted replaced
62:dbde5e038ea9 63:d0eeb2b98dae
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

mercurial