mirror of https://codeberg.org/cage/tinmop/
- prevented crash when bookmarking the start page in gemini fullscreen
mode (Thanks reDFog!).
This commit is contained in:
parent
5f8dc6c5a2
commit
8f04e4efbb
|
@ -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)))
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
Loading…
Reference in New Issue