From 94966b9d7b1a145bba023ac823862ad846c026b9 Mon Sep 17 00:00:00 2001 From: niksedk Date: Fri, 25 Jun 2021 07:13:17 +0200 Subject: [PATCH] Make "Show earlier/laster" UI more responsive - thx peter-qgd :) Related to #5148 --- src/ui/Forms/Main.cs | 85 +++++++++++++++++++++-------- src/ui/Forms/Main.resx | 120 ++++++++++++++++++++--------------------- 2 files changed, 122 insertions(+), 83 deletions(-) diff --git a/src/ui/Forms/Main.cs b/src/ui/Forms/Main.cs index b28f1540d..564a2a72e 100644 --- a/src/ui/Forms/Main.cs +++ b/src/ui/Forms/Main.cs @@ -131,6 +131,7 @@ namespace Nikse.SubtitleEdit.Forms private StatusLog _statusLogForm; private bool _makeHistoryPaused; private bool _saveAsCalled; + private readonly Timer _timerSlow = new Timer(); private CheckForUpdatesHelper _checkForUpdatesHelper; private Timer _timerCheckForUpdates; @@ -11925,9 +11926,12 @@ namespace Nikse.SubtitleEdit.Forms } catch { + // ignore } } + _timerSlow.Stop(); + ShowSubtitleTimer.Stop(); if (Configuration.Settings.General.StartRememberPositionAndSize && WindowState != FormWindowState.Minimized) { Configuration.Settings.General.StartPosition = Left + ";" + Top; @@ -20497,22 +20501,6 @@ namespace Nikse.SubtitleEdit.Forms timeUpDownVideoPositionAdjust.TimeCode = new TimeCode(pos); } - mediaPlayer.RefreshProgressBar(); - - trackBarWaveformPosition.ValueChanged -= trackBarWaveformPosition_ValueChanged; - int value = (int)currentPosition; - if (value > trackBarWaveformPosition.Maximum) - { - value = trackBarWaveformPosition.Maximum; - } - - if (value < trackBarWaveformPosition.Minimum) - { - value = trackBarWaveformPosition.Minimum; - } - - trackBarWaveformPosition.Value = value; - trackBarWaveformPosition.ValueChanged += trackBarWaveformPosition_ValueChanged; if (labelNextWord.Visible && _labelNextTicks + 100000000 < DateTime.UtcNow.Ticks) { @@ -20836,8 +20824,8 @@ namespace Nikse.SubtitleEdit.Forms } catch { - // ignore - } + // ignore + } } _lastFormWindowState = WindowState; }); @@ -21635,7 +21623,6 @@ namespace Nikse.SubtitleEdit.Forms } } - SubtitleListview1.BeginUpdate(); for (int i = startFrom; i < _subtitle.Paragraphs.Count; i++) { switch (selection) @@ -21654,7 +21641,11 @@ namespace Nikse.SubtitleEdit.Forms } } - SubtitleListview1.EndUpdate(); + lock (_updateShowEarlierLock) + { + _updateShowEarlier = true; + } + RefreshSelectedParagraph(); UpdateSourceView(); UpdateListSyntaxColoring(); @@ -21677,7 +21668,6 @@ namespace Nikse.SubtitleEdit.Forms p.StartTime.TotalMilliseconds += adjustMilliseconds; p.EndTime.TotalMilliseconds += adjustMilliseconds; - SubtitleListview1.SetStartTimeAndDuration(i, p, _subtitle.GetParagraphOrDefault(i + 1), _subtitle.GetParagraphOrDefault(i - 1)); } } @@ -22442,6 +22432,55 @@ namespace Nikse.SubtitleEdit.Forms RemoveNotExistingFilesFromRecentFilesUI(); ShowSubtitleTimer.Start(); textBoxSource.SelectionLength = 0; + _timerSlow.Interval = 150; + _timerSlow.Tick += _timerSlow_Tick; + _timerSlow.Start(); + } + + private bool _updateShowEarlier; + private object _updateShowEarlierLock = new object(); + + private void _timerSlow_Tick(object sender, EventArgs e) + { + _timerSlow.Stop(); + + if (mediaPlayer.VideoPlayer != null && !mediaPlayer.IsDisposed) + { + mediaPlayer.RefreshProgressBar(); + + trackBarWaveformPosition.ValueChanged -= trackBarWaveformPosition_ValueChanged; + int value = (int)mediaPlayer.CurrentPosition; + if (value > trackBarWaveformPosition.Maximum) + { + value = trackBarWaveformPosition.Maximum; + } + else if (value < trackBarWaveformPosition.Minimum) + { + value = trackBarWaveformPosition.Minimum; + } + trackBarWaveformPosition.Value = value; + trackBarWaveformPosition.ValueChanged += trackBarWaveformPosition_ValueChanged; + } + + + if (_updateShowEarlier) + { + lock (_updateShowEarlierLock) + { + + SubtitleListview1.BeginUpdate(); + for (int i = 0; i < _subtitle.Paragraphs.Count; i++) + { + var p = _subtitle.Paragraphs[i]; + SubtitleListview1.SetStartTimeAndDuration(i, p, _subtitle.GetParagraphOrDefault(i + 1), _subtitle.GetParagraphOrDefault(i - 1)); + } + + SubtitleListview1.EndUpdate(); + _updateShowEarlier = false; + } + } + + _timerSlow.Start(); } private void TextBoxListViewText_SizeChanged(object sender, EventArgs e) @@ -30760,8 +30799,8 @@ namespace Nikse.SubtitleEdit.Forms } catch { - // Ignore - } + // Ignore + } }); } diff --git a/src/ui/Forms/Main.resx b/src/ui/Forms/Main.resx index d46db0791..8a2a419a5 100644 --- a/src/ui/Forms/Main.resx +++ b/src/ui/Forms/Main.resx @@ -464,75 +464,75 @@ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOhSURBVFhH7VdJaBRBFG2XuIKKIWokmaru1hiDoiKCIBgC - IoYEBC8qAVGEoGQmXd1BCYiMJxEPHgRxAfFklukm0UAQ4iHRmyIRUSSI4tI9IxrEg0YJYtr/9Uc7VVlm - stx88Bi6/6v6j1/Vv2q0/5gMHlZXnfNt0R5l2hbXQ02bRZKZg8dYaXJ9yZBvJcK0I0ZSiN0kmzm4ZuyK - Z/Kwd99exUDgWHdINjNoK12df9PkA2igc9MGxcBlRwxlGhrKSD798Ex2CpMP81nNQcVExhHXSD69SJWV - zWsxeSZq4O72bYqBtHP0WyaRKKBh04eUyQ9FkyNbzKIPgW09lU1AFU7TsOmDp/Ne2YBrsjOw8Q7LBgLL - ev8ikZhPQ6cOWPsKOTnwe5Our8REmFAxYdcfoeFTR8pgHaMYuE5hLYCSywagMT2h8NTQrOslkOxnNHnS - 5EOtur6RJBpuOtx8solAiF0kmTxcg1+KJkfC2ndR+C+gCtcUA47VSeHJobWoaLln8K+KAYNVkuQvsAFh - I4oauGxb8OyUkiR3eAZrVJPz52MdOtiKowaQUJkrFM4NV7duzXN1HsgGgLUkUYCHkWygzxEDQWNdPkmy - R0qP1cjJXcb6YVkWkkQBViawhdKYoDKnSJI9XJM/kg3cYOxHs8k/j8fu8vJB1UBd5lkyOY+mnhge5zvl - 5Nmyba0Zvqk7PsIA0retQzT9xEjpvH20ybPlg6o9ioG0ZfXS9OOjbU2xCeUf0Xhy5e2ydaEv6hUTvp2o - oDRjw9XZRWXSWOwj9IPHufDpwf2BbCBt13dQmtHRztgyuPN9kQ24ul5NkqzxzrY3yo0JNujPwHFKSKIC - nJ+Qk3tmcV9S02aTJCf4QnRFDSB9y7pE4ZEAd3Mh2VvFgM6OkyRnZBqsStnAy2PHvkJ1lpPkH+DIPaAk - N/injsLCRSTJGWEYzvId8Vw2Ae8aSfIPcN1+IBuAvn+WwpNGpkHUygYCJx6EtbV5JMG1j+2Qk3sFBYO3 - 1hWvJkkUeBCNRQVQ7oWv4/F+2cQ7R9SQ5PfmOwl3vm7XiPWkjNi9VoPdb9LZeQgtBi4B4pqtABYCi4Ax - IANy+sVnfI9x1KF+KRDHL3hVH7d9O34PzoQeuCl1I+EyewFiCnC3Y2nwwBlOvBKIk+tA/ITwjwfehjYD - t9AvPuN7jBvAYuAqIJ6COA/uIzwLcvqahsuKg+YA0RhOgsQb74II8RmJMdTNBeI45KhL8wea9gtNs00V - XGTOvwAAAABJRU5ErkJggg== + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOhSURBVFhH7VddSBVBFN5+7BcqEitD78zulpkUFREEQSJE + JApBLxVCFIEU3uvOrhRCxO0poocegqKC6Cl/7i5aggT2oPVWhBFFSBT97N4bJdFDWUjkdk4da53x515/ + 3vrg47J7vpnzcWb2zFztPyaDh9VV53xbtEeZtsX1UNNmkWTm4DFWmlxfMuRbiTDtiJEUYjfJZg6uGbvi + mTzs3bdXMRA41h2SzQzaSlfn3zT5ABro3LRBMXDZEUOZhoYykk8/PJOdwuTDfFZzUDGRccQ1kk8vUmVl + 81pMnokauLt9m2Ig7Rz9lkkkCmjY9CFl8kPR5MgWs+hDYFtPZRNQhdM0bPrg6bxXNuCa7AxsvMOygcCy + 3r9IJObT0KkD1r5CTg783qTrKzERJlRM2PVHaPjUkTJYxygGrlNYC6DksgFoTE8oPDU063oJJPsZTZ40 + +VCrrm8kiYabDjefbCIQYhdJJg/X4JeiyZGw9l0U/guowjXFgGN1UnhyaC0qWu4Z/KtiwGCVJPkLbEDY + iKIGLtsWPDulJMkdnsEa1eT8+ViHDrbiqAEkVOYKhXPD1a1b81ydB7IBYC1JFOBhJBvoc8RA0FiXT5Ls + kdJjNXJyl7F+WJaFJFGAlQlsoTQmqMwpkmQP1+SPZAM3GPvRbPLP47G7vHxQNVCXeZZMzqOpJ4bH+U45 + ebZsW2uGb+qOjzCA9G3rEE0/MVI6bx9t8mz5oGqPYiBtWb00/fhoW1NsQvlHNJ5cebtsXeiLesWEbycq + KM3YcHV2UZk0FvsI/eBxLnx6cH8gG0jb9R2UZnS0M7YM7nxfZAOurleTJGu8s+2NcmOCDfozcJwSkqgA + 5yfk5J5Z3JfUtNkkyQm+EF1RA0jfsi5ReCTA3VxI9lYxoLPjJMkZmQarUjbw8tixr1Cd5ST5BzhyDyjJ + Df6po7BwEUlyRhiGs3xHPJdNwLtGkvwDXLcfyAag75+l8KSRaRC1soHAiQdhbW0eSXDtYzvk5F5BweCt + dcWrSRIFHkRjUQGUe+HreLxfNvHOETUk+b35TsKdr9s1Yj0pI3av1WD3m3R2HkKLgUuAuGYrgIXAImAM + yICcfvEZ32McdahfCsTxC17Vx23fjt+DM6EHbkrdSLjMXoCYAtztWBo8cIYTrwTi5DoQPyH844G3oc3A + LfSLz/ge4wawGLgKiKcgzoP7CM+CnL6m4bLioDlANIaTIPHGuyBCfEZiDHVzgTgOOerS/IGm/QIqv00R + Sb3R2AAAAABJRU5ErkJggg== iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQdSURBVFhH1VddTFNnGC5Kpm5ZsmjiT4b2tDUhczExxhnZ - ZkCNS1yyzCsvzBIg0cyY1HOocVygNFuyjAuUGB0GxTF1Q0bLTwZTgoABQTTyo6UglLbQnp4W6IVcLPFC - 5fN9Tg+E1NO/nN74JE++877f973v8/23uvcSjLEMKRQqfjQ85n78bGRKkkI/k2+lUq0NoVCI8/r89aMT - nvsx6fI+qWnpZlcaOtjV5i5W1dTJxibdw6ptFXqmxcZwOJytpIkNUZL+sFY3s+JKW1xW3G5jJLaC+Eul - vUO1zXKeu9rIIEJJExvUqEktQDTLbrUyURSbxWCw9gKJUWsTTcyEkiY2khUA/vpnC/vtZqtqnRpTEmC7 - 18/u9g6mhYiVsoAyGln533fSQsRKWQB2eV37w7QQsVIWMOh0jc/Ozu5IBxErZQEDo65hxaUZiPX+CqCz - njUzM1NNrAGDweC5xe9EpLbfIoYmARToMK5b+EqvNTGy5RJ2IkIEYmgSQKP4YsjhCvf0O1/0EinoAErY - iUh9zyKGJgHpgCYBeGbpKH1Nj06eQm7Zdx7VfWm1WlfInWNAkwBspLt9Q+zGfz2stq2XOZ3O1yhhgx2P - njKIQNveg/vuSRaBXbEIC/6iou3wAZoE0Ci/a+x6zC7Z2llVY6e8CVHCBlt6nrC5ubm9TQbDdutWw4Ln - x+MMIkSLUC0HJGgSIEnSh5T0BxJSQCPNJ3svStgg1R2lZfrAbuKuE1nftm2vIUDi+Zeh06fXI4YmAcmg - 1mDYQMlfQsC/n39WQgJeQESgiC9FvXPc87CkqoG5PL47cod4iBZAo90x4fF2Qj1Ie+I6ynH3dBfVfYU2 - diNXiuR206b55uzsjyVBOC8L4PmQy2xeRX1yxUDgL5qx3WgfFyp7oABrDd/yiwjPLH0LNXr9apvp0xkI - sBm5crkPz3NT+fmvIrNwqhC+pKEiYPfIuGcQ9sDY5DDZdpSO5+4h+t5fb9QXIjkJeWXnOL0chEDJ62UB - Fv4p0+kyFHdipLIHENhu2vIMAupMWbO0FJcX2Zmzpx0CIiIsB5QuiZGKAJtxy4HI2qtzojBfFuAX+Bal - S2KkJMDEtSIRlVPE29HsP/RNGwTcz819EzjDJ/5PACwJcE56aZMdjuL3tO4c2v3DcdlWE7egCDgid44C - s1ozfRbBF1kK/nfFHR+LAi7TzsczHM0HDuc8ifiIklZGpnqzj0aYqXR/B5T8JwhwnzjxP13PaxV3bPgD - gYu1bX1Ld300+xyOcP3JkxvrjNzzOr1erOY2F1O3dUTcehuJm5QS9rqSfTl6r3DKPW02+6cF8zHyxT8R - dK1m0lTn0CiXXrxF0q+jvO7ubiRYQ/yEiEQ4elhfPD47ibuUEjb8qN9ARHv0w2wlfyyTBALGYhzodG8B - 5Jf4lhFspHAAAAAASUVORK5CYII= + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQZSURBVFhH1VdbaBNZGI5rcVdFkBWs4iWTZKGoCLKsYr3Q + qriwgujTPixCLSiKEGca0T5UGxREH7wgaqVa7V601ia2xVYtta2024tiLxpjbdMkbTKZpG0e9EHwQe3x + /ybTUuLkxuTFDz7O/P855/+/c0903yUYYzOkUKjwWV+/+/mr18OSFDpJvplKtTaEQiHO6/NXvRn0PI1J + l/dFeV0ru3a/iV2vbWGlNc2sf8jdp9pWoWdErA6Hw1lKmtgQJemWtayWFZbY4vLi3QZGYi8ST5XYm1Tb + TOeJ69UMIpQ0sUGNatQCRPPsf/VMFMVaMRisuEBi1NpEEzOhpImNZAWAp/+uY2f+rVetU2NKAmxPutjj + 9p60ELFSFnCWRnbuzqO0ELFSFoBdXtnYmRYiVsoCepyugbGxsTXpIGKlLKD7jatPcWkGYn2/AuisLx0d + HS0jloPBYPDE5HciUtsdiKFJAAXajesWvuIbNYxsuYSdiBCBGJoE0CjW9jpc4bYu57t2IgXtRgk7Eanv + ccTQJCAd0CQAzywdpU306OQq5KZ951LdBqvV+oPcOQY0CcBGetzRy/552MYqGtqZ0+n8jBI22PTsJYMI + tG3fvuWJZBFYiUWY8BcUrIYP0CSARrmzuuU5u2xrZKXVzfImRAkbrGt7wcbHxzfXGAyrrb8YJjwH9jOI + EC1CmRyQoEmAJElzKOkeErKXRppH9maUsEGq+4uWaZbdxN0kso6VKz9DgMTzH0NHjixEDE0CkkGFwZBJ + yT9CwINVK4pIwDuICBTwxah3Dng6i0rvM5fH90juEA/RAmi0awY93maoB2lP3EQ54B5pobqNaGM3csVI + bjctfl+blTVPEoTzsgCeD7nM5h+pT44YCNymGVuH9nGhsgf2Yq3hm34R4Zmlb6Fcr//JZloyCgE2I3dO + 7sPz3HBe3qfILBzOhy9pqAhY93rA0wO7u3+oj2w7Ssdbdy99b60y6vORnIR8snOcXg5CoORVsgAL/5Lp + dDMUd2KksgcQ2G5a/goCKk1Lx2gprkyyOXt9IwRERFi2KV0SIxUBNuPybZG1V+dgfp4swC/wdUqXxEhJ + gImrRyIqh4l3o9n1x+8NEPA0J+dL4Cif+D8BMCXAOeSlTbY7irto3Tm0u8dxWVYTN6EI+FPuHAVmtWb4 + LIIvshT8VcUdH5MCrtDOxzMczf8dzvckYi4lLYlM9TIfjTBD6f4NKPkxCHAfPPiBruefFXds+AOBSxUN + HVN3fTQ7HI5w1aFDiyqN3NtKvV4s45YVUrcFRNx6i4iLlRL2gqIt2XqvcNg9Yjb7RwTzPvLFPxF0rWbQ + VGfTKKdevEnSr6Pc1tZWJJhNnE9EIhw9rC8en1+JvyklbPhRn0lEe/TDbCV/LJMEAsZiHOh0XwHdXfiV + /dyKVQAAAABJRU5ErkJggg== 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 @@ -775,7 +775,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2 - CAAAAk1TRnQBSQFMAgEBAgEAAZQBKgGUASoBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CAAAAk1TRnQBSQFMAgEBAgEAAZwBKgGcASoBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA