diff options
Diffstat (limited to 'widgets/msglist.go')
-rw-r--r-- | widgets/msglist.go | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/widgets/msglist.go b/widgets/msglist.go index df24526..ec14e79 100644 --- a/widgets/msglist.go +++ b/widgets/msglist.go @@ -194,14 +194,23 @@ func (ml *MessageList) drawRow(textWidth int, ctx *ui.Context, uid uint32, row i return false } - confParams := map[config.ContextType]string{ - config.UI_CONTEXT_ACCOUNT: acct.AccountConfig().Name, - config.UI_CONTEXT_FOLDER: acct.Directories().Selected(), - } - if msg.Envelope != nil { - confParams[config.UI_CONTEXT_SUBJECT] = msg.Envelope.Subject + // TODO deprecate subject contextual UIs? Only related setting is styleset, + // should implement a better per-message styling method + // Check if we have any applicable ContextualUIConfigs + confs := ml.aerc.conf.GetContextualUIConfigs() + uiConfig := acct.Directories().UiConfig() + for _, c := range confs { + if c.ContextType == config.UI_CONTEXT_SUBJECT && msg.Envelope != nil { + if c.Regex.Match([]byte(msg.Envelope.Subject)) { + confParams := map[config.ContextType]string{ + config.UI_CONTEXT_ACCOUNT: acct.AccountConfig().Name, + config.UI_CONTEXT_FOLDER: acct.Directories().Selected(), + config.UI_CONTEXT_SUBJECT: msg.Envelope.Subject, + } + uiConfig = ml.conf.GetUiConfig(confParams) + } + } } - uiConfig := ml.conf.GetUiConfig(confParams) msg_styles := []config.StyleObject{} // unread message |