diff options
Diffstat (limited to 'save.pl')
-rw-r--r-- | save.pl | 32 |
1 files changed, 17 insertions, 15 deletions
@@ -3,6 +3,11 @@ :- consult(library(process)). :- pce_global(@dialog, new(dialog('Save'))). +:- pce_global(@files, new(chain)). +:- pce_global(@editor, new(editor)). +:- pce_global(@save_button, + new(button(save, + message(@prolog, save)))). main :- pce_main_loop(main). @@ -21,25 +26,22 @@ Ensure Git is in PATH.'). added(0) :- %send(@pce, load_defaults, 'Defaults'), - new(D, @dialog), % File browser. - new(C, chain), - status(C), - send(new(B, browser), right, D), - send(B, members(C)), + status(@files), + send(new(B, browser), right, @dialog), + send(B, members(@files)), % Input fields. - send(D, append, text('Commit message (optional):', + send(@dialog, append, text('Commit message (optional):', left, bold)), - send(D, append, new(E, editor)), - send(D, append, button(save, - message(@prolog, save, E, C))), - send(D, append, button(cancel, + send(@dialog, append, @editor), + send(@dialog, append, @save_button), + send(@dialog, append, button(cancel, and(message(@prolog, reset), - message(D, destroy)))), - send(D, open). + message(@dialog, destroy)))), + send(@dialog, open). reset :- shell("git reset"). @@ -60,12 +62,12 @@ read_to_chain(S, C) :- read_to_chain(S, C) ). -save(Editor, Chain) :- - get(Editor?text_buffer, contents, S), +save :- + get(@editor?text_buffer, contents, S), send(S, strip), get(S, value, Msg), ( Msg == '' - -> chain_atom(Chain, A), + -> chain_atom(@files, A), commit(A) ; commit(Msg) ). |