int action_list_move_item_down() { Pw* curpw; PWList *curpwl; int worked = 0; // Do nothing if searching if(search_results != NULL) { return; } switch(uilist_get_highlighted_type()){ case PW_ITEM: curpw = uilist_get_highlighted_item(); worked = pwlist_change_item_order(curpw, current_pw_sublist, 0); break; case PW_SUBLIST: curpwl = uilist_get_highlighted_sublist(); worked = pwlist_change_list_order(curpwl, 0); break; case PW_UPLEVEL: case PW_NULL: default: /* do nothing */ break; } if(worked) { uilist_down(); } }
int action_list_move_item_up() { Pw* curpw; PWList *curpwl; int worked = 0; switch(uilist_get_highlighted_type()){ case PW_ITEM: curpw = uilist_get_highlighted_item(); worked = pwlist_change_item_order(curpw, current_pw_sublist, 1); break; case PW_SUBLIST: curpwl = uilist_get_highlighted_sublist(); worked = pwlist_change_list_order(curpwl, 1); break; case PW_UPLEVEL: case PW_NULL: default: /* do nothing */ break; } if(worked) { uilist_up(); } }
int action_list_launch() { int i; Pw* curpw; char msg[STRING_LONG]; switch(uilist_get_highlighted_type()){ case PW_ITEM: debug("list_launch: is a pw"); curpw = uilist_get_highlighted_item(); if(curpw){ i = launch(curpw); snprintf(msg, STRING_LONG, "Application exited with code %d", i); ui_statusline_msg(msg); } break; case PW_SUBLIST: case PW_UPLEVEL: case PW_NULL: default: /* do nothing */ break; } }
int action_list_export() { Pw* curpw; PWList *curpwl; debug("list_export: enter switch"); switch(uilist_get_highlighted_type()){ case PW_ITEM: debug("list_export: is a pw"); curpw = uilist_get_highlighted_item(); if(curpw){ pwlist_export_passwd(curpw); } break; case PW_SUBLIST: debug("list_export: is a pwlist"); curpwl = uilist_get_highlighted_sublist(); if(curpwl){ pwlist_export_list(curpwl); } break; case PW_UPLEVEL: case PW_NULL: default: /* do nothing */ break; } }
int action_list_move_item_up_level() { Pw* curpw; PWList *curpwl, *iter; int i; char str[STRING_LONG]; char answer[STRING_MEDIUM]; switch(uilist_get_highlighted_type()){ case PW_ITEM: curpw = uilist_get_highlighted_item(); if(curpw && current_pw_sublist->parent){ pwlist_detach_pw(current_pw_sublist, curpw); pwlist_add_ptr(current_pw_sublist->parent, curpw); uilist_refresh(); } break; case PW_SUBLIST: curpwl = uilist_get_highlighted_sublist(); if(curpwl && current_pw_sublist->parent){ pwlist_detach_sublist(current_pw_sublist, curpwl); pwlist_add_sublist(current_pw_sublist->parent, curpwl); uilist_refresh(); } break; case PW_UPLEVEL: case PW_NULL: default: /* do nothing */ break; } }
int action_list_select_item() { Pw* curpw; PWList* curpwl; switch(uilist_get_highlighted_type()){ case PW_ITEM: curpw = uilist_get_highlighted_item(); if(curpw){ action_edit_pw(curpw); } break; case PW_SUBLIST: curpwl = uilist_get_highlighted_sublist(); if(curpwl){ current_pw_sublist = curpwl; uilist_refresh(); } break; case PW_UPLEVEL: action_list_up_one_level(); break; case PW_NULL: default: /* do nothing */ break; } }
int action_list_select_item() { Pw* curpw; PWList* curpwl; PWSearchResult* cursearch; // Are they searching, or in normal mode? if(search_results != NULL) { cursearch = uilist_get_highlighted_searchresult(); curpwl = cursearch->sublist; curpw = cursearch->entry; if(curpw){ action_edit_pw(curpw); } else if(curpwl){ // Quite out of searching search_remove(); // Now display the selected sublist current_pw_sublist = curpwl; uilist_refresh(); } } else { switch(uilist_get_highlighted_type()){ case PW_ITEM: curpw = uilist_get_highlighted_item(); if(curpw){ action_edit_pw(curpw); } break; case PW_SUBLIST: curpwl = uilist_get_highlighted_sublist(); if(curpwl){ current_pw_sublist = curpwl; uilist_refresh(); } break; case PW_UPLEVEL: action_list_up_one_level(); break; case PW_NULL: default: /* do nothing */ break; } } }
int action_list_delete_item() { Pw* curpw; PWList* curpwl; int i; char str[STRING_LONG]; switch(uilist_get_highlighted_type()){ case PW_ITEM: curpw = uilist_get_highlighted_item(); if(curpw){ snprintf(str, STRING_LONG, "Really delete \"%s\"", curpw->name); i = ui_statusline_yes_no(str, 0); if(i){ pwlist_delete_pw(current_pw_sublist, curpw); ui_statusline_msg("Password deleted"); } else { ui_statusline_msg("Password not deleted"); } } break; case PW_SUBLIST: curpwl = uilist_get_highlighted_sublist(); if(curpwl){ snprintf(str, STRING_LONG, "Really delete Sublist \"%s\"", curpwl->name); i = ui_statusline_yes_no(str, 0); if(i){ pwlist_delete_sublist(curpwl->parent, curpwl); ui_statusline_msg("Password Sublist deleted"); } else { ui_statusline_msg("Password not deleted"); } } break; case PW_UPLEVEL: case PW_NULL: default: /* do nothing */ break; } uilist_refresh(); }
int action_list_rename() { Pw* curpw; PWList* curpwl; char *new_name; new_name = malloc(STRING_MEDIUM); switch(uilist_get_highlighted_type()){ case PW_ITEM: curpw = uilist_get_highlighted_item(); if(curpw){ ui_statusline_ask_str("New Name", new_name, STRING_MEDIUM); if(strlen(new_name) > 0) { pwlist_rename_item(curpw, new_name); } } break; case PW_SUBLIST: curpwl = uilist_get_highlighted_sublist(); if(curpwl){ ui_statusline_ask_str("New Sublist Name", new_name, STRING_MEDIUM); if(strlen(new_name) > 0) { pwlist_rename_sublist(curpwl, new_name); } } break; case PW_UPLEVEL: case PW_NULL: default: /* do nothing */ break; } uilist_refresh(); }
int action_list_launch_xclip() { int i; Pw* curpw; char msg[STRING_LONG]; switch(uilist_get_highlighted_type()){ case PW_ITEM: debug("list_launch_xclip: is a pw"); curpw = uilist_get_highlighted_item(); if(curpw){ launch_xclip(curpw); ui_statusline_msg("Copied password to X clipboard"); } break; case PW_SUBLIST: case PW_UPLEVEL: case PW_NULL: default: /* do nothing */ break; } }
int action_list_locate() { int depth = 0, count = 0; char* currentName; InputField* fields; Pw* curpw = NULL; PWList *curpwl = NULL; PWList *parent = NULL; PWSearchResult* cursearch; if(search_results != NULL) { cursearch = uilist_get_highlighted_searchresult(); curpwl = cursearch->sublist; curpw = cursearch->entry; if(curpw) { parent = curpwl; } else { parent = curpwl->parent; } } else { parent = current_pw_sublist; switch(uilist_get_highlighted_type()){ case PW_ITEM: curpw = uilist_get_highlighted_item(); break; case PW_SUBLIST: curpwl = uilist_get_highlighted_sublist(); break; default: /* do nothing */ break; } } if(curpw) { currentName = curpw->name; depth = 1; } else if(curpwl) { currentName = curpwl->name; depth = 1; } // Figure out how many parents we have curpwl = parent; while(curpwl){ curpwl = curpwl->parent; depth++; } count = depth; // Now grab their names fields = calloc(sizeof(InputField), depth); if(currentName){ depth--; _create_information_field(currentName, &fields[depth]); } curpwl = parent; while(curpwl){ depth--; _create_information_field(curpwl->name, &fields[depth]); curpwl = curpwl->parent; } // Have it rendered action_input_dialog(fields, count, "Location of Item"); // All done, tidy up free(fields); }
int action_list_move_item() { Pw* curpw; PWList *curpwl, *iter; int i; char str[STRING_LONG]; char answer[STRING_MEDIUM]; switch(uilist_get_highlighted_type()){ case PW_ITEM: curpw = uilist_get_highlighted_item(); if(curpw){ while(1){ snprintf(str, STRING_LONG, "Move \"%s\" to where?", curpw->name); ui_statusline_ask_str(str, answer, STRING_MEDIUM); /* if user just enters nothing do nothing */ if(answer[0] == 0){ return 0; } for(iter = current_pw_sublist->sublists; iter != NULL; iter = iter->next){ if( strcmp(iter->name, answer) == 0 ){ pwlist_detach_pw(current_pw_sublist, curpw); pwlist_add_ptr(iter, curpw); uilist_refresh(); return 0; } } ui_statusline_msg("Sublist does not exist, try again"); getch(); } } break; case PW_SUBLIST: curpwl = uilist_get_highlighted_sublist(); if(curpwl){ while(1){ snprintf(str, STRING_LONG, "Move sublist \"%s\" to where?", curpwl->name); ui_statusline_ask_str(str, answer, STRING_MEDIUM); /* if user just enters nothing, do nothing */ if(answer[0] == 0){ return 0; } if( strcmp(answer, curpwl->name) == 0 ){ return 0; } for(iter = current_pw_sublist->sublists; iter != NULL; iter = iter->next){ if( strcmp(iter->name, answer) == 0 ){ pwlist_detach_sublist(current_pw_sublist, curpwl); pwlist_add_sublist(iter, curpwl); uilist_refresh(); return 0; } } ui_statusline_msg("Sublist does not exist, try again"); getch(); } } break; case PW_UPLEVEL: case PW_NULL: default: /* do nothing */ break; } }