1
0
Fork 0

- prevented crash when bookmarking the start page in gemini fullscreen

mode (Thanks reDFog!).
This commit is contained in:
cage 2022-02-19 11:21:49 +01:00
parent 5f8dc6c5a2
commit 8f04e4efbb
2 changed files with 31 additions and 26 deletions

View File

@ -63,6 +63,7 @@
(defun current-gemini-url () (defun current-gemini-url ()
(when (message-window:gemini-window-p) (when (message-window:gemini-window-p)
(let* ((metadata (message-window:metadata specials:*message-window*)) (when-let* ((metadata (message-window:metadata specials:*message-window*))
(link (last-elt (gemini-viewer:gemini-metadata-history metadata)))) (history (gemini-viewer:gemini-metadata-history metadata))
(link (last-elt history)))
link))) link)))

View File

@ -2276,30 +2276,34 @@ gemini page the program is rendering."
:complete-fn #'complete:directory-complete)))) :complete-fn #'complete:directory-complete))))
(defun bookmark-gemini-page () (defun bookmark-gemini-page ()
(if (message-window:gemini-window-p) (cond
(let* ((link (gemini-viewer:current-gemini-url)) ((not (message-window:gemini-window-p))
(metadata (message-window:metadata *message-window*)) (error-message (_ "The window is not displaying a gemini document")))
(source (gemini-viewer:gemini-metadata-source-file metadata)) ((not (gemini-viewer:current-gemini-url))
(description (gemini-parser:gemini-first-h1 source))) (error-message (_ "This page can not be added to bookmarks")))
(labels ((on-description-completed (new-description) (t
(if (text-utils:string-empty-p new-description) (let* ((link (gemini-viewer:current-gemini-url))
(error-message (_ "Empty description")) (metadata (message-window:metadata *message-window*))
(progn (source (gemini-viewer:gemini-metadata-source-file metadata))
(setf description new-description) (description (gemini-parser:gemini-first-h1 source)))
(ui:ask-string-input #'on-section-completed (labels ((on-description-completed (new-description)
:prompt (format nil (_ "Insert bookmark section: ")) (if (text-utils:string-empty-p new-description)
:complete-fn #'complete:bookmark-section-complete)))) (error-message (_ "Empty description"))
(on-section-completed (section) (progn
(db-utils:with-ready-database (:connect nil) (setf description new-description)
(db:bookmark-add db:+bookmark-gemini-type-entry+ (ui:ask-string-input #'on-section-completed
link :prompt (format nil (_ "Insert bookmark section: "))
:section section :complete-fn #'complete:bookmark-section-complete))))
:description description)) (on-section-completed (section)
(notify (format nil (_ "Added ~s in bookmark") link)))) (db-utils:with-ready-database (:connect nil)
(ui:ask-string-input #'on-description-completed (db:bookmark-add db:+bookmark-gemini-type-entry+
:prompt (format nil (_ "Insert bookmark description: ")) link
:initial-value description))) :section section
(error-message (_ "The window is not displaying a gemini document")))) :description description))
(notify (format nil (_ "Added ~s in bookmark") link))))
(ui:ask-string-input #'on-description-completed
:prompt (format nil (_ "Insert bookmark description: "))
:initial-value description))))))
(defun generate-bookmark-page () (defun generate-bookmark-page ()
(let ((bookmarks-sections (db:bookmark-all-grouped-by-section))) (let ((bookmarks-sections (db:bookmark-all-grouped-by-section)))