Commit Graph

134 Commits

Author SHA1 Message Date
Simon Michael
e83cbacbf6 ;ui: help: pmi -> p/m/i 2019-10-19 18:47:39 -07:00
Caleb Maclennan
11d9e5eb6a code: Strip extraneous trailing whitespace from Haskell sources 2019-07-15 16:40:49 +01:00
Simon Michael
98e3358046 ui: more defensive brick list imports to fix recent breakage 2019-02-02 08:22:23 -08:00
Simon Michael
fda41373f7 ui: fix build issues with older brick/snapshots, require brick 0.23+ 2019-02-01 21:05:56 -08:00
Simon Michael
ad424e0381 ui: C-z suspend now restores the terminal cleanly 2019-01-23 17:26:27 -08:00
Simon Michael
cc0764eac2 ui: on posix, support ctrl-z to suspend the program 2019-01-18 16:33:06 -08:00
Simon Michael
bb5d6c47c6 ui: probably more effective redraw when pressing Ctrl-l
Now uses vtyRefresh.
2019-01-18 16:32:52 -08:00
Simon Michael
e6392b3d46 ui: streamline top status info 2019-01-05 18:42:03 +00:00
Simon Michael
a94e632524 ui: avoid brick reverse clash (#935) 2018-12-10 10:48:40 +00:00
Simon Michael
12d3ba6fc0 ui: refactor, try to clarify toggles' help
Consistent ordering with most-used toggles first, more intuitive wording
2018-11-04 13:54:20 -08:00
Simon Michael
42a4a4a7e4 ui: use "border" instead of borderAttr everywhere
Assume it won't change, it's clearer and more consistent.
2018-10-23 06:43:21 -07:00
Simon Michael
f66bb8d5c0 ui: style help headings & keys; style cleanups 2018-10-23 06:07:35 -07:00
Simon Michael
3ef8d9fc82 ui: color help dialog like the borders, make it pop 2018-10-23 05:43:42 -07:00
Simon Michael
f10f9b6a17 ui: ensure more consistent quiet style in horizontal borders (#838) 2018-10-23 05:41:42 -07:00
Simon Michael
cf9eb78ad2 ui: UIUtils export list, cleanup 2018-10-23 05:21:08 -07:00
Simon Michael
2a44d7eb26 ui: reorganise help dialog, fit content into 80x25 again 2018-10-18 14:43:00 -07:00
Simon Michael
1db9b018f1 ui: add --present/--future, hide future txns by default, toggle with F
You may have transactions dated later than today, perhaps piped from
print --forecast or recorded in the journal, which you don't want to
see except when forecasting.

By default, we now hide future transactions, showing "today's balance".
This can be toggled with the F key, which is easier than setting a
date query. --present and --future flags have been added to set the
initial mode.

(Experimental. Interactions with date queries have not been explored.)
2018-10-18 14:43:00 -07:00
Simon Michael
89712fe81d ui: make flat the default, toggle with T, add --tree/-T/-F flags 2018-10-18 14:43:00 -07:00
Simon Michael
84579bb1b4 silence redundant import warnings with ghc 8.4 2018-03-24 22:51:56 +00:00
Simon Michael
448934d146 ui: fix manual viewing (on posix) (fix #623) 2017-12-30 12:59:31 -08:00
Simon Michael
190bab5c33 ui: help: tweak key order 2017-07-06 14:11:23 +01:00
Felix Yan
ffe8b47529 Update brick to 0.19 2017-06-30 22:45:34 +01:00
Simon Michael
c642be7570 ui: fix right arrow key 2017-06-30 17:18:54 +01:00
Simon Michael
97964eb2fc ui: consistently support vi & emacs movement keys
hjkl and CTRL-bfnp should now work wherever unmodified arrow keys work.
(You must still use arrow keys with SHIFT for adjusting report period).
2017-06-30 16:37:10 +01:00
Simon Michael
ef5e152fde ui: better scrolling/positioning
In the accounts and register screens:, you can now scroll down further
so that the last item need not always be shown at the bottom of the screen.
Also we now try to center the selected item in the following situations:

- after moving to the end with Page down/End
- after toggling filters (status, real, historical..)
- on pressing the control-l key (should force a screen redraw, also)
- on entering the register screen from the accounts screen (there's a
  known problem with this: it doesn't work the first time).

Items near the top of the list can't be centered, as we don't scroll
higher than the top of the list.
2017-06-30 15:54:30 +01:00
Simon Michael
59af88b796 ui: add temporary --status-toggles for testing toggle styles (#564) 2017-06-18 16:20:30 -07:00
Simon Michael
22e751983b ui: allow multiple status filters to be active at once (#564) 2017-06-15 19:16:39 -07:00
Simon Michael
dcc58d4a2b lib: rename ClearedStatus type to Status
(and fix hard-coded enum count)
2017-06-15 19:16:39 -07:00
Simon Michael
eb42ea04e5 use consistent UPC order for --unmarked/--pending/--cleared (#564) 2017-06-15 19:16:39 -07:00
Simon Michael
e119941648 rename "uncleared" status to "unmarked" and --uncleared to --unmarked (#564)
See the issue and linked mail list discussion. Ambiguity between the
uncleared state, and the "not cleared" --uncleared flag causes confusion
and friction. At this point it seems best to break with Ledger and
past hledger, pick a new name and drop --uncleared to put an end to it.
2017-06-15 19:16:39 -07:00
Simon Michael
7fc921db86 lib, cli: -U/-P/-C flags can be combined (#564) 2017-06-15 19:16:39 -07:00
Simon Michael
44c6b324ab ui: add P key to toggle pending mode (#564) 2017-06-15 19:16:39 -07:00
Simon Michael
9a86c9ee52 lib: begin supporting colour
Add some basic helpers for working with ANSI colour codes,
and make strWidth and the various string layout functions aware of them.
2017-04-25 18:27:25 -07:00
Simon Michael
31e4f538c0 ui: the A key runs hledger-iadd (if available) 2016-12-08 13:18:56 -08:00
Simon Michael
0f1108db07 ui: use a custom application event type 2016-11-24 09:10:50 -08:00
Simon Michael
c6e2784eeb ui: use brick 0.12, bump version to 1.0.3 2016-10-31 08:06:29 -07:00
Simon Michael
f0f4013b7a ui: use latest brick, 0.11 2016-10-27 14:15:56 -07:00
Simon Michael
1362784546 ui: help: reset wording 2016-09-05 10:57:05 -07:00
Simon Michael
8c32af581b ui: use full narrow terminal width for help dialog 2016-09-05 10:56:38 -07:00
Simon Michael
4e3c0cc936 ui: historical/period toggle, help updates
accounts and register screens can now switch between "historical"
(default) and "period" modes

title header wording is clearer

quick help footer now indicates historical/period and tree/flat modes,
saving space in the title

help screen is more explanatory

the enter key has been reserved for later and is no longer an alias
for right/l
2016-08-12 17:44:55 -07:00
Simon Michael
79cc999fa3 ui: d/u zooms report period down/up, t selects today 2016-08-09 15:31:35 -07:00
Simon Michael
88ceb7470c ui: help: add d/n/p, move DEL/BS to bottom #381 2016-08-04 11:55:46 -07:00
Simon Michael
3c724efe4f ui: d cycles report duration, n/p steps to next/prev period (#381) 2016-08-02 08:24:04 -07:00
Simon Michael
fe6d4cc7da lib: abstract period/interval/cleared in ReportOpts 2016-07-29 19:20:56 -07:00
Simon Michael
9b0cadc179 ui: support/require brick 0.7+ #379 2016-07-24 18:06:49 -07:00
Simon Michael
7eeb5e01ee ui: I toggles balance assertions
This was a bit tricky.
2016-07-06 15:08:57 -07:00
Simon Michael
9a7fe756b9 ui: help: tweak direction key help 2016-07-06 14:51:26 -07:00
Moritz Kiefer
991204d59a Support vty 0.7 (#365) 2016-07-05 13:23:00 -07:00
Simon Michael
dbeb4e3020 ui: add vi-style movement keys, use ? for help (#357) 2016-06-24 18:54:54 -07:00
Simon Michael
7a4c45aa4a ui: basic manual integration 2016-06-20 11:09:12 -07:00
Simon Michael
4923efefb9 ui: basic editor integration
The E key (on all screens) edits the main journal file using
$HLEDGER_UI_EDITOR or $EDITOR or "emacs -nw",
jumping to the end if it's Emacs.
2016-06-19 09:00:04 -07:00
Simon Michael
c4b3a4f996 ui: use Z instead of E for nonzero mode
Breaking consistency with hledger cli flags, but I think it's
more mnemonic, and E will more useful for something else.
2016-06-18 09:00:38 -07:00
Simon Michael
b017426812 ui: use same filter style for depth limit 2016-06-18 08:53:59 -07:00
Simon Michael
cc8180b295 ui: flat mode affects register too; doc updates 2016-06-18 08:46:08 -07:00
Simon Michael
d4343f8de1 ui: at depth 0 call account "All" (and fix register) 2016-06-12 11:09:59 -07:00
Simon Michael
47a8eb53c8 ui: refactor: AppState -> UIState, cleanups 2016-06-10 17:54:46 -07:00
Simon Michael
0851851ea9 ui: refactor: drop Vty. prefix 2016-06-10 16:39:06 -07:00
Simon Michael
8b9f5e1cdf ui: 0 now limits depth to 0 instead of resetting it 2016-06-10 12:51:10 -07:00
Simon Michael
dc6f39a859 ui: doc: latest keys 2016-06-10 12:12:45 -07:00
Simon Michael
ea180f72a0 ui: briefer on-screen help, and a more detailed help dialog 2016-06-10 11:50:57 -07:00
Simon Michael
aa75cc69f6 ui: a more general mode mechanism 2016-06-10 08:40:00 -07:00
Simon Michael
6c6222ef85 ui: import Lens.Micro.Platform more correctly 2016-06-09 12:41:26 -07:00
Simon Michael
8bda78a447 ui: refactor, simplify, flatten screen types 2016-06-09 07:47:48 -07:00
Simon Michael
5c343a5848 ui: convert screen states to records
This is highly verbose, but potentially clearer, allows better haddock docs, and hopefully will improve after lensification.
2016-06-08 12:15:58 -07:00
Simon Michael
1e93feeff3 ui: distinguish regenerateScreens from journal reloading 2016-06-08 10:42:51 -07:00
Simon Michael
bbcbaf6080 ui: Esc (outside minibuffer) resets, jumps to top 2016-06-07 09:26:16 -07:00
Simon Michael
9131eb7c67 ui: allow the filter query to be changed 2016-06-04 11:56:10 -07:00
Simon Michael
d1d6e237ec ui: U key shows only uncleared transactions/postings 2016-06-03 18:32:19 -07:00
Simon Michael
e3a55a72d9 ui: accounts: E key toggles --empty 2016-06-01 12:32:38 -07:00
Simon Michael
509f55864d ui: indicate real mode and toggle it with R key (#354)
There is a limitation/bug: disabling real mode in the transaction screen
won't show the non-real postings if it was entered from a real-mode
register screen.
2016-06-01 12:30:39 -07:00
Simon Michael
f331ebec16 ui, api: switch to the quicker-building microlens
This may not make much difference since dependencies brick and
servant-swagger still depend on lens, but that might change.
2016-04-04 17:50:58 -07:00
Simon Michael
f36c4a2a91 mark todo 2016-02-19 17:52:40 -08:00
Simon Michael
e061eabe2c ui: C toggles --cleared; f -> F; UI tweaks
You can now toggle showing only cleared items in the accounts and
register screens, with C (like the command-line flag).

The f key has been changed to F for consistency (we don't have this as a
command-line flag, though we could, though Ledger uses it for something
different).

Screen titles have been tweaked, eg switching the cyan and yellow.

Screen help has been squeezed to fit better in 80 columns.
2015-10-30 10:42:44 -07:00
Simon Michael
2515025a84 ui: pressing g once now reloads all screens 2015-10-28 10:17:15 -07:00
Simon Michael
25a0a7c4dd ui: make keys bold in bottom help 2015-09-03 21:03:03 -07:00
Simon Michael
d1467d7967 ui: drop unneeded args field, use opts instead 2015-08-28 06:36:07 -07:00
Simon Michael
b51f45c675 ui: misc enhancements, allow depth adjustment
- clean up options a bit, enable -V/--value (affects the accounts screen)
- more informative top/bottom borders, including key help
- number keys adjust the depth limit (accounts screen)
- remove obsolete args parameter
2015-08-27 22:46:14 -07:00
Simon Michael
e5f00b3e05 ui: simplify & format screen titles 2015-08-25 16:01:12 -07:00
Simon Michael
f496ec9809 ui: acc: show a better title with filename & query 2015-08-25 06:56:04 -07:00
Simon Michael
5822380719 ui: note JD layout tips, issues 2015-08-24 16:24:12 -07:00
Simon Michael
e7aa150e52 ui: solidified register screen, added themes
- register screen:
  - smarter width-sensitive layout, with multi-commodity amounts on one line
  - items are sorted in date order
  - jumps to the latest item by default, with consistent scroll position
  - more prerendering, might speed up movement/paging slightly

- themes! --theme to select, --help to list (current themes: default, terminal, greenterm)

- border tweaks - dropped side borders, added side padding
2015-08-24 16:24:11 -07:00
Simon Michael
3bdd8916b9 ui: register screen: use full terminal width
This uses a clunky hack for now. To adapt to a window resize,
you must exit and re-enter the register screen (maybe twice).
2015-08-24 16:24:11 -07:00
Simon Michael
5953978471 ui: update for new brick branch, pgup/down works 2015-08-24 16:24:11 -07:00
Simon Michael
49e1840a0f ui: rewrite the ui using brick
hledger-ui (formerly hledger-vty) is now built on brick, a new
declarative UI layer built on vty. This brings much new power, and
should make the UI much easier to grow and maintain.

At this point, functionality and performance are similar to the old
version. There's no journal entries screen, but entering the postings
screen jumps to the latest posting, and layout is better (multiple
commodities are rendered on one line).

Requires unreleased brick from github (HEAD or some branch) for now.
2015-08-24 16:24:11 -07:00