mirror of https://codeberg.org/cage/tinmop/
- [TUI] added new command: 'thread-delete-subtree';
- removed legacy function.
This commit is contained in:
parent
917af9b007
commit
1d4d813dbc
|
@ -337,6 +337,8 @@
|
||||||
|
|
||||||
(define-key "N d" #'delete-notifications *thread-keymap*)
|
(define-key "N d" #'delete-notifications *thread-keymap*)
|
||||||
|
|
||||||
|
(define-key "T d" #'thread-delete-subtree *thread-keymap*)
|
||||||
|
|
||||||
(define-key "P" #'poll-vote *thread-keymap*)
|
(define-key "P" #'poll-vote *thread-keymap*)
|
||||||
|
|
||||||
(define-key "p" #'show-parent-post *thread-keymap*)
|
(define-key "p" #'show-parent-post *thread-keymap*)
|
||||||
|
|
|
@ -241,12 +241,6 @@ example:
|
||||||
"/"
|
"/"
|
||||||
(db-current-file-name))))
|
(db-current-file-name))))
|
||||||
|
|
||||||
(defun db-path* ()
|
|
||||||
(uiop:unix-namestring (concatenate 'string
|
|
||||||
(res:home-datadir)
|
|
||||||
"/"
|
|
||||||
"db.sqlite3")))
|
|
||||||
|
|
||||||
(defun db-file-exists-p ()
|
(defun db-file-exists-p ()
|
||||||
(fs:file-exists-p (db-path)))
|
(fs:file-exists-p (db-path)))
|
||||||
|
|
||||||
|
|
|
@ -2972,6 +2972,7 @@
|
||||||
:thread-open-selected-message
|
:thread-open-selected-message
|
||||||
:thread-mark-delete-selected-message
|
:thread-mark-delete-selected-message
|
||||||
:thread-mark-prevent-delete-selected-message
|
:thread-mark-prevent-delete-selected-message
|
||||||
|
:thread-delete-subtree
|
||||||
:subscribe-to-hash
|
:subscribe-to-hash
|
||||||
:unsubscribe-to-hash
|
:unsubscribe-to-hash
|
||||||
:message-extract-links
|
:message-extract-links
|
||||||
|
|
|
@ -365,6 +365,21 @@ Metadata includes:
|
||||||
(thread-window:mark-selected-message-prevent-delete *thread-window*
|
(thread-window:mark-selected-message-prevent-delete *thread-window*
|
||||||
:move-down-selected-message t))
|
:move-down-selected-message t))
|
||||||
|
|
||||||
|
(defun thread-delete-subtree ()
|
||||||
|
"Mark the selected message and all its children for deletion and do the
|
||||||
|
same to each child of the latter"
|
||||||
|
(with-enqueued-process ()
|
||||||
|
(when-let* ((selected-row (line-oriented-window:selected-row-fields *thread-window*))
|
||||||
|
(selected-message-id (db:row-message-status-id selected-row))
|
||||||
|
(timeline (thread-window:timeline-type *thread-window*))
|
||||||
|
(folder (thread-window:timeline-folder *thread-window*))
|
||||||
|
(messages-tree (db:message-root->tree timeline folder selected-message-id))
|
||||||
|
(children-to-delete (mtree:collect-nodes-data messages-tree))
|
||||||
|
(ids-to-delete (mapcar #'db:row-message-status-id children-to-delete)))
|
||||||
|
(loop for id-to-delete in ids-to-delete do
|
||||||
|
(db:mark-status-deleted timeline folder id-to-delete))
|
||||||
|
(line-oriented-window:resync-rows-db *thread-window* :redraw t))))
|
||||||
|
|
||||||
(defun subscribe-to-hash ()
|
(defun subscribe-to-hash ()
|
||||||
"Subscribe to hashtag"
|
"Subscribe to hashtag"
|
||||||
(flet ((on-input-complete (tags)
|
(flet ((on-input-complete (tags)
|
||||||
|
|
Loading…
Reference in New Issue