@@ -375,8 +375,28 @@ def add_video(self, video_path):
375
375
# Find a potentially pre-existing channel0 item for this datetime, if so, add as a child
376
376
# This lets channel1 appear as a child, but also main & sub videos appear in the same group
377
377
channel_0_item = self .find_channel_0_item (start_datetime )
378
+
378
379
if channel_0_item :
379
- channel_0_item .addChild (video_item )
380
+ # Check if the current item is a main stream and the existing channel_0_item is a sub stream
381
+ if "RecM" in base_file_name and "RecS" in channel_0_item .text (1 ):
382
+ # Make the current main stream item the new parent
383
+ new_parent = video_item
384
+ # Move all children of the sub stream item to the new main stream item
385
+ while channel_0_item .childCount () > 0 :
386
+ child = channel_0_item .takeChild (0 )
387
+ new_parent .addChild (child )
388
+ # Remove the old sub stream item
389
+ parent = channel_0_item .parent ()
390
+ if parent :
391
+ parent .removeChild (channel_0_item )
392
+ else :
393
+ index = self .video_tree .indexOfTopLevelItem (channel_0_item )
394
+ self .video_tree .takeTopLevelItem (index )
395
+ # Add the new main stream item as a top-level item
396
+ self .video_tree .addTopLevelItem (new_parent )
397
+ else :
398
+ # If it's not a main stream replacing a sub stream, add as a child as before
399
+ channel_0_item .addChild (video_item )
380
400
else :
381
401
self .video_tree .addTopLevelItem (video_item )
382
402
0 commit comments