From aafc42d8089437db5105feb12d540c33fe9f9e16 Mon Sep 17 00:00:00 2001 From: Jeff Smith Date: Tue, 17 Oct 2017 23:17:34 -0500 Subject: ui-blame: Make each column into a single table cell Signed-off-by: Jeff Smith Reviewed-by: John Keeping --- cgit.css | 19 +++++++++++++++++-- ui-blame.c | 58 +++++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 54 insertions(+), 23 deletions(-) diff --git a/cgit.css b/cgit.css index 893ebeb..20b7e86 100644 --- a/cgit.css +++ b/cgit.css @@ -330,11 +330,26 @@ div#cgit table.ssdiff td.lineno a:hover { color: black; } -div#cgit table.blame tr:nth-child(even) { +div#cgit table.blame td.hashes, +div#cgit table.blame td.lines, +div#cgit table.blame td.linenumbers { + padding: 0; +} + +div#cgit table.blame td.hashes div.alt, +div#cgit table.blame td.lines div.alt { + padding: 0 0.5em 0 0.5em; +} + +div#cgit table.blame td.linenumbers div.alt { + padding: 0 0.5em 0 0; +} + +div#cgit table.blame div.alt:nth-child(even) { background: #eee; } -div#cgit table.blame tr:nth-child(odd) { +div#cgit table.blame div.alt:nth-child(odd) { background: white; } diff --git a/ui-blame.c b/ui-blame.c index bbaad1c..d565fff 100644 --- a/ui-blame.c +++ b/ui-blame.c @@ -45,11 +45,17 @@ static void emit_blame_entry_hash(struct blame_entry *ent) { struct blame_origin *suspect = ent->suspect; struct object_id *oid = &suspect->commit->object.oid; + unsigned long line = 0; char *detail = emit_suspect_detail(suspect); + html(""); cgit_commit_link(find_unique_abbrev(oid->hash, DEFAULT_ABBREV), detail, NULL, ctx.qry.head, oid_to_hex(oid), suspect->path); + html(""); free(detail); + + while (line++ < ent->num_lines) + html("\n"); } static void emit_blame_entry_linenumber(struct blame_entry *ent) @@ -72,24 +78,6 @@ static void emit_blame_entry_line(struct blame_scoreboard *sb, html_ntxt(cp, cpend - cp); } -static void emit_blame_entry(struct blame_scoreboard *sb, - struct blame_entry *ent) -{ - html(""); - emit_blame_entry_hash(ent); - html("\n"); - - if (ctx.cfg.enable_tree_linenumbers) { - html("
");
-		emit_blame_entry_linenumber(ent);
-		html("
\n"); - } - - html("
");
-	emit_blame_entry_line(sb, ent);
-	html("
\n"); -} - struct walk_tree_context { char *curr_rev; int match_baselen; @@ -147,16 +135,44 @@ static void print_object(const unsigned char *sha1, const char *path, return; } - html(""); + html("
\n\n"); + + /* Commit hashes */ + html("\n"); + + /* Line numbers */ + if (ctx.cfg.enable_tree_linenumbers) { + html("\n"); + } + + /* Lines */ + html("
"); + for (ent = sb.ent; ent; ent = ent->next) { + html("
");
+		emit_blame_entry_hash(ent);
+		html("
"); + } + html("
"); + for (ent = sb.ent; ent; ent = ent->next) { + html("
");
+			emit_blame_entry_linenumber(ent);
+			html("
"); + } + html("
"); for (ent = sb.ent; ent; ) { struct blame_entry *e = ent->next; - emit_blame_entry(&sb, ent); + html("
");
+		emit_blame_entry_line(&sb, ent);
+		html("
"); free(ent); ent = e; } - html("
\n"); + html("\n"); + free((void *)sb.final_buf); + html("\n\n"); + cgit_print_layout_end(); } -- cgit v1.2.3