diff options
Diffstat (limited to 'save.pl')
-rw-r--r-- | save.pl | 30 |
1 files changed, 20 insertions, 10 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( |