From 960418c239da83786f09846639b0cdd2e064aae5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= <john@ankarstrom.se>
Date: Sat, 22 Jan 2022 18:37:58 +0100
Subject: M  save.exe M  save.pl M  save.pl~

---
 save.pl | 30 ++++++++++++++++++++----------
 1 file changed, 20 insertions(+), 10 deletions(-)

(limited to 'save.pl')

diff --git a/save.pl b/save.pl
index 00cc42a..a793e06 100644
--- a/save.pl
+++ b/save.pl
@@ -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(
-- 
cgit v1.2.3