Explicit calendar and todo view configuration
The configuration settings for calendar view (monthly/weekly) and todo view (hide/show completed) used to be saved automatically on calcurse exit, with values taken from the current interactive settings. They could not be set explicitly in the configuration menues. Configuration settings are no longer saved on program exit, but on exit from the configuration menu. This means that the saved values are those that were current when the configuration menu was entered. To change a saved value, you must set the view as desired and then enter/exit the configuration menu. The preferred calendar and todo views are no longer automatically taken from the interactive settings, but are explicitly set in the general options menu. Default values are monthly view and hide completed view. Signed-off-by: Lars Henriksen <LarsHenriksen@get2net.dk> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
This commit is contained in:
parent
b9f23e134a
commit
63b03c6b36
@ -256,8 +256,24 @@ enum pos {
|
||||
RIGHT
|
||||
};
|
||||
|
||||
/* Available views for the calendar panel. */
|
||||
enum cal_view {
|
||||
CAL_MONTH_VIEW,
|
||||
CAL_WEEK_VIEW,
|
||||
CAL_VIEWS
|
||||
};
|
||||
|
||||
/* Available views for the todo panel. */
|
||||
enum todo_view {
|
||||
TODO_SHOW_COMPLETED_VIEW,
|
||||
TODO_HIDE_COMPLETED_VIEW,
|
||||
TODO_VIEWS
|
||||
};
|
||||
|
||||
/* General configuration variables. */
|
||||
struct conf {
|
||||
enum cal_view cal_view;
|
||||
enum todo_view todo_view;
|
||||
unsigned auto_save;
|
||||
unsigned auto_gc;
|
||||
unsigned periodic_save;
|
||||
@ -447,20 +463,7 @@ struct day_item {
|
||||
union aptev_ptr item;
|
||||
};
|
||||
|
||||
/* Available views for the calendar panel. */
|
||||
enum {
|
||||
CAL_MONTH_VIEW,
|
||||
CAL_WEEK_VIEW,
|
||||
CAL_VIEWS
|
||||
};
|
||||
|
||||
/* Available views for the todo panel. */
|
||||
enum {
|
||||
TODO_SHOW_COMPLETED_VIEW,
|
||||
TODO_HIDE_COMPLETED_VIEW,
|
||||
TODO_VIEWS
|
||||
};
|
||||
|
||||
/* Shared variables for the notification threads. */
|
||||
struct notify_app {
|
||||
long time;
|
||||
int got_app;
|
||||
|
20
src/config.c
20
src/config.c
@ -213,11 +213,13 @@ static int config_parse_color_pair(int *dest1, int *dest2, const char *val)
|
||||
|
||||
static int config_parse_calendar_view(void *dummy, const char *val)
|
||||
{
|
||||
if (!strcmp(val, "monthly"))
|
||||
if (!strcmp(val, "monthly")) {
|
||||
ui_calendar_set_view(CAL_MONTH_VIEW);
|
||||
else if (!strcmp(val, "weekly"))
|
||||
conf.cal_view = CAL_MONTH_VIEW;
|
||||
} else if (!strcmp(val, "weekly")) {
|
||||
ui_calendar_set_view(CAL_WEEK_VIEW);
|
||||
else
|
||||
conf.cal_view = CAL_WEEK_VIEW;
|
||||
} else
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
@ -225,11 +227,13 @@ static int config_parse_calendar_view(void *dummy, const char *val)
|
||||
|
||||
static int config_parse_todo_view(void *dummy, const char *val)
|
||||
{
|
||||
if (!strcmp(val, "show-completed"))
|
||||
if (!strcmp(val, "show-completed")) {
|
||||
ui_todo_set_view(TODO_SHOW_COMPLETED_VIEW);
|
||||
else if (!strcmp(val, "hide-completed"))
|
||||
conf.todo_view = TODO_SHOW_COMPLETED_VIEW;
|
||||
} else if (!strcmp(val, "hide-completed")) {
|
||||
ui_todo_set_view(TODO_HIDE_COMPLETED_VIEW);
|
||||
else
|
||||
conf.todo_view = TODO_HIDE_COMPLETED_VIEW;
|
||||
} else
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
@ -426,7 +430,7 @@ static char *config_color_theme_name(void)
|
||||
|
||||
static int config_serialize_calendar_view(char **buf, void *dummy)
|
||||
{
|
||||
if (ui_calendar_get_view() == CAL_WEEK_VIEW)
|
||||
if (conf.cal_view == CAL_WEEK_VIEW)
|
||||
*buf = mem_strdup("weekly");
|
||||
else
|
||||
*buf = mem_strdup("monthly");
|
||||
@ -436,7 +440,7 @@ static int config_serialize_calendar_view(char **buf, void *dummy)
|
||||
|
||||
static int config_serialize_todo_view(char **buf, void *dummy)
|
||||
{
|
||||
if (ui_todo_get_view() == TODO_SHOW_COMPLETED_VIEW)
|
||||
if (conf.todo_view == TODO_SHOW_COMPLETED_VIEW)
|
||||
*buf = mem_strdup("show-completed");
|
||||
else
|
||||
*buf = mem_strdup("hide-completed");
|
||||
|
35
src/custom.c
35
src/custom.c
@ -526,6 +526,8 @@ void custom_color_config(void)
|
||||
enum {
|
||||
COMPACT_PANELS,
|
||||
DEFAULT_PANEL,
|
||||
CAL_VIEW,
|
||||
TODO_VIEW,
|
||||
AUTO_SAVE,
|
||||
AUTO_GC,
|
||||
PERIODIC_SAVE,
|
||||
@ -548,6 +550,8 @@ static void print_general_option(int i, WINDOW *win, int y, int hilt, void *cb_d
|
||||
char *opt[NB_OPTIONS] = {
|
||||
"appearance.compactpanels = ",
|
||||
"appearance.defaultpanel = ",
|
||||
"appearance.calendarview = ",
|
||||
"appearance.todoview = ",
|
||||
"general.autosave = ",
|
||||
"general.autogc = ",
|
||||
"general.periodicsave = ",
|
||||
@ -588,6 +592,22 @@ static void print_general_option(int i, WINDOW *win, int y, int hilt, void *cb_d
|
||||
mvwaddstr(win, y + 1, XPOS,
|
||||
_("(specifies the panel that is selected by default)"));
|
||||
break;
|
||||
case CAL_VIEW:
|
||||
custom_apply_attr(win, ATTR_HIGHEST);
|
||||
mvwaddstr(win, y, XPOS + strlen(opt[CAL_VIEW]),
|
||||
conf.cal_view == CAL_MONTH_VIEW ?
|
||||
_("monthly") : _("weekly"));
|
||||
custom_remove_attr(win, ATTR_HIGHEST);
|
||||
mvwaddstr(win, y + 1, XPOS, _("(preferred calendar display)"));
|
||||
break;
|
||||
case TODO_VIEW:
|
||||
custom_apply_attr(win, ATTR_HIGHEST);
|
||||
mvwaddstr(win, y, XPOS + strlen(opt[TODO_VIEW]),
|
||||
conf.todo_view == TODO_SHOW_COMPLETED_VIEW ?
|
||||
_("show completed") : _("hide completed"));
|
||||
custom_remove_attr(win, ATTR_HIGHEST);
|
||||
mvwaddstr(win, y + 1, XPOS, _("(preferred todo display)"));
|
||||
break;
|
||||
case AUTO_SAVE:
|
||||
print_bool_option_incolor(win, conf.auto_save, y,
|
||||
XPOS + strlen(opt[AUTO_SAVE]));
|
||||
@ -727,6 +747,21 @@ static void general_option_edit(int i)
|
||||
else
|
||||
conf.default_panel++;
|
||||
break;
|
||||
case CAL_VIEW:
|
||||
if (conf.cal_view == CAL_WEEK_VIEW)
|
||||
conf.cal_view = CAL_MONTH_VIEW;
|
||||
else
|
||||
conf.cal_view++;
|
||||
ui_calendar_set_view(conf.cal_view);
|
||||
break;
|
||||
case TODO_VIEW:
|
||||
if (conf.todo_view == TODO_HIDE_COMPLETED_VIEW)
|
||||
conf.todo_view = TODO_SHOW_COMPLETED_VIEW;
|
||||
else
|
||||
conf.todo_view++;
|
||||
ui_todo_set_view(conf.todo_view);
|
||||
ui_todo_load_items();
|
||||
break;
|
||||
case HEADING_POS:
|
||||
if (conf.heading_pos == RIGHT)
|
||||
conf.heading_pos = LEFT;
|
||||
|
@ -120,6 +120,8 @@ void vars_init(void)
|
||||
const char *ed, *pg, *mt;
|
||||
|
||||
/* Variables for user configuration */
|
||||
conf.cal_view = CAL_MONTH_VIEW;
|
||||
conf.todo_view = TODO_HIDE_COMPLETED_VIEW;
|
||||
conf.confirm_quit = 1;
|
||||
conf.confirm_delete = 1;
|
||||
conf.auto_save = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user