1
0
Fork 0

- [TUI] added new command: 'thread-delete-subtree';

- removed legacy function.
This commit is contained in:
cage 2024-03-29 11:57:54 +01:00
parent 917af9b007
commit 1d4d813dbc
4 changed files with 18 additions and 6 deletions

View File

@ -337,6 +337,8 @@
(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" #'show-parent-post *thread-keymap*)

View File

@ -241,12 +241,6 @@ example:
"/"
(db-current-file-name))))
(defun db-path* ()
(uiop:unix-namestring (concatenate 'string
(res:home-datadir)
"/"
"db.sqlite3")))
(defun db-file-exists-p ()
(fs:file-exists-p (db-path)))

View File

@ -2972,6 +2972,7 @@
:thread-open-selected-message
:thread-mark-delete-selected-message
:thread-mark-prevent-delete-selected-message
:thread-delete-subtree
:subscribe-to-hash
:unsubscribe-to-hash
:message-extract-links

View File

@ -365,6 +365,21 @@ Metadata includes:
(thread-window:mark-selected-message-prevent-delete *thread-window*
: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 ()
"Subscribe to hashtag"
(flet ((on-input-complete (tags)