mirror of
https://codeberg.org/cage/tinmop/
synced 2025-02-22 08:57:37 +01:00
- added command 'gemini-jump-to-link';
- fixed layout in gemini full screen mode.
This commit is contained in:
parent
8e7a25b19c
commit
8e9e19dd82
@ -617,6 +617,8 @@
|
||||
|
||||
(define-key "end" #'open-message-link-window-scroll-end *open-message-link-keymap*)
|
||||
|
||||
(define-key "]" #'gemini-jump-to-link *open-message-link-keymap*)
|
||||
|
||||
;; chats list window
|
||||
|
||||
(define-key "r" #'refresh-chat-messages *chats-list-keymap*)
|
||||
|
@ -158,7 +158,12 @@ color-regexp = ":rendering" cyan
|
||||
# The width of the generated table of contents for gemini pages when
|
||||
# tinmop is ran as exclusive gemini client (command line option "-G")
|
||||
|
||||
gemini.exclusive.mode.toc.width = 1/5
|
||||
gemini.exclusive.mode.toc.width = 1/5
|
||||
|
||||
# The height of the links window for gemini pages when tinmop is ran as
|
||||
# exclusive gemini client (command line option "-G")
|
||||
|
||||
gemini.exclusive.mode.links.height = 1/4
|
||||
|
||||
# the signature file path relative to $HOME
|
||||
|
||||
|
4
po/it.po
4
po/it.po
@ -9,7 +9,7 @@ msgstr ""
|
||||
"Project-Id-Version: tinmop 0.0.1\n"
|
||||
"Report-Msgid-Bugs-To: https://notabug.org/cage/tinmop/\n"
|
||||
"POT-Creation-Date: 2022-02-25 12:44+0100\n"
|
||||
"PO-Revision-Date: 2022-02-25 12:45+0100\n"
|
||||
"PO-Revision-Date: 2022-02-25 14:01+0100\n"
|
||||
"Last-Translator: cage <cage@invalid.org>\n"
|
||||
"Language-Team: Italian\n"
|
||||
"Language: it\n"
|
||||
@ -869,7 +869,7 @@ msgstr[1] "Cancella ~a file temporanei? [s/N] "
|
||||
#: src/ui-goodies.lisp:93
|
||||
#, lisp-format
|
||||
msgid "Quit ~a? [y/N] "
|
||||
msgstr "Chiudere ~a? [s/N] "
|
||||
msgstr "Chiudere ~a? [s/N] "
|
||||
|
||||
#: src/ui-goodies.lisp:112
|
||||
#, lisp-format
|
||||
|
@ -94,7 +94,9 @@
|
||||
(ensure-just-one-stream-rendering)
|
||||
(force-rendering-of-cached-file stream-object)
|
||||
(setf (stream-status stream-object) :completed)
|
||||
(ui:open-gemini-toc))
|
||||
(ui:open-gemini-toc)
|
||||
(program-events:with-enqueued-process ()
|
||||
(ui:open-gemini-message-link-window :give-focus nil)))
|
||||
((gemini-client:text-file-stream-p meta)
|
||||
(ensure-just-one-stream-rendering)
|
||||
(force-rendering-of-cached-file stream-object)
|
||||
@ -368,6 +370,10 @@
|
||||
(maybe-render-toc ()
|
||||
(when (eq (stream-status wrapper-object) :rendering)
|
||||
(ui:open-gemini-toc)))
|
||||
(maybe-render-links ()
|
||||
(when (eq (stream-status wrapper-object) :rendering)
|
||||
(program-events:with-enqueued-process ()
|
||||
(ui:open-gemini-message-link-window :give-focus nil))))
|
||||
(maybe-render-preformat-wrapper (file-stream wrapper-object)
|
||||
(when (not gemini-format-p)
|
||||
(let* ((preformat-line (format nil "~a~%" gemini-parser:+preformatted-prefix+))
|
||||
@ -441,6 +447,7 @@
|
||||
(ui:notify (_ "Gemini document downloading aborted"))
|
||||
(progn
|
||||
(maybe-render-toc)
|
||||
(maybe-render-links)
|
||||
(ui:notify (_ "Gemini document downloading completed"))
|
||||
(setf (stream-status wrapper-object) :completed)
|
||||
(when (and fragment
|
||||
|
@ -118,7 +118,8 @@
|
||||
command-window-height
|
||||
reference-window-height)
|
||||
(- main-window-height
|
||||
command-window-height)))
|
||||
command-window-height
|
||||
(swconf:config-gemini-fullscreen-links-height))))
|
||||
(width reference-window-width)
|
||||
(x (if (and command-line:*gemini-full-screen-mode*
|
||||
*gemini-toc-window*)
|
||||
@ -126,7 +127,7 @@
|
||||
(win-x reference-window)))
|
||||
(y (if (and command-line:*gemini-full-screen-mode*
|
||||
*gemini-toc-window*)
|
||||
0
|
||||
(swconf:config-gemini-fullscreen-links-height)
|
||||
(+ (win-y reference-window)
|
||||
reference-window-height))))
|
||||
(win-resize object width height)
|
||||
@ -311,6 +312,10 @@
|
||||
(row-add-original-object res original-object)
|
||||
res))
|
||||
|
||||
(defun row-link-p (row)
|
||||
(typep (row-get-original-object row)
|
||||
'gemini-parser:link-line))
|
||||
|
||||
(defun row-pre-start-p (row)
|
||||
(typep (row-get-original-object row)
|
||||
'gemini-parser:pre-start))
|
||||
|
@ -38,12 +38,20 @@
|
||||
(selected-bg (swconf:selected-background theme-style))
|
||||
(unselected-fg (swconf:unselected-foreground theme-style))
|
||||
(unselected-bg (swconf:unselected-background theme-style))
|
||||
(win-w (truncate (/ (win-width specials:*main-window*) 2)))
|
||||
(win-h (truncate (/ (win-height specials:*main-window*) 2)))
|
||||
(x (truncate (- (/ (win-width specials:*main-window*) 2)
|
||||
(/ win-w 2))))
|
||||
(y (truncate (- (/ (win-height specials:*main-window*) 2)
|
||||
(/ win-h 2)))))
|
||||
(reference-window (if command-line:*gemini-full-screen-mode*
|
||||
*gemini-toc-window*
|
||||
*thread-window*))
|
||||
(win-w (if command-line:*gemini-full-screen-mode*
|
||||
(- (win-width *main-window*)
|
||||
(win-width reference-window))
|
||||
(win-width reference-window)))
|
||||
(win-h (if command-line:*gemini-full-screen-mode*
|
||||
(swconf:config-gemini-fullscreen-links-height)
|
||||
(win-height reference-window)))
|
||||
(x (if command-line:*gemini-full-screen-mode*
|
||||
(win-width reference-window)
|
||||
(win-x reference-window)))
|
||||
(y 0))
|
||||
(setf (background croatoan-window)
|
||||
(tui:make-win-background bg))
|
||||
(setf (bgcolor croatoan-window) bg)
|
||||
|
@ -1242,6 +1242,7 @@
|
||||
:make-tree-colormap
|
||||
:left-arrow
|
||||
:config-gemini-fullscreen-toc-width
|
||||
:config-gemini-fullscreen-links-height
|
||||
:config-post-allowed-language
|
||||
:config-purge-history-days-offset
|
||||
:config-purge-cage-days-offset
|
||||
@ -2176,6 +2177,7 @@
|
||||
:viewport-width
|
||||
:draw-downloading-animation
|
||||
:visible-rows
|
||||
:row-link-p
|
||||
:row-vertical-space-p
|
||||
:row-preformatted-p
|
||||
:row-invisible-p
|
||||
@ -2694,8 +2696,10 @@
|
||||
:open-message-attach-go-up
|
||||
:open-message-attach-go-down
|
||||
:open-message-attach-perform-opening
|
||||
:gemini-jump-to-link
|
||||
:close-open-attach-window
|
||||
:search-link-window
|
||||
:open-gemini-message-link-window
|
||||
:open-message-link
|
||||
:open-message-link-go-up
|
||||
:open-message-link-go-down
|
||||
|
@ -1086,6 +1086,7 @@
|
||||
(gemini-viewer:maybe-initialize-metadata window)
|
||||
(refresh-gemini-message-window links page-data ir-text nil)
|
||||
(ui:open-gemini-toc)
|
||||
(ui:open-gemini-message-link-window :give-focus nil)
|
||||
(windows:draw window)))))
|
||||
|
||||
(defclass gemini-request-event (program-event)
|
||||
|
@ -495,6 +495,7 @@
|
||||
value
|
||||
scheme
|
||||
link
|
||||
links
|
||||
creation-time
|
||||
access-time
|
||||
visibility
|
||||
@ -947,6 +948,14 @@
|
||||
+key-toc+
|
||||
+key-width+)
|
||||
|
||||
(gen-simple-access (gemini-fullscreen-links-height
|
||||
:transform-value-fn main-window:parse-subwin-h)
|
||||
+key-gemini+
|
||||
+key-exclusive+
|
||||
+key-mode+
|
||||
+key-links+
|
||||
+key-height+)
|
||||
|
||||
(gen-simple-access (post-allowed-language
|
||||
:transform-value-fn
|
||||
(lambda (a) (cl-ppcre:create-scanner a :case-insensitive-mode t)))
|
||||
|
@ -460,7 +460,6 @@ Metadata includes:
|
||||
(list *send-message-window*
|
||||
*follow-requests-window*
|
||||
*open-attach-window*
|
||||
*open-message-link-window*
|
||||
*gemini-streams-window*
|
||||
*gemini-certificates-window*
|
||||
*filesystem-explorer-window*)))
|
||||
@ -1241,12 +1240,13 @@ If some posts was deleted before, download them again."
|
||||
:prompt (_ "Search key: ")
|
||||
:complete-fn #'complete:complete-always-empty)))
|
||||
|
||||
(defun open-gemini-message-link-window ()
|
||||
(defun open-gemini-message-link-window (&key (give-focus t))
|
||||
(let* ((window *message-window*)
|
||||
(metadata (message-window:metadata window))
|
||||
(links (gemini-viewer:gemini-metadata-links metadata)))
|
||||
(open-message-link-window:init-gemini-links links)
|
||||
(focus-to-open-message-link-window)))
|
||||
(when give-focus
|
||||
(focus-to-open-message-link-window))))
|
||||
|
||||
(defun open-message-link ()
|
||||
"Open message links window
|
||||
@ -1324,6 +1324,27 @@ Browse and optionally open the links the text of the message window contains."
|
||||
(url (line-oriented-window:normal-text selected-line)))
|
||||
(open-message-link-window:open-message-link url enqueue)))
|
||||
|
||||
(defun gemini-jump-to-link ()
|
||||
(when-let* ((link-win *open-message-link-window*)
|
||||
(message-win *message-window*)
|
||||
(selected-line (line-oriented-window:selected-row link-win))
|
||||
(selected-position (line-oriented-window:rows-position-if link-win
|
||||
(lambda (a)
|
||||
(eq a selected-line)))))
|
||||
(when (message-window:gemini-window-p* message-win)
|
||||
(let ((count-link 0)
|
||||
(count-rows 0)
|
||||
(selected-message-row-position -1))
|
||||
(line-oriented-window:do-rows-raw (message-win row)
|
||||
(when (message-window:row-link-p row)
|
||||
(when (= count-link selected-position)
|
||||
(setf selected-message-row-position count-rows))
|
||||
(incf count-link))
|
||||
(incf count-rows))
|
||||
(when (> selected-message-row-position 0)
|
||||
(line-oriented-window:select-row message-win selected-message-row-position)
|
||||
(draw message-win))))))
|
||||
|
||||
(defun open-message-link-perform-opening ()
|
||||
(%open-message-link-perform-opening nil))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user