1. 11 Jun, 2015 2 commits
  2. 10 Jun, 2015 1 commit
  3. 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
  4. 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
  5. 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
  6. 04 Jun, 2015 3 commits
  7. 03 Jun, 2015 6 commits
  8. 02 Jun, 2015 3 commits
    • Jacek Sowiński's avatar
      Even safer base 16 colors · 0a860f45
      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*.
      0a860f45
    • Bram Schoenmakers's avatar
      Some fixes regarding color sequences in todo items. · 8422217e
      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.
      8422217e
    • Jacek Sowiński's avatar
      Safer way to display base 16 colors · 877a6a7a
      Jacek Sowiński authored
      877a6a7a
  9. 01 Jun, 2015 6 commits
  10. 31 May, 2015 12 commits
  11. 30 May, 2015 1 commit