diff --git a/etc/default-theme.conf b/etc/default-theme.conf index af8bd44..024c5e9 100644 --- a/etc/default-theme.conf +++ b/etc/default-theme.conf @@ -432,7 +432,18 @@ message-window.account.unlocked.mark.value = " 🔓" # the string for the header of attachments in a message, if not # specified a default is chosen by the software. -#message-window.attachment-header.value = " attachment " +# message-window.attachment-header.value = " attachment " + +# below the text printed for toot's visibility level: public, +# unlisted, private or direct + +message-window.visibility.public = "🌐" + +message-window.visibility.unlisted = "🔓" + +message-window.visibility.private = "🔒" + +message-window.visibility.direct = "📧" # this is the window that allow to browse the attachments of a message diff --git a/src/message-rendering-utils.lisp b/src/message-rendering-utils.lisp index 2d91592..4303e55 100644 --- a/src/message-rendering-utils.lisp +++ b/src/message-rendering-utils.lisp @@ -223,12 +223,19 @@ as-text)) as-text))) +(defun visibility->mark (visibility) + (let ((mapping (swconf:message-windows-visibility-marks))) + (db-getf mapping + (make-keyword (string-upcase visibility)) + :default visibility + :only-empty-or-0-are-null t))) + (defun message-original->text-header (message-row) (let* ((date-format (swconf:date-fmt swconf:+key-message-window+)) (username (db:row-message-username message-row)) (display-name (db:row-message-user-display-name message-row)) (creation-time (db:row-message-creation-time message-row)) - (visibility (db:row-message-visibility message-row)) + (visibility (visibility->mark (db:row-message-visibility message-row))) (lockedp (db-utils:db-not-nil-p (db:row-lockedp message-row))) (locked-mark (swconf:message-window-account-locking-status-mark lockedp)) (encoded-date (db-utils:encode-datetime-string creation-time)) diff --git a/src/package.lisp b/src/package.lisp index e7b1a06..dc7e79d 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -1125,6 +1125,7 @@ :message-window-unlocked-account-mark :message-window-account-locking-status-mark :message-window-line-mark-values + :message-windows-visibility-marks :message-window-attachments-header :form-style :background diff --git a/src/software-configuration.lisp b/src/software-configuration.lisp index 99eab2d..445886d 100644 --- a/src/software-configuration.lisp +++ b/src/software-configuration.lisp @@ -340,6 +340,11 @@ link creation-time access-time + visibility + public + unlisted + private + direct quote h1 h2 @@ -956,6 +961,31 @@ +key-line-position-mark+ +key-background+))) +(defun message-window-visibility-mark (visibility-level) + (access:accesses *software-configuration* + +key-message-window+ + +key-visibility+ + visibility-level)) + + +(defmacro gen-visibility-mapping-marks (visibility-level) + `(defun ,(format-fn-symbol t "message-window-visibility-~a-mark" visibility-level) () + (message-window-visibility-mark ,visibility-level))) + +(gen-visibility-mapping-marks "public") + +(gen-visibility-mapping-marks "unlisted") + +(gen-visibility-mapping-marks "private") + +(gen-visibility-mapping-marks "direct") + +(defun message-windows-visibility-marks () + (list :public (message-window-visibility-public-mark) + :unlisted (message-window-visibility-unlisted-mark) + :private (message-window-visibility-private-mark) + :direct (message-window-visibility-direct-mark))) + (defun message-window-attachments-header () (values (access:accesses *software-configuration* +key-message-window+