summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Henriksen <LarsHenriksen@get2net.dk>2018-09-15 17:56:03 +0200
committerLukas Fleischer <lfleischer@calcurse.org>2018-10-21 20:02:57 +0200
commit53b55930e8021f28a5393896b29b6a01d81cadd3 (patch)
tree4491572b16b9705b5e5a4f78b3f5518835ecdd9c
parent3d93ffa7ca7918034ec485fcd7c30b5e6cfe217d (diff)
downloadcalcurse-53b55930e8021f28a5393896b29b6a01d81cadd3.tar.gz
calcurse-53b55930e8021f28a5393896b29b6a01d81cadd3.zip
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>
-rw-r--r--src/calcurse.c6
-rw-r--r--src/calcurse.h1
-rw-r--r--src/config.c1
-rw-r--r--src/custom.c11
-rw-r--r--src/vars.c1
5 files changed, 18 insertions, 2 deletions
diff --git a/src/calcurse.c b/src/calcurse.c
index 1b46577..7bdcf1e 100644
--- a/src/calcurse.c
+++ b/src/calcurse.c
@@ -707,8 +707,10 @@ int main(int argc, char **argv)
while (que_ued()) {
que_show();
- que_save();
- do_storage(0);
+ if (conf.systemevents) {
+ que_save();
+ do_storage(0);
+ }
wins_update(FLAG_ALL);
que_rem();
}
diff --git a/src/calcurse.h b/src/calcurse.h
index be2199a..a54f2bc 100644
--- a/src/calcurse.h
+++ b/src/calcurse.h
@@ -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;
diff --git a/src/config.c b/src/config.c
index 9e13eaf..61527be 100644
--- a/src/config.c
+++ b/src/config.c
@@ -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},
diff --git a/src/custom.c b/src/custom.c
index cf1cce5..df5c174 100644
--- a/src/custom.c
+++ b/src/custom.c
@@ -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;
diff --git a/src/vars.c b/src/vars.c
index 3a8019a..30393fd 100644
--- a/src/vars.c
+++ b/src/vars.c
@@ -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;