Skip to content
Snippets Groups Projects
Commit d2d23d66 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

Start of a menu to edit web lists.

Goodnight.
parent 8de30807
No related branches found
No related tags found
No related merge requests found
Pipeline #8016 failed
...@@ -2913,6 +2913,59 @@ kbwait(void) ...@@ -2913,6 +2913,59 @@ kbwait(void)
} }
} }
static void
edit_web_lists(void)
{
static int cur = 0;
static int bar = 0;
size_t alloced_size = 0;
char **list = NULL;
while (!quitting) {
size_t count;
COUNT_LIST_ITEMS(settings.webgets, count);
if (count > alloced_size) {
char **newlist = realloc(list, (count + 1) * sizeof(char *));
if (newlist == NULL) {
free(list);
return;
}
list = newlist;
alloced_size = count;
}
for (size_t i = 0; i < count; i++) {
list[i] = settings.webgets[i]->name;
list[i + 1] = NULL;
}
// TODO: Help
int i = uifc.list(WIN_SAV | WIN_INS | WIN_INSACT | WIN_DEL | WIN_XTR | WIN_ACT,
0, 0, 0, &cur, &bar, "Web Lists", list);
if (i == -1) {
check_exit(false);
break;
}
if (i & MSK_DEL) {
// TODO: Functions to amipulate these...
}
else if (i & MSK_INS) {
// TODO: Functions to amipulate these...
}
else if (i >= 0 && i <= count) {
char tmp[INI_MAX_VALUE_LEN + 1];
strlcpy(tmp, settings.webgets[i]->value, sizeof(tmp));
// TODO: Help
if (uifc.input(WIN_SAV | WIN_MID, 0, 0, "Web List URI", tmp, sizeof(tmp) - 1, K_EDIT) == -1) {
check_exit(false);
}
else {
free(settings.webgets[i]->value);
settings.webgets[i]->value = strdup(tmp);
}
}
}
}
/* /*
* Displays the BBS list and allows edits to user BBS list * Displays the BBS list and allows edits to user BBS list
* Mode is one of BBSLIST_SELECT or BBSLIST_EDIT * Mode is one of BBSLIST_SELECT or BBSLIST_EDIT
...@@ -2934,6 +2987,7 @@ show_bbslist(char *current, int connected) ...@@ -2934,6 +2987,7 @@ show_bbslist(char *current, int connected)
char *p; char *p;
char addy[LIST_ADDR_MAX + 1]; char addy[LIST_ADDR_MAX + 1];
char *settings_menu[] = { char *settings_menu[] = {
"Web Lists",
"Default Connection Settings", "Default Connection Settings",
"Current Screen Mode", "Current Screen Mode",
"Font Management", "Font Management",
...@@ -2943,6 +2997,7 @@ show_bbslist(char *current, int connected) ...@@ -2943,6 +2997,7 @@ show_bbslist(char *current, int connected)
NULL NULL
}; };
char *connected_settings_menu[] = { char *connected_settings_menu[] = {
"Web Lists",
"Default Connection Settings", "Default Connection Settings",
"Font Management", "Font Management",
"Program Settings", "Program Settings",
...@@ -3571,6 +3626,8 @@ show_bbslist(char *current, int connected) ...@@ -3571,6 +3626,8 @@ show_bbslist(char *current, int connected)
last_mode = cio_api.mode; last_mode = cio_api.mode;
} }
uifc.helpbuf = "`SyncTERM Settings Menu`\n\n" uifc.helpbuf = "`SyncTERM Settings Menu`\n\n"
"~ Web Lists ~\n"
" Modify the list of dialing directoies fetch from the web\n\n"
"~ Default Connection Settings ~\n" "~ Default Connection Settings ~\n"
" Modify the settings that are used by default for new entries\n\n" " Modify the settings that are used by default for new entries\n\n"
"~ Current Screen Mode ~\n" "~ Current Screen Mode ~\n"
...@@ -3601,7 +3658,7 @@ show_bbslist(char *current, int connected) ...@@ -3601,7 +3658,7 @@ show_bbslist(char *current, int connected)
&sbar, &sbar,
"SyncTERM Settings", "SyncTERM Settings",
connected ? connected_settings_menu : settings_menu); connected ? connected_settings_menu : settings_menu);
if (connected && (val >= 1)) if (connected && (val >= 2))
val++; val++;
switch (val) { switch (val) {
case -2 - 0x3000: /* ALT-B - Scrollback */ case -2 - 0x3000: /* ALT-B - Scrollback */
...@@ -3668,10 +3725,13 @@ show_bbslist(char *current, int connected) ...@@ -3668,10 +3725,13 @@ show_bbslist(char *current, int connected)
free(list); free(list);
free(copied); free(copied);
return NULL; return NULL;
case 0: /* Edit default connection settings */ case 0: /* Edit Web Lists */
edit_web_lists();
break;
case 1: /* Edit default connection settings */
edit_list(NULL, &defaults, settings.list_path, true); edit_list(NULL, &defaults, settings.list_path, true);
break; break;
case 1: { /* Screen Mode */ case 2: { /* Screen Mode */
struct text_info ti; struct text_info ti;
gettextinfo(&ti); gettextinfo(&ti);
...@@ -3712,13 +3772,13 @@ show_bbslist(char *current, int connected) ...@@ -3712,13 +3772,13 @@ show_bbslist(char *current, int connected)
} }
} }
break; break;
case 2: /* Font management */ case 3: /* Font management */
if (!safe_mode) { if (!safe_mode) {
font_management(); font_management();
load_font_files(); load_font_files();
} }
break; break;
case 3: /* Program settings */ case 4: /* Program settings */
change_settings(connected); change_settings(connected);
load_bbslist(list, load_bbslist(list,
BBSLIST_SIZE, BBSLIST_SIZE,
...@@ -3733,7 +3793,7 @@ show_bbslist(char *current, int connected) ...@@ -3733,7 +3793,7 @@ show_bbslist(char *current, int connected)
list[opt] ? strdup(list[opt]->name) : NULL); list[opt] ? strdup(list[opt]->name) : NULL);
oldopt = -1; oldopt = -1;
break; break;
case 4: /* File Locations */ case 5: /* File Locations */
strcpy(personal_list, settings.list_path); strcpy(personal_list, settings.list_path);
get_syncterm_filename(setting_file, get_syncterm_filename(setting_file,
sizeof(setting_file), sizeof(setting_file),
...@@ -3781,7 +3841,7 @@ show_bbslist(char *current, int connected) ...@@ -3781,7 +3841,7 @@ show_bbslist(char *current, int connected)
NULL, NULL,
NULL); NULL);
break; break;
case 5: // Build Options case 6: // Build Options
asprintf(&p, asprintf(&p,
"`SyncTERM Build Options`\n\n" "`SyncTERM Build Options`\n\n"
"%s Cryptlib (ie: SSH and TLS)\n" "%s Cryptlib (ie: SSH and TLS)\n"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment