From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-2.9 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, RP_MATCHES_RCVD shortcircuit=no autolearn=unavailable version=3.3.2 X-Original-To: meta@public-inbox.org Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id D502E6338D8 for ; Fri, 4 Sep 2015 08:59:03 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 6/9] view: indentation adjustments for collapsed headers Date: Fri, 4 Sep 2015 08:58:56 +0000 Message-Id: <1441357139-23879-7-git-send-email-e@80x24.org> In-Reply-To: <1441357139-23879-1-git-send-email-e@80x24.org> References: <1441357139-23879-1-git-send-email-e@80x24.org> List-Id: 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 d025c99..4e800c6 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; } } -- EW