From 1c2cfaf1d65b786c58ee637a67ed124e937f34c2 Mon Sep 17 00:00:00 2001 From: Brendan Dahl Date: Mon, 1 Apr 2013 11:59:57 -0700 Subject: [PATCH] Add keyboard shortcuts for retest analyzer. --- test/resources/reftest-analyzer.xhtml | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/test/resources/reftest-analyzer.xhtml b/test/resources/reftest-analyzer.xhtml index f914d297e..fb705c7eb 100644 --- a/test/resources/reftest-analyzer.xhtml +++ b/test/resources/reftest-analyzer.xhtml @@ -74,6 +74,8 @@ Features to add: #itemlist > table { border-collapse: collapse; } #itemlist > table > tbody > tr > td { border: 1px solid; padding: 1px; } + .selected { background-color: lightsteelblue; } + /* #itemlist > table > tbody > tr.pass > td.url { background: lime; } #itemlist > table > tbody > tr.fail > td.url { background: red; } @@ -111,6 +113,7 @@ var gImage1Data; // ImageData object for the reference image var gImage2Data; // ImageData object for the test output image var gFlashingPixels = []; // array of objects that should be flashed due to pixel color mismatch var gPath = ''; // path taken from #web= and prepended to ref/snp urls +var gSelected = null; // currently selected comparison function ID(id) { if (!(id in gIDCache)) @@ -316,6 +319,7 @@ function build_viewer() { tr.appendChild(td); td = document.createElement("td"); + td.id = "url" + i; td.className = "url"; // Only display part of URL after "/mozilla/". var match = item.url.match(/\/mozilla\/(.*)/); @@ -354,6 +358,11 @@ function get_image_data(src, whenReady) { } function show_images(i) { + if (gSelected !== null) { + ID('url' + gSelected).classList.remove('selected'); + } + gSelected = i; + ID('url' + gSelected).classList.add('selected'); var item = gTestItems[i]; var cell = ID("images"); @@ -479,6 +488,30 @@ function show_pixelinfo(x, y, pix1rgb, pix1hex, pix2rgb, pix2hex) { ID("pix2rgb").textContent = pix2rgb; } +window.addEventListener('keydown', function keydown(event) { + if (event.which === 84) { + // 't' switch test/ref images + var val = 0; + if (document.querySelector('input[name="which"][value="0"]:checked')) { + val = 1; + } + document.querySelector('input[name="which"][value="' + val + '"]').click(); + } else if (event.which === 78 || event.which === 80) { + // 'n' next image, 'p' previous image + var select = gSelected; + if (gSelected === null) { + select = 0; + } else if (event.which === 78) { + select++; + } else { + select--; + } + var length = gTestItems.length; + select = select < 0 ? length - 1 : select >= length ? 0 : select; + show_images(select); + } +}); + ]]>