@@ -98,25 +98,30 @@ public static async Task AddStreamsToList(MediaFile mediaFile, Color color, bool
9898
9999 Random r = new Random ( ) ;
100100
101+ Program . mainForm . ignoreStreamListCheck = true ;
102+ list . BeginUpdate ( ) ;
103+
101104 foreach ( Stream s in mediaFile . AllStreams )
102105 {
103106 try
104107 {
105108 MediaStreamListEntry entry = new MediaStreamListEntry ( mediaFile , s ) ;
106- list . Items . Add ( new ListViewItem { Text = entry . ToString ( ) , Tag = entry , BackColor = color } ) ;
107109 bool check = s . Codec . ToLower ( ) . Trim ( ) != "unknown" && ! ( s . Type == Stream . StreamType . Video && alreadyHasVidStream ) ;
108- Program . mainForm . ignoreNextStreamListItemCheck = true ;
109- list . Items . Cast < ListViewItem > ( ) . Last ( ) . Checked = check ;
110+ list . Items . Add ( new ListViewItem { Text = entry . ToString ( ) , Tag = entry , BackColor = color , Checked = check } ) ;
110111 }
111112 catch ( Exception e )
112113 {
113114 Logger . Log ( $ "Error trying to load streams into UI: { e . Message } \n { e . StackTrace } ") ;
114115 }
115116 }
116117
118+ list . EndUpdate ( ) ;
119+
117120 if ( switchToList && ! RunTask . RunInstantly ( ) )
118121 Program . mainForm . MainTabList . SelectedIndex = 1 ;
119122
123+ Program . mainForm . OnCheckedStreamsChange ( ) ;
124+ Program . mainForm . ignoreStreamListCheck = false ;
120125 Program . mainForm . UpdateDefaultStreamsUi ( ) ;
121126 Program . mainForm . UpdateTrackListUpDownBtnsState ( ) ;
122127 }
@@ -244,7 +249,7 @@ public static void CheckAll(bool check)
244249 {
245250 for ( int i = 0 ; i < Program . mainForm . streamList . Items . Count ; i ++ )
246251 {
247- Program . mainForm . ignoreNextStreamListItemCheck = i < ( Program . mainForm . streamList . Items . Count - 1 ) ;
252+ Program . mainForm . ignoreStreamListCheck = i < ( Program . mainForm . streamList . Items . Count - 1 ) ;
248253 Program . mainForm . streamList . Items [ i ] . Checked = check ;
249254 }
250255 }
@@ -253,7 +258,7 @@ public static void InvertSelection(object sender = null, EventArgs e = null)
253258 {
254259 for ( int i = 0 ; i < Program . mainForm . streamList . Items . Count ; i ++ )
255260 {
256- Program . mainForm . ignoreNextStreamListItemCheck = i < ( Program . mainForm . streamList . Items . Count - 1 ) ;
261+ Program . mainForm . ignoreStreamListCheck = i < ( Program . mainForm . streamList . Items . Count - 1 ) ;
257262 Program . mainForm . streamList . Items [ i ] . Checked = ! Program . mainForm . streamList . Items [ i ] . Checked ;
258263 }
259264 }
@@ -262,7 +267,7 @@ public static void CheckTracksOfType(Stream.StreamType type)
262267 {
263268 for ( int i = 0 ; i < Program . mainForm . streamList . Items . Count ; i ++ )
264269 {
265- Program . mainForm . ignoreNextStreamListItemCheck = i < ( Program . mainForm . streamList . Items . Count - 1 ) ;
270+ Program . mainForm . ignoreStreamListCheck = i < ( Program . mainForm . streamList . Items . Count - 1 ) ;
266271 Program . mainForm . streamList . Items [ i ] . Checked = ( ( MediaStreamListEntry ) Program . mainForm . streamList . Items [ i ] . Tag ) . Stream . Type == type ;
267272 }
268273 }
0 commit comments