- labels = m.labels# - @hidden_labels
- x = [[prefix_widget, widget, imp_widget, [:message_patina_color, "From: #{m.from ? m.from.longname : '?'}"]]] +
- ((m.to.empty? ? [] : break_into_lines(" To: ", m.to.map { |x| x.longname })) +
- (m.cc.empty? ? [] : break_into_lines(" Cc: ", m.cc.map { |x| x.longname })) +
- (m.bcc.empty? ? [] : break_into_lines(" Bcc: ", m.bcc.map { |x| x.longname })) +
- [" Date: #{m.date.strftime DATE_FORMAT} (#{m.date.to_nice_distance_s})"] +
- [" Subject: #{m.subj}"] +
- [(parent ? " In reply to: #{parent.from.mediumname}'s message of #{parent.date.strftime DATE_FORMAT}" : nil)] +
- [labels.empty? ? nil : " Labels: #{labels.join(', ')}"]
- ).flatten.compact.map { |l| [[:message_patina_color, prefix + " " + l]] }
- #raise x.inspect
- x
+ @person_lines[start] = m.from
+ from = [[prefix_widget, open_widget, new_widget, starred_widget,
+ [color, "From: #{m.from ? format_person(m.from) : '?'}"]]]
+
+ rest = []
+ unless m.to.empty?
+ m.to.each_with_index { |p, i| @person_lines[start + rest.length + from.length + i] = p }
+ rest += format_person_list " To: ", m.to
+ end
+ unless m.cc.empty?
+ m.cc.each_with_index { |p, i| @person_lines[start + rest.length + from.length + i] = p }
+ rest += format_person_list " Cc: ", m.cc
+ end
+ unless m.bcc.empty?
+ m.bcc.each_with_index { |p, i| @person_lines[start + rest.length + from.length + i] = p }
+ rest += format_person_list " Bcc: ", m.bcc
+ end
+
+ rest += [
+ " Date: #{m.date.strftime DATE_FORMAT} (#{m.date.to_nice_distance_s})",
+ " Subject: #{m.subj}",
+ (parent ? " In reply to: #{parent.from.mediumname}'s message of #{parent.date.strftime DATE_FORMAT}" : nil),
+ m.labels.empty? ? nil : " Labels: #{m.labels.join(', ')}",
+ ].compact
+
+ from + rest.map { |l| [[color, prefix + " " + l]] }