Configuration variable for system events

After user acknowledgement a system event is deleted from the event queue.
The configuration variable determines whether it is turned into an appointment
(for later inspection) or not.

Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
This commit is contained in:
Lars Henriksen 2018-09-15 17:56:03 +02:00 committed by Lukas Fleischer
parent 3d93ffa7ca
commit 53b55930e8
5 changed files with 18 additions and 2 deletions

View File

@ -707,8 +707,10 @@ int main(int argc, char **argv)
while (que_ued()) {
que_show();
if (conf.systemevents) {
que_save();
do_storage(0);
}
wins_update(FLAG_ALL);
que_rem();
}

View File

@ -263,6 +263,7 @@ struct conf {
unsigned auto_save;
unsigned auto_gc;
unsigned periodic_save;
unsigned systemevents;
unsigned confirm_quit;
unsigned confirm_delete;
enum win default_panel;

View File

@ -112,6 +112,7 @@ static const struct confvar confmap[] = {
{"general.confirmquit", CONFIG_HANDLER_BOOL(conf.confirm_quit)},
{"general.firstdayofweek", config_parse_first_day_of_week, config_serialize_first_day_of_week, NULL},
{"general.periodicsave", CONFIG_HANDLER_UNSIGNED(conf.periodic_save)},
{"general.systemevents", CONFIG_HANDLER_BOOL(conf.systemevents)},
{"general.systemdialogs", CONFIG_HANDLER_BOOL(conf.system_dialogs)},
{"notification.command", CONFIG_HANDLER_STR(nbar.cmd)},
{"notification.notifyall", config_parse_notifyall, config_serialize_notifyall, NULL},

View File

@ -529,6 +529,7 @@ enum {
AUTO_SAVE,
AUTO_GC,
PERIODIC_SAVE,
SYSTEM_EVENTS,
CONFIRM_QUIT,
CONFIRM_DELETE,
SYSTEM_DIAGS,
@ -550,6 +551,7 @@ static void print_general_option(int i, WINDOW *win, int y, int hilt, void *cb_d
"general.autosave = ",
"general.autogc = ",
"general.periodicsave = ",
"general.systemevents = ",
"general.confirmquit = ",
"general.confirmdelete = ",
"general.systemdialogs = ",
@ -607,6 +609,12 @@ static void print_general_option(int i, WINDOW *win, int y, int hilt, void *cb_d
_("(if not null, automatically save data every 'periodic_save' "
"minutes)"));
break;
case SYSTEM_EVENTS:
print_bool_option_incolor(win, conf.systemevents, y,
XPOS + strlen(opt[SYSTEM_EVENTS]));
mvwaddstr(win, y + 1, XPOS,
_("(if YES, system events are turned into appointments (or else deleted))"));
break;
case CONFIRM_QUIT:
print_bool_option_incolor(win, conf.confirm_quit, y,
XPOS + strlen(opt[CONFIRM_QUIT]));
@ -743,6 +751,9 @@ static void general_option_edit(int i)
}
}
break;
case SYSTEM_EVENTS:
conf.systemevents = !conf.systemevents;
break;
case CONFIRM_QUIT:
conf.confirm_quit = !conf.confirm_quit;
break;

View File

@ -124,6 +124,7 @@ void vars_init(void)
conf.auto_save = 1;
conf.auto_gc = 0;
conf.periodic_save = 0;
conf.systemevents = 1;
conf.default_panel = CAL;
conf.compact_panels = 0;
conf.system_dialogs = 1;