From 4497feadd2a60f2d69236ce6e0595e4054d07b37 Mon Sep 17 00:00:00 2001 From: cage Date: Sun, 9 Apr 2023 11:47:41 +0200 Subject: [PATCH] - [GUI] refactored code related to the internal IRIs. --- src/constants.lisp | 2 ++ src/gui/client/gui-goodies.lisp | 3 --- src/gui/client/internal-paths.lisp | 15 +++++++++++++++ src/gui/client/menu-command.lisp | 9 +-------- src/package.lisp | 9 ++++++--- tinmop.asd | 1 + 6 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 src/gui/client/internal-paths.lisp diff --git a/src/constants.lisp b/src/constants.lisp index 48aa546..5c4d37c 100644 --- a/src/constants.lisp +++ b/src/constants.lisp @@ -166,3 +166,5 @@ General Public License for more details." (define-constant +file-scheme+ "file" :test #'string=) (define-constant +internal-scheme+ "about" :test #'string=) + +(define-constant +internal-path-bookmark+ "bookmark" :test #'string=) diff --git a/src/gui/client/gui-goodies.lisp b/src/gui/client/gui-goodies.lisp index 8752554..0bcb033 100644 --- a/src/gui/client/gui-goodies.lisp +++ b/src/gui/client/gui-goodies.lisp @@ -127,6 +127,3 @@ :accessor rows :initform '() :initarg :rows))) - -(defun make-internal-iri (path &optional (query nil) (fragment nil)) - (iri:make-iri +internal-scheme+ nil nil nil path query fragment)) diff --git a/src/gui/client/internal-paths.lisp b/src/gui/client/internal-paths.lisp new file mode 100644 index 0000000..0dd7722 --- /dev/null +++ b/src/gui/client/internal-paths.lisp @@ -0,0 +1,15 @@ +(in-package :client-main-window) + +(defun make-internal-iri (path &optional (query nil) (fragment nil)) + (iri:make-iri +internal-scheme+ nil nil nil path query fragment)) + +(defun internal-iri-bookmark () + (make-internal-iri +internal-path-bookmark+)) + +(defun show-bookmarks-page (main-window) + (ev:with-enqueued-process-and-unblock () + (let ((parsed-page (comm:make-request :gemini-generate-bookmark-page 1)) + (iri (internal-iri-bookmark))) + (set-address-bar-text main-window (to-s iri)) + (clean-gemtext main-window) + (collect-ir-lines (to-s iri) main-window parsed-page)))) diff --git a/src/gui/client/menu-command.lisp b/src/gui/client/menu-command.lisp index 3603ffd..516c180 100644 --- a/src/gui/client/menu-command.lisp +++ b/src/gui/client/menu-command.lisp @@ -27,11 +27,4 @@ (defun show-bookmarks-clsr (main-window) (lambda () - (ev:with-enqueued-process-and-unblock () - (let ((parsed-page (comm:make-request :gemini-generate-bookmark-page 1)) - (iri (gui-goodies:make-internal-iri "bookmark"))) - (client-main-window:set-address-bar-text main-window (to-s iri)) - (client-main-window:clean-gemtext main-window) - (client-main-window::collect-ir-lines (to-s iri) - main-window - parsed-page))))) + (client-main-window:show-bookmarks-page main-window))) diff --git a/src/package.lisp b/src/package.lisp index 9d74027..26ca897 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -70,6 +70,7 @@ :+gemini-file-extension+ :+file-scheme+ :+internal-scheme+ + :+internal-path-bookmark+ ;; GUI :+minimum-padding+ :+ps-file-dialog-filter+ @@ -3382,8 +3383,7 @@ :password-dialog :table-frame :tree - :rows - :make-internal-iri)) + :rows)) (defpackage :client-menu-command (:use @@ -3498,7 +3498,10 @@ :set-address-bar-text :set-bookmark-button-true :set-bookmark-button-false - :clean-gemtext)) + :clean-gemtext + :make-internal-iri + :internal-iri-bookmark + :show-bookmarks-page)) (defpackage :main (:use diff --git a/tinmop.asd b/tinmop.asd index 6fbb990..acc1651 100644 --- a/tinmop.asd +++ b/tinmop.asd @@ -170,6 +170,7 @@ (:file "stream-window") (:file "bookmark-window") (:file "menu-command") + (:file "internal-paths") (:file "main-window"))) (:file "main") (:module tests