- 08 Jun, 2015 1 commit
-
-
Bram Schoenmakers authored
Started on the UI that I envisioned since the very beginning of this project, 364 days ago. The UI is inspired by TweetDeck, the column-like Twitter interface. Every column is associated with a View object (which has a filter and a sort order on the active todo.txt file). So each column can show a particular part of the todo.txt files. E.g, a column for today's items, a column for overdue items or a column for a particular project (filter: GrepFilter("+SomeProject")). The way topydo is designed was always with this UI in mind. Commands ('add', 'do', etc.) should be independent of the UI that invoked them, therefore they never print to stdout but output to a function such that the current UI will show it properly. Also the View class, which hasn't been incredibly useful sofar, can finally fulfil its role better. This is still a very immature version of the UI. It shows a single column with all the todos. It can execute commands, but it will do so silently, no output or errors are shown yet. The navigation will be Vim-like. Press : to toggle the command-line at the bottom of the screen, where you can enter any command that you're used to. Press Escape entering a command to set the focus back on the columns. The next few items to address: * show output, errors and handle input * ability to dynamically add/edit/delete columns * add navigation keys to 'walk' through the items in the columns and act on them with shortcuts. E.g. highlight a todo, press 'x' to complete it. I chose urwid as the widget library for the console, since using curses directly gave me a headache.
-
- 07 Jun, 2015 1 commit
-
-
Bram Schoenmakers authored
When a subcommand finishes, _post_excecute() is called for sorting, archiving and writing the file. But sorting is also a subcommand, which in turn also calls _post_execute(), etc, etc. So let the caller of _execute() decide when to call _post_execute. This fixes issue #46.
-
- 06 Jun, 2015 4 commits
-
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
Just make sure that proper arguments are passed to GrepFilter in the first place.
-
Bram Schoenmakers authored
This started as a refactoring of the View class: to get rid of the pretty_print() function and anything releated to printers. So the View class now solely focusses on sorting and viewing a bunch of todos. It's up to the users of the View class to retrieve the todos in the view and pass them on to a Printer instance. The View class was quite involved with the proper Unicode support that was added lately. There were still encoded string passed through this class rather than Unicode strings. Getting rid of this affected basically all other places in the codebase. The result is that there are less string conversions; printed todo items stay Unicode as long as possible, until they're actually written out to standard output or to a file. I got rid of one text_type() call from the six library, all @python_2_unicode_compatible decorators are gone and the tests no longer need the utf8() function because everything is Unicode now. Remove utf8 function.
-
Bram Schoenmakers authored
-
- 04 Jun, 2015 3 commits
-
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
No need to toggle the highlighting of projects and contexts anymore. If you want to turn it off, simply assign an empty value to the project/context colors: [colorscheme] project_color = context_color =
-
Bram Schoenmakers authored
-
- 03 Jun, 2015 6 commits
-
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
Thanks to Jacek for pointing out.
-
Bram Schoenmakers authored
Safe 16 base colors
-
- 02 Jun, 2015 3 commits
-
-
Jacek Sowiński authored
- Colors specified by name will return safe ANSI codes. - Colors specified by number will return ANSI code from xterm 256 color chart. - Defaults are also *safe*.
-
Bram Schoenmakers authored
This is a revert of commit fbed527f, which resulted in too many items after a project/context being highlighted. Instead, don't print a NEUTRAL_COLOR code at the end of the todo, but only when we finish applying all the color codes. This makes sure that the regexp to match a project/context also works at the end of a line. Also removed some logic to remove multiple sequences of NEUTRAL_COLOR at the end of the line, this is not necessary.
-
Jacek Sowiński authored
-
- 01 Jun, 2015 6 commits
-
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
@\033[0m gets matched by '\B(\+|@)(\S*\w)', and as a result, the @ would be colored to the context color.
-
Bram Schoenmakers authored
Probably an indenting mistake.
-
Bram Schoenmakers authored
Add possibility to configure colorscheme of topydo
-
Bram Schoenmakers authored
The completer would be instantiated before the todo list was loaded from the file. Now, the completer is instantiated every time the todo list is loaded.
-
- 31 May, 2015 12 commits
-
-
Jacek Sowiński authored
+ -> @
-
Jacek Sowiński authored
-
Jacek Sowiński authored
- Add new module `topydo.lib.Colors` and class `Colors` for handling output colors and their ANSI codes. - Create new config options with colors for priorities, projects, contexts, metadata, and links and place them under "colorscheme" section. When certain config option is absent default color code will be applied. - Empty values: ! priority_colors will fall back to NEUTRAL_COLOR ! project_color, context_color, link_color, metadata_color will return empty string, so priority_color (if configured and applicable) of specific item should be used - Return NEUTRAL_COLOR if supplied color number is out range - Support user-friendly color names in config. At least for 16 base terminal colors.
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
Instead of creating a subcommand for every possible output format we're going to think of in the future, just let ListCommand handle the output format by connecting to the right format printer. In this commit, the 'ical' subcommand is deprecated, to be removed after the next release. The 'json' subcommand has been removed altogether, it existed for only a few hours.
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
The todo.txt file can be modified while the prompt is running. Make sure to reload the file when the mtime has changed since the previous load. This addresses the issue that changes after the 'edit' subcommand were not visible when returning to the topydo prompt (issue #33). Also, other changes done while the prompt is running will be picked up. A safety measure was taken to refuse executing a command when the todo.txt file was modified while the prompt was visible (i.e. the user was busy typing a command). By doing so, subcommands such as 'do' and 'del' will only operate on the actual state of the todo.txt file, not some previous state still in memory.
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
-
Bram Schoenmakers authored
Fixes #43.
-
- 30 May, 2015 4 commits
-
-
Bram Schoenmakers authored
topydo was a tad slow, because all modules of all subcommands were loaded with each invocation of topydo. Particularly, the ical subcommand was quite slow because it loads modules from the icalendar package.
-
Bram Schoenmakers authored
Add todos from file with '-f' flag.
-
Jacek Sowiński authored
1. Move _preprocess_input_todo adn _postprocess_input_todo inside _add_todo. 2. Remove self.todo
-
Jacek Sowiński authored
-