[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/20: installer: New procedure "page-leave".
From: |
John Darrington |
Subject: |
04/20: installer: New procedure "page-leave". |
Date: |
Thu, 12 Jan 2017 20:41:03 +0000 (UTC) |
jmd pushed a commit to branch wip-installer
in repository guix.
commit 0103bae9299862a15d75eb33d7d377749265a603
Author: John Darrington <address@hidden>
Date: Fri Jan 6 20:46:09 2017 +0100
installer: New procedure "page-leave".
* gnu/system/installer/page.scm (page-leave): New procedure.
* gnu/system/installer/configure.scm,
gnu/system/installer/dialog.scm,
gnu/system/installer/disks.scm,
gnu/system/installer/file-browser.scm,
gnu/system/installer/filesystems.scm,
gnu/system/installer/hostname.scm,
gnu/system/installer/install.scm,
gnu/system/installer/mount-point.scm,
gnu/system/installer/network.scm,
gnu/system/installer/passphrase.scm,
gnu/system/installer/ping.scm,
gnu/system/installer/role.scm,
gnu/system/installer/time-zone.scm,
gnu/system/installer/wireless.scm: Use it where appropriate.
---
gnu/system/installer/configure.scm | 4 ++--
gnu/system/installer/dialog.scm | 2 +-
gnu/system/installer/disks.scm | 3 +--
gnu/system/installer/file-browser.scm | 4 ++--
gnu/system/installer/filesystems.scm | 5 ++---
gnu/system/installer/hostname.scm | 6 ++----
gnu/system/installer/install.scm | 2 +-
gnu/system/installer/mount-point.scm | 3 +--
gnu/system/installer/network.scm | 2 +-
gnu/system/installer/page.scm | 6 +++++-
gnu/system/installer/passphrase.scm | 7 ++-----
gnu/system/installer/ping.scm | 2 +-
gnu/system/installer/role.scm | 4 ++--
gnu/system/installer/time-zone.scm | 5 ++---
gnu/system/installer/wireless.scm | 3 +--
15 files changed, 26 insertions(+), 32 deletions(-)
diff --git a/gnu/system/installer/configure.scm
b/gnu/system/installer/configure.scm
index d454488..e0594b6 100644
--- a/gnu/system/installer/configure.scm
+++ b/gnu/system/installer/configure.scm
@@ -97,7 +97,7 @@
((buttons-key-matches-symbol? nav ch 'back)
;; Close the menu and return
- (set! page-stack (cdr page-stack)))
+ (page-leave))
@@ -111,7 +111,7 @@
(close-port cfg-port))
;; Close the menu and return
- (set! page-stack (cdr page-stack)))
+ (page-leave))
)
#f))
diff --git a/gnu/system/installer/dialog.scm b/gnu/system/installer/dialog.scm
index 2c8f3ed..785c02c 100644
--- a/gnu/system/installer/dialog.scm
+++ b/gnu/system/installer/dialog.scm
@@ -54,7 +54,7 @@
((buttons-key-matches-symbol? nav ch 'ok)
(delwin (page-datum page 'text-window))
- (set! page-stack (cdr page-stack))
+ (page-leave)
))
#f))
diff --git a/gnu/system/installer/disks.scm b/gnu/system/installer/disks.scm
index 9a1c8b6..b53dc0a 100644
--- a/gnu/system/installer/disks.scm
+++ b/gnu/system/installer/disks.scm
@@ -94,8 +94,7 @@
(system* "partprobe")))
((buttons-key-matches-symbol? nav ch 'continue)
- (set! page-stack (cdr page-stack))
- ((page-refresh (car page-stack)) (car page-stack))))
+ (page-leave)))
(std-menu-key-handler menu ch))
diff --git a/gnu/system/installer/file-browser.scm
b/gnu/system/installer/file-browser.scm
index 70fcae3..e0af0ec 100644
--- a/gnu/system/installer/file-browser.scm
+++ b/gnu/system/installer/file-browser.scm
@@ -56,7 +56,7 @@
((buttons-key-matches-symbol? nav ch 'back)
- (set! page-stack (cdr page-stack)))
+ (page-leave))
((and (eqv? ch #\newline)
(menu-active menu))
@@ -70,7 +70,7 @@
(begin
(system* "loadkeys" i)
(set! key-map i)
- (set! page-stack (page-datum page 'exit-point))
+ (page-leave (page-datum page 'exit-point))
#f)))))
(std-menu-key-handler menu ch)
#f))
diff --git a/gnu/system/installer/filesystems.scm
b/gnu/system/installer/filesystems.scm
index 0908f52..9631e7e 100644
--- a/gnu/system/installer/filesystems.scm
+++ b/gnu/system/installer/filesystems.scm
@@ -188,7 +188,7 @@
))
((buttons-key-matches-symbol? nav ch 'back)
- (set! page-stack (cdr page-stack)))
+ (page-leave))
((buttons-key-matches-symbol? nav ch 'continue)
@@ -198,8 +198,7 @@
(set! page-stack (cons next page-stack))
((page-refresh next) next))
(begin
- (set! page-stack (cdr page-stack))
- ((page-refresh (car page-stack)) (car page-stack)))
+ (page-leave))
))))
(std-menu-key-handler menu ch))
diff --git a/gnu/system/installer/hostname.scm
b/gnu/system/installer/hostname.scm
index 3939120..66096cb 100644
--- a/gnu/system/installer/hostname.scm
+++ b/gnu/system/installer/hostname.scm
@@ -69,13 +69,11 @@
(cond
((buttons-key-matches-symbol? nav ch 'back)
- (set! page-stack (cdr page-stack))
- ((page-refresh (car page-stack)) (car page-stack)))
+ (page-leave))
((select-key? ch)
(set! host-name (form-get-value form 0))
- (set! page-stack (cdr page-stack))
- ((page-refresh (car page-stack)) (car page-stack)))
+ (page-leave))
((eq? ch #\tab)
(form-set-enabled! form #f)
diff --git a/gnu/system/installer/install.scm b/gnu/system/installer/install.scm
index a08b4f8..3ba1327 100644
--- a/gnu/system/installer/install.scm
+++ b/gnu/system/installer/install.scm
@@ -70,7 +70,7 @@
((buttons-key-matches-symbol? nav ch 'back)
;; Close the menu and return
- (set! page-stack (cdr page-stack)))
+ (page-leave))
((buttons-key-matches-symbol? nav ch 'reboot)
(system* "reboot"))
diff --git a/gnu/system/installer/mount-point.scm
b/gnu/system/installer/mount-point.scm
index 632b81d..2468ba2 100644
--- a/gnu/system/installer/mount-point.scm
+++ b/gnu/system/installer/mount-point.scm
@@ -71,8 +71,7 @@
(set! mount-points (assoc-set! mount-points
dev mp))))
- (set! page-stack (cdr page-stack))
- ((page-refresh (car page-stack)) (car page-stack)))
+ (page-leave))
((buttons-key-matches-symbol? nav ch 'check)
(window-pipe (page-datum page 'output) "fsck.ext4" "fsck.ext4"
"-n" "-v"
diff --git a/gnu/system/installer/network.scm b/gnu/system/installer/network.scm
index 7eb4807..d59bbda 100644
--- a/gnu/system/installer/network.scm
+++ b/gnu/system/installer/network.scm
@@ -116,7 +116,7 @@
;; Cancel the timer
(setitimer ITIMER_REAL 0 0 0 0)
- (set! page-stack (cdr page-stack))))
+ (page-leave)))
(std-menu-key-handler menu ch))
#f)
diff --git a/gnu/system/installer/page.scm b/gnu/system/installer/page.scm
index e17326c..59361d1 100644
--- a/gnu/system/installer/page.scm
+++ b/gnu/system/installer/page.scm
@@ -23,7 +23,7 @@
#:export (page-refresh)
#:export (page-initialised?)
#:export (page-set-initialised!)
- #:export (page-stack)
+ #:export (page-leave)
#:export (page-set-wwin!)
#:export (page-wwin)
#:export (page-title)
@@ -54,3 +54,7 @@
(define (page-datum page key)
(assq-ref (page-data page) key))
+
+(define* (page-leave #:optional (return-point #f))
+ (set! page-stack
+ (or return-point (cdr page-stack))))
diff --git a/gnu/system/installer/passphrase.scm
b/gnu/system/installer/passphrase.scm
index f7b165b..42b7b0c 100644
--- a/gnu/system/installer/passphrase.scm
+++ b/gnu/system/installer/passphrase.scm
@@ -66,8 +66,7 @@
(cond
((buttons-key-matches-symbol? nav ch 'back)
- (set! page-stack (cdr page-stack))
- ((page-refresh (car page-stack)) (car page-stack)))
+ (page-leave))
((eq? ch #\tab)
(form-set-enabled! form #f)
@@ -86,9 +85,7 @@
(page-datum page 'ifce)
(page-datum page 'network)
(form-get-value form 'passphrase))
-
- (set! page-stack (cdr (cdr page-stack)))
- ((page-refresh (car page-stack)) (car page-stack)))
+ (page-leave (cdr (cdr page-stack))))
(else
(form-enter form ch)))
diff --git a/gnu/system/installer/ping.scm b/gnu/system/installer/ping.scm
index 1afb2cf..e4bef7a 100644
--- a/gnu/system/installer/ping.scm
+++ b/gnu/system/installer/ping.scm
@@ -74,7 +74,7 @@
((buttons-key-matches-symbol? nav ch 'continue)
(delwin (page-datum page 'test-window))
- (set! page-stack (cdr page-stack))
+ (page-leave)
)
((buttons-key-matches-symbol? nav ch 'test)
diff --git a/gnu/system/installer/role.scm b/gnu/system/installer/role.scm
index 369f695..9d4baf4 100644
--- a/gnu/system/installer/role.scm
+++ b/gnu/system/installer/role.scm
@@ -88,10 +88,10 @@
((select-key? ch)
(set! system-role (menu-get-current-item menu))
- (set! page-stack (cdr page-stack)))
+ (page-leave))
((buttons-key-matches-symbol? nav ch 'back)
- (set! page-stack (cdr page-stack))))
+ (page-leave)))
(std-menu-key-handler menu ch))
#f)
diff --git a/gnu/system/installer/time-zone.scm
b/gnu/system/installer/time-zone.scm
index 416067f..00f2858 100644
--- a/gnu/system/installer/time-zone.scm
+++ b/gnu/system/installer/time-zone.scm
@@ -55,8 +55,7 @@
(buttons-select-next nav))))
((buttons-key-matches-symbol? nav ch 'back)
-
- (set! page-stack (cdr page-stack)))
+ (page-leave))
((and (eqv? ch #\newline)
(menu-active menu))
@@ -78,7 +77,7 @@
(if (page-datum page 'stem)
(string-append (page-datum page 'stem) "/" i)
i))
- (set! page-stack (page-datum page 'exit-point))
+ (page-leave (page-datum page 'exit-point))
#f)))
))
(std-menu-key-handler menu ch)
diff --git a/gnu/system/installer/wireless.scm
b/gnu/system/installer/wireless.scm
index 8615004..dda9195 100644
--- a/gnu/system/installer/wireless.scm
+++ b/gnu/system/installer/wireless.scm
@@ -70,8 +70,7 @@
(buttons-unselect-all nav))
((buttons-key-matches-symbol? nav ch 'back)
- (set! page-stack (cdr page-stack))
- ((page-refresh (car page-stack)) (car page-stack)))
+ (page-leave))
((select-key? ch)
(let ((next (make-passphrase-page
- 01/20: installer: Correct behaviour of push-cursor and pop-cursor procedures., (continued)
- 01/20: installer: Correct behaviour of push-cursor and pop-cursor procedures., John Darrington, 2017/01/12
- 12/20: installer: "Setup" --> "Set up", John Darrington, 2017/01/12
- 03/20: installer: Remove pointless calls to delwin., John Darrington, 2017/01/12
- 14/20: installer: Use "lspci -mm" instead of "lspci -m"., John Darrington, 2017/01/12
- 17/20: installer: Use a cleaner method of detecting wireless capability for ethernet interfaces., John Darrington, 2017/01/12
- 09/20: installer: Make all windows with ports scrollable., John Darrington, 2017/01/12
- 08/20: installer: Ignore case in button accelerators., John Darrington, 2017/01/12
- 05/20: installer: New procedure: page-enter., John Darrington, 2017/01/12
- 11/20: installer: Add installer source files to the manifest of translatables., John Darrington, 2017/01/12
- 15/20: installer: slurp: Ignore blank lines in output., John Darrington, 2017/01/12
- 04/20: installer: New procedure "page-leave".,
John Darrington <=
- 18/20: guix: Add IFF_RUNNING to exported syscall constants., John Darrington, 2017/01/12
- 20/20: installer: Enable direct scrolling to top or bottom of menus., John Darrington, 2017/01/12
- 19/20: installer: Make the network menu more reliable., John Darrington, 2017/01/12
- 07/20: installer: Rename "Back" buttons to "Cancel"., John Darrington, 2017/01/12
- 13/20: installer: Use guix build syscalls module for network interrogation., John Darrington, 2017/01/12
- 10/20: installer: Rename 'file-browser.scm' to 'key-map.scm'., John Darrington, 2017/01/12
- 06/20: installer: Ensure that the cursor visibility is updated on each page., John Darrington, 2017/01/12
- 16/20: installer: Minor cleanup., John Darrington, 2017/01/12