1. 12 Feb, 2016 7 commits
    • Bram Schoenmakers's avatar
      Swap green colors for 16 color range · ed0d9e06
      Bram Schoenmakers authored
      ed0d9e06
    • Bram Schoenmakers's avatar
    • Bram Schoenmakers's avatar
    • Bram Schoenmakers's avatar
      Add tests for progress colors · 3fd7c6c9
      Bram Schoenmakers authored
      Also removed some unreachable branches from the code.
      3fd7c6c9
    • Bram Schoenmakers's avatar
      Fix color tests for garbage/empty values · 93726c4a
      Bram Schoenmakers authored
      The color functions now return a neutral/default color when
      empty/garbage colors are entered in the configuration file.
      
      This addresses issues #69 and #70.
      93726c4a
    • Bram Schoenmakers's avatar
      Introduce -C flag to steer color output · 239a275f
      Bram Schoenmakers authored
      The -C flag takes 0, 1, 16, 256, auto, yes, true, no, false as possible
      values.
      
      If auto, then colors are enabled unless the output is not connected to a
      TTY and is likely not to understand ANSI escape codes. 'auto' is the
      default value.
      
      The config().colors() function either returns 0, 16 or 256 for the
      possible colors that can be displayed.
      
      These values are also recognized by the colors option in the
      configuration file.
      
      This fixes issue #111.
      239a275f
    • Bram Schoenmakers's avatar
      Introduce a Color class · 163fdb91
      Bram Schoenmakers authored
      This color class abstracts away all the possible representations of a
      color in various UIs. These are color objects:
      
      Color(9)              # red
      Color('red')          # red
      Color(196)            # red
      Color('NEUTRAL')      # neutral (resets attributes)
      Color()               # no effect
      
      The configuration stores Color objects now, code that requires colors
      doesn't have to worry about integer representations of colors.
      
      One semantic change: when an empty color is passed as a priority color,
      it will resort to an empty color instead of the neutral color. In
      practice this should have the same visual effect. Test case
      test_priority_color4 is adapted for this.
      
      This commit is the result after an initial refactoring of the color code
      (squashed its history into this one). @mruwek also contributed to this
      refactoring, thanks for the help and the ideas to get to this point.
      163fdb91
  2. 11 Feb, 2016 1 commit
  3. 10 Feb, 2016 9 commits
    • Jacek Sowiński's avatar
      Add widget showing current keystate · b7a99d42
      Jacek Sowiński authored
      It's purpose is to show entered keystrokes during entering key-combos.
      It's positioned at the bottom-right corner (similarly as in vim). Many
      thanks to @bram85 for the idea.
      
      Also fixed one nasty bug resulting in getting stuck in keystate. It
      occured only when keystate had also corresponding pending action and
      user typed something other than expected by the keypress(). Now any
      non-sensical input will result in resetting keystate.
      b7a99d42
    • Bram Schoenmakers's avatar
    • Jacek Sowiński's avatar
      02529bdf
    • Jacek Sowiński's avatar
      Wait for further input for 'pri' and 'postpone' · 05575871
      Jacek Sowiński authored
      This way user can type offsets and priorities at ease without rush.
      05575871
    • Jacek Sowiński's avatar
      Add new keymap prefix to force cmd output verbose · 2057dcae
      Jacek Sowiński authored
      From now on user have the choice whether he/she wants the command linked
      to key output anything or not. Commands prefixed with 'cmdv' will output
      to terminal, while those prefixed with 'cmd' will remain silent.
      
      Example:
      ========
      
      ```ini
      [column_keymap]
      x = cmd do {}
      ls = cmdv ls
      ga = cmdv ls -i {}
      
      Credits to @bram85 for the idea.
      2057dcae
    • Jacek Sowiński's avatar
      Correctly recognize special keys in key-shortcuts · d6f2a9a5
      Jacek Sowiński authored
      Special keys in config should follow similiar syntax to that used in
      vim:
      
      left arrow = `<Left>`
      right arrow = `<Right>`
      page down = `<Page down>`
      home = `<Home>`
      esc = `<Esc>`
      F4 = `<F4>`
      Ctrl+s = `<C-s>`
      Meta+k = `<M-k>`
      
      Examples:
      =========
      
      ```ini
      [column_keymap]
      <Left> = prev_column
      <Right> = next_column
      <Esc>k = home
      <C-s> = tag {} foo 1
      <M-s> = tag {} foo
      ```
      d6f2a9a5
    • Jacek Sowiński's avatar
      Give access to keymap of "column_actions" · 52a04262
      Jacek Sowiński authored
      Action names and default config for them:
      
      ```ini
      [column_keymap]
      0 = first_column
      $ = last_column
      h = prev_column
      l = next_column
      A = append_column
      I = insert_column
      E = edit_column
      D = delete_column
      Y = copy_column
      L = swap_left
      R = swap_right
      ```
      52a04262
    • Jacek Sowiński's avatar
      84110a3c
    • Jacek Sowiński's avatar
      Configurable keymap · 2ece2812
      Jacek Sowiński authored
      User can now specify key-shortcuts in main topydo config file under
      'column_keymap' section in form of:
      
      `<SHORTCUT> = <ACTION>`
      
      Two main types of action are supported:
      - built-in (one of: 'home', 'end', 'up', 'down', 'postpone', 'postpone_s'
        and 'pri')
      - topydo commands (aliases included). Prefixed with 'cmd'. Commands to
        call on selected todo item should contain '{}' placeholder to mark its
        place in final command call in similiar fashion as in aliases
        definitions.
      
      postpone, postpone_s and pri shortcuts are sort of prefixes for
      arguments for respective topydo commands triggered on selected todo item:
      - `postpone<COUNT><PERIOD>` will translate to `cmd postpone {}
        <COUNT><PERIOD>`. postpone_s will do the same but with '-s' flag
        added.
      - `pri<PRIORITY>` will translate to `cmd pri {} <PRIORITY>`
      
      Default config as an example:
      
      ```ini
      [column_keymap]
      gg = home
      G = end
      j = down
      k = up
      d = cmd del {}
      e = cmd edit {}
      u = cmd revert
      x = cmd do {}
      pp = postpone
      ps = postpone_s
      pr = pri
      ```
      
      - pp23d will postpone selected item by 23 days
      - ps1m will postpone selected item (threshold date included) by 1 month
      - prz will set priority of selected item to (Z)
      2ece2812
  4. 09 Feb, 2016 2 commits
  5. 08 Feb, 2016 1 commit
  6. 07 Feb, 2016 1 commit
  7. 02 Feb, 2016 1 commit
  8. 28 Jan, 2016 1 commit
  9. 22 Jan, 2016 4 commits
  10. 14 Jan, 2016 2 commits
  11. 11 Jan, 2016 2 commits
  12. 08 Jan, 2016 7 commits
  13. 07 Jan, 2016 2 commits