From 4e36325f723709757f16e28ecf82a21e750ab20d Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 4 Sep 2015 05:59:59 +0000 Subject: [PATCH] view: indentation adjustments for collapsed headers This makes the layout between the permalink threads and index threads more consistent; hopefully. --- lib/PublicInbox/View.pm | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index d025c993..4e800c68 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -687,7 +687,8 @@ sub _msg_date { sub _inline_header { my ($dst, $state, $upfx, $mime, $level) = @_; - my $pfx = INDENT x $level; + my $pfx = INDENT x ($level - 1); + my $dot = $level == 0 ? '' : '` '; my $cur = $state->{cur}; my $mid = mid_clean($mime->header('Message-ID')); @@ -709,7 +710,7 @@ sub _inline_header { if ($cur) { if ($cur eq $mid) { delete $state->{cur}; - $$dst .= "$pfx` ". + $$dst .= "$pfx$dot". "[this message]$attr\n"; return; @@ -733,9 +734,9 @@ sub _inline_header { my $m = PublicInbox::Hval->new_msgid($mid); $m = $upfx . '../' . $m->as_href . '/'; if (defined $s) { - $$dst .= "$pfx` $s$attr\n"; + $$dst .= "$pfx$dot$s$attr\n"; } else { - $$dst .= "$pfx` $f @ $d\n"; + $$dst .= "$pfx$dot$f @ $d\n"; } } @@ -749,7 +750,8 @@ sub inline_dump { } _inline_header($dst, $state, $upfx, $mime, $level); } else { - my $pfx = (INDENT x $level) . '` '; + my $dot = $level == 0 ? '' : '` '; + my $pfx = (INDENT x $level) . $dot; $$dst .= $pfx . ghost_parent($upfx, $node->messageid) . "\n"; } inline_dump($dst, $state, $upfx, $node->child, $level+1); @@ -775,6 +777,7 @@ sub rsort_ts { sub add_topic { my ($state, $node, $level) = @_; return unless $node; + my $child_adjust = 1; if (my $x = $node->message) { $x = $x->header_obj; @@ -797,9 +800,12 @@ sub add_topic { my $u = $x->header('X-PI-From'); my $ts = $x->header('X-PI-TS'); $state->{latest}->{$topic} = [ $mid, $u, $ts ]; - } # else { } # ghost ignored... + } else { + # ghost message, do not bump level + $child_adjust = 0; + } - add_topic($state, $node->child, $level + 1); + add_topic($state, $node->child, $level + $child_adjust); add_topic($state, $node->next, $level); } @@ -838,7 +844,8 @@ sub dump_topics { $n = " ($n)\n"; } if ($level == 0 || $attr ne $prev_attr) { - $dst .= "$pfx - ". $attr . $n; + $pfx .= INDENT if $level > 0; + $dst .= "$pfx- ". $attr . $n; $prev_attr = $attr; } } -- 2.44.0