Merge pull request #155 from vanicat/t/reconcile_and_windows
T/reconcile and windows
This commit is contained in:
commit
822970a7ae
1 changed files with 25 additions and 21 deletions
|
|
@ -277,17 +277,17 @@
|
|||
;; when the buffer point is moved and recentered. If they aren't
|
||||
;; strange things happen.
|
||||
|
||||
(let
|
||||
((recon-window (get-buffer-window (get-buffer ledger-recon-buffer-name))))
|
||||
(fit-window-to-buffer recon-window)
|
||||
(with-current-buffer buf
|
||||
(select-window (get-buffer-window buf))
|
||||
(goto-char (point-max))
|
||||
(recenter -1))
|
||||
|
||||
(select-window recon-window)
|
||||
(add-hook 'post-command-hook 'ledger-reconcile-track-xact nil t)
|
||||
(ledger-reconcile-visit t))))
|
||||
(let ((recon-window (get-buffer-window (get-buffer ledger-recon-buffer-name))))
|
||||
(when recon-window
|
||||
(fit-window-to-buffer recon-window)
|
||||
(with-current-buffer buf
|
||||
(select-window (get-buffer-window buf))
|
||||
(goto-char (point-max))
|
||||
(recenter -1))
|
||||
|
||||
(select-window recon-window)
|
||||
(ledger-reconcile-visit t))
|
||||
(add-hook 'post-command-hook 'ledger-reconcile-track-xact nil t))))
|
||||
|
||||
(defun ledger-reconcile-track-xact ()
|
||||
(if (member this-command (list 'next-line
|
||||
|
|
@ -298,6 +298,15 @@
|
|||
(save-excursion
|
||||
(ledger-reconcile-visit t)))))
|
||||
|
||||
(defun ledger-reconcile-open-windows (buf rbuf)
|
||||
"Ensure that the reconcile buffer has its windows
|
||||
|
||||
Spliting the windows of BUF if needed"
|
||||
(if ledger-reconcile-force-window-bottom
|
||||
;;create the *Reconcile* window directly below the ledger buffer.
|
||||
(set-window-buffer (split-window (get-buffer-window buf) nil nil) rbuf)
|
||||
(pop-to-buffer rbuf)))
|
||||
|
||||
(defun ledger-reconcile (account)
|
||||
(interactive "sAccount to reconcile: ")
|
||||
(let ((buf (current-buffer))
|
||||
|
|
@ -316,6 +325,8 @@
|
|||
(if ledger-fold-on-reconcile
|
||||
(ledger-occur-change-regex account ledger-buf))
|
||||
(set-buffer (get-buffer ledger-recon-buffer-name))
|
||||
(unless (get-buffer-window rbuf)
|
||||
(ledger-reconcile-open-windows buf rbuf))
|
||||
(ledger-reconcile-refresh))
|
||||
|
||||
(progn ;; no recon-buffer, starting from scratch.
|
||||
|
|
@ -323,19 +334,12 @@
|
|||
(if ledger-fold-on-reconcile
|
||||
(ledger-occur-mode account buf))
|
||||
|
||||
(with-current-buffer
|
||||
(if ledger-reconcile-force-window-bottom
|
||||
;create the *Reconcile* window directly below the ledger buffer.
|
||||
(progn
|
||||
(set-window-buffer
|
||||
(split-window (get-buffer-window buf) nil nil)
|
||||
(get-buffer-create ledger-recon-buffer-name))
|
||||
(get-buffer ledger-recon-buffer-name))
|
||||
(pop-to-buffer (get-buffer-create ledger-recon-buffer-name)))
|
||||
(with-current-buffer (get-buffer-create ledger-recon-buffer-name)
|
||||
(ledger-reconcile-open-windows buf (current-buffer))
|
||||
(ledger-reconcile-mode)
|
||||
(set (make-local-variable 'ledger-buf) buf)
|
||||
(set (make-local-variable 'ledger-acct) account)
|
||||
(ledger-do-reconcile))))))
|
||||
(ledger-do-reconcile))))))
|
||||
|
||||
(defvar ledger-reconcile-mode-abbrev-table)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue