mirror of https://codeberg.org/cage/tinmop/
- [GUI] prevent rendering of lines in the queue when corresponding
stream has been canceled; - [GUI] print an error when opening a non existent local path.
This commit is contained in:
parent
c90c7289d9
commit
f882b1584f
|
@ -79,7 +79,8 @@
|
||||||
(with-accessors ((fetching-thread fetching-thread)) object
|
(with-accessors ((fetching-thread fetching-thread)) object
|
||||||
(abort-downloading object)
|
(abort-downloading object)
|
||||||
(when (bt:threadp fetching-thread)
|
(when (bt:threadp fetching-thread)
|
||||||
(bt:join-thread fetching-thread))))
|
(bt:join-thread fetching-thread)))
|
||||||
|
object)
|
||||||
|
|
||||||
(defmethod stop-stream-thread ((object string))
|
(defmethod stop-stream-thread ((object string))
|
||||||
(let ((stream-wrapper (find-db-stream-url object)))
|
(let ((stream-wrapper (find-db-stream-url object)))
|
||||||
|
@ -444,7 +445,9 @@
|
||||||
(clean-gemtext main-window)
|
(clean-gemtext main-window)
|
||||||
(set-text-gemtext main-window lines)))))
|
(set-text-gemtext main-window lines)))))
|
||||||
((fs:directory-exists-p path)
|
((fs:directory-exists-p path)
|
||||||
(gui:choose-directory :initial-dir path :parent main-window :mustexist t))))
|
(gui:choose-directory :initial-dir path :parent main-window :mustexist t))
|
||||||
|
(t
|
||||||
|
(notify-request-error (format nil (_ "No such file or directory: ~a") path)))))
|
||||||
|
|
||||||
(defun open-iri (iri main-window use-cache)
|
(defun open-iri (iri main-window use-cache)
|
||||||
(handler-case
|
(handler-case
|
||||||
|
@ -495,13 +498,21 @@
|
||||||
((gemini-client:header-success-p status-code)
|
((gemini-client:header-success-p status-code)
|
||||||
(cond
|
(cond
|
||||||
((eq status +stream-status-streaming+)
|
((eq status +stream-status-streaming+)
|
||||||
(maybe-stop-steaming-stream-thread)
|
(let ((stopped-stream (maybe-stop-steaming-stream-thread)))
|
||||||
(clean-gemtext main-window)
|
(clean-gemtext main-window)
|
||||||
(start-streaming-thread iri
|
(start-streaming-thread iri
|
||||||
:use-cache nil
|
:use-cache nil
|
||||||
:process-function (lambda (lines)
|
:process-function
|
||||||
(collect-ir-lines iri main-window lines))
|
(lambda (lines)
|
||||||
:status status))
|
;; this test ensures that the
|
||||||
|
;; collecting events left on
|
||||||
|
;; the queue won't be actually
|
||||||
|
;; processed, just discarded
|
||||||
|
(when (and stopped-stream
|
||||||
|
(not (eq (status stopped-stream)
|
||||||
|
+stream-status-canceled+)))
|
||||||
|
(collect-ir-lines iri main-window lines)))
|
||||||
|
:status status)))
|
||||||
((eq status +stream-status-downloading+)
|
((eq status +stream-status-downloading+)
|
||||||
(when (not (find-db-stream-url iri))
|
(when (not (find-db-stream-url iri))
|
||||||
(enqueue-request-notify-error :gemini-request 1 iri use-cache)))
|
(enqueue-request-notify-error :gemini-request 1 iri use-cache)))
|
||||||
|
|
Loading…
Reference in New Issue