diff options
Diffstat (limited to 'save.pl~')
-rw-r--r-- | save.pl~ | 36 |
1 files changed, 23 insertions, 13 deletions
@@ -2,12 +2,22 @@ :- consult(library(pce)). :- consult(library(process)). -:- pce_global(@dialog, new(dialog('Save'))). +:- pce_begin_class(save_dialog, dialog). + +unlink(D) :-> + shell("git reset"), + send_super(D, unlink). + +:- pce_end_class(save_dialog). + +:- pce_global(@dialog, new(save_dialog('Save'))). :- pce_global(@files, new(chain)). :- pce_global(@editor, new(editor)). +:- pce_global(@browser, new(browser)). :- pce_global(@save_button, new(button(save, - message(@prolog, save)))). + message(@prolog, save), + RET))). main :- pce_main_loop(main). @@ -28,9 +38,8 @@ added(0) :- %send(@pce, load_defaults, 'Defaults'), % File browser. - status(@files), - send(new(B, browser), right, @dialog), - send(B, members(@files)), + send(@browser, right, @dialog), + refresh, % Input fields. send(@dialog, append, text('Commit message (optional):', @@ -38,13 +47,14 @@ added(0) :- bold)), send(@dialog, append, @editor), send(@dialog, append, @save_button), - send(@dialog, append, button(cancel, - and(message(@prolog, reset), - message(@dialog, destroy)))), + send(@dialog, append, button(refresh, + and(message(@prolog, refresh)))), send(@dialog, open). -reset :- - shell("git reset"). +refresh :- + send(@files, clear), + status(@files), + send(@browser, members(@files)). status(C) :- setup_call_cleanup( @@ -62,12 +72,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) ). |