| 1067 | } |
| 1068 | |
| 1069 | QString ConfigInfoView::debug_info(struct symbol *sym) |
| 1070 | { |
| 1071 | QString debug; |
| 1072 | QTextStream stream(&debug); |
| 1073 | |
| 1074 | stream << "type: "; |
| 1075 | stream << print_filter(sym_type_name(sym->type)); |
| 1076 | if (sym_is_choice(sym)) |
| 1077 | stream << " (choice)"; |
| 1078 | debug += "<br>"; |
| 1079 | if (sym->rev_dep.expr) { |
| 1080 | stream << "reverse dep: "; |
| 1081 | expr_print(sym->rev_dep.expr, expr_print_help, &stream, E_NONE); |
| 1082 | stream << "<br>"; |
| 1083 | } |
| 1084 | for (struct property *prop = sym->prop; prop; prop = prop->next) { |
| 1085 | switch (prop->type) { |
| 1086 | case P_PROMPT: |
| 1087 | case P_MENU: |
| 1088 | stream << "prompt: <a href=\"m" << sym->name << "\">"; |
| 1089 | stream << print_filter(prop->text); |
| 1090 | stream << "</a><br>"; |
| 1091 | break; |
| 1092 | case P_DEFAULT: |
| 1093 | case P_SELECT: |
| 1094 | case P_RANGE: |
| 1095 | case P_COMMENT: |
| 1096 | case P_IMPLY: |
| 1097 | case P_SYMBOL: |
| 1098 | stream << prop_get_type_name(prop->type); |
| 1099 | stream << ": "; |
| 1100 | expr_print(prop->expr, expr_print_help, |
| 1101 | &stream, E_NONE); |
| 1102 | stream << "<br>"; |
| 1103 | break; |
| 1104 | case P_CHOICE: |
| 1105 | if (sym_is_choice(sym)) { |
| 1106 | stream << "choice: "; |
| 1107 | expr_print(prop->expr, expr_print_help, |
| 1108 | &stream, E_NONE); |
| 1109 | stream << "<br>"; |
| 1110 | } |
| 1111 | break; |
| 1112 | default: |
| 1113 | stream << "unknown property: "; |
| 1114 | stream << prop_get_type_name(prop->type); |
| 1115 | stream << "<br>"; |
| 1116 | } |
| 1117 | if (prop->visible.expr) { |
| 1118 | stream << " dep: "; |
| 1119 | expr_print(prop->visible.expr, expr_print_help, |
| 1120 | &stream, E_NONE); |
| 1121 | stream << "<br>"; |
| 1122 | } |
| 1123 | } |
| 1124 | stream << "<br>"; |
| 1125 | |
| 1126 | return debug; |
nothing calls this directly
no test coverage detected