1. 21 Jun, 2015 6 commits
  2. 20 Jun, 2015 5 commits
  3. 14 Jun, 2015 2 commits
  4. 13 Jun, 2015 6 commits
  5. 12 Jun, 2015 2 commits
  6. 11 Jun, 2015 3 commits
  7. 10 Jun, 2015 1 commit
  8. 08 Jun, 2015 1 commit
    • Bram Schoenmakers's avatar
      Start of a new user interface. · 667082b7
      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.
      667082b7
  9. 07 Jun, 2015 1 commit
    • Bram Schoenmakers's avatar
      Fix infinite loop with keep_sorted = 1. · 9d33afef
      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.
      9d33afef
  10. 06 Jun, 2015 4 commits
    • Bram Schoenmakers's avatar
      Removed some unused stuff. · 1176abbf
      Bram Schoenmakers authored
      1176abbf
    • Bram Schoenmakers's avatar
      Don't let GrepFilter deal with integer expressions. · a021c148
      Bram Schoenmakers authored
      Just make sure that proper arguments are passed to GrepFilter in the
      first place.
      a021c148
    • Bram Schoenmakers's avatar
      Refactored the View class and Unicode support cleanups. · 09532f61
      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.
      09532f61
    • Bram Schoenmakers's avatar
      34a5d7a4
  11. 04 Jun, 2015 3 commits
  12. 03 Jun, 2015 6 commits