Age | Commit message (Collapse) | Author |
|
Add a second view to the todo panel that hides all completed items.
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
|
|
Add a new --export-uid command line option that adds each item's hash to
the UID property when exporting.
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
|
|
When this option is used together with -i/--import, the object
identifiers of imported objects are printed to stdout.
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
|
|
Implement a -q/--quiet command line option to disable system dialogs
temporarily.
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
|
|
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
|
|
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
|
|
Show a warning when the user presses the generic-help binding and the
main help document is not available.
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
|
|
Support the "Add item" key binding in the calendar panel and make it add
a new appointment.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
In an effort to better integrate the import process with external
applications, it's desirable to have a mechanism by which external
programs can trigger a reload of calcurse's data.
This patch adds that functionality via SIGUSR1. The reload request is
handled in the main loop. When the user is currently entering data, the
request is delayed until the main loop is re-entered.
Signed-off-by: Tim Hentenaar <tim@hentenaar.com>
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Adds a new function io_reload_data() which can be used to reload all
appointments and TODO items.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
The item filters now apply to both appointments and TODO items. Also,
add a new type mask "todo" and the following new filter options:
* --filter-priority
* --filter-completed
* --filter-uncompleted
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
This adds the following filter options that allow for restricting the
set of items that are read from the appointments file:
* --filter-type
* --filter-start-from
* --filter-start-to
* --filter-start-after
* --filter-start-before
* --filter-end-from
* --filter-end-to
* --filter-end-after
* --filter-end-before
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Suggested-by: HÃ¥kan Jerning <jerning@home.se>
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Use asprintf() in some cold code paths. While allocating memory on the
heap is a bit slower, using asprintf() is a bit more memory efficient
and less prone to buffer overflow errors.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Use mem_malloc() instead which automatically picks the right
implementation depending on whether memory debugging is enabled or not.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Prevent the notification thread from accessing data structures for
appointments and todo items while we are recreating them.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
If the backup file and the data file are equal, there is no need to run
the merge tool.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Allow for passing an arbitrary number of arguments. This also allows us
to remove wins_launch_external2() and use wins_launch_external() at all
call sites instead.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
This allows for merging the (unsaved) items with the items from the data
files when invoking the reload operation. To this end, an external merge
tool (defaults to vimdiff) is used.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Since the reload operation overwrites all changes, warn before reloading
if there are unsaved modifications.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
This allows for reloading the appointment and todo item files without
having to restart calcurse.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
When switching to the generic linked list implementation for recurring
events in 9fab248 (Use generic lists for recurring apointments and
events., 2011-04-16), no initialization routine for the list of
recurring events was added. Fix this and properly initialize the list on
startup.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Reload (and show) items into the list box after reading data files.
Reported-by: BARE Willy sprl <barewillysprl@euphonynet.be>
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Rewrite the panel resize code and remove the code that reinitializes the
caption and the selected item when the window is resized.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Use the generic list box implementation for the appointments panel. This
results in some major changes to how the items are printed.
Note that this temporarily removes the heading showing the POM and the
date as well as the separating line between events and appointments.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
This is a complete overhaul of the TODO list user interface. The new
implementation uses the generic list box panel.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
When pressing escape or entering an empty command, we returned from
key_generic_cmd() without updating the screen. Fix this by creating a
cleanup section at the bottom of key_generic_cmd() and jump to that
section when the command prompt is cancelled.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
This adds following vim-style commands to the command mode:
* write
* w
* quit
* q
* wq
Commands can be suffixed with a "!" to force execution.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Now that we moved the online help code into a separate function, use
that to display the introduction help page when pressing the generic
help key binding.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Reintroduce help.c and move the online help code into a new function
display_help().
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Add aliases and choose the right help topic if the user requests help on
a key binding or a key binding label.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
In addition to getting help on specific topics, users can type things
like ":help s" or ":help ^A" to get help on specific key bindings now.
Note that we do not add help texts for these keys here -- we will alias
key bindings to already existing topics in a follow-up patch.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Remove the old online help system and change the generic help key to do
the same thing as ":help".
This also removes some context-sensitive help. We should think about
re-adding support for this later.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
This adds a very basic explanation of the new help command that can be
displayed using ":help intro". This introduction is also added as
default page so that users can simply type ":help" instead.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
This adds a "help" command to the list of available command mode
commands. You can currently type "help", followed by a topic like "add".
calcurse will then try to open a file named "add.txt" in the
documentation directory and display it in an external pager.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
This adds support for vim-style command mode. The command mode can be
entered with pressing ":" (by default, the key binding is configurable).
Currently, no command is supported. Support for various commands will be
added later.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
* Remove space before punctuation.
* Use "TODO" instead of "ToDo".
* Strip some formats to make sure lines are <=80 characters wide.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
This completes our switch to the Linux kernel coding style. Note that we
still use deeply nested constructs at some places which need to be fixed
up later.
Converted using the `Lindent` script from the Linux kernel code base,
along with some manual fixes.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
From the Linux kernel coding guidelines:
Do not unnecessarily use braces where a single statement will do.
[...] This does not apply if one branch of a conditional statement
is a single statement. Use braces in both branches.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
This unit belongs to the presentation layer -- rename the file
accordingly.
Also, rename calendar_*() to ui_calendar_*().
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
* Move UI-related functions to "ui-todo.c".
* Rename UI-related functions to ui_todo_*().
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
* Move UI-related functions to "ui-day.c".
* Rename UI-related functions to ui_day_*().
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
* Rename "interaction.c" to "ui-day.c" since it no longer contains
todo-related UI functions.
* Rename appointment/event-related UI functions to ui_day_*().
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
* Move todo-related UI functions from "interaction.c" to a new
compilation unit "ui-todo.c".
* Rename all todo-related UI functions to todo_ui_*().
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
|
|
Add 2013 to the copyright range for all source and documentation files.
Reported-by: Frederic Culot <frederic@culot.org>
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|