@@ -16,7 +16,7 @@ use re_viewer_context::{
16
16
AppOptions , AsyncRuntimeHandle , BlueprintUndoState , CommandReceiver , CommandSender ,
17
17
ComponentUiRegistry , DisplayMode , Item , PlayState , RecordingConfig , StorageContext ,
18
18
StoreContext , StoreHubEntry , SystemCommand , SystemCommandSender as _, TableStore , ViewClass ,
19
- ViewClassRegistry , ViewClassRegistryError , command_channel,
19
+ ViewClassRegistry , ViewClassRegistryError , command_channel, santitize_file_name ,
20
20
store_hub:: { BlueprintPersistence , StoreHub , StoreHubStats } ,
21
21
} ;
22
22
@@ -2473,7 +2473,14 @@ fn save_recording(
2473
2473
. and_then ( |info| info. store_version )
2474
2474
. unwrap_or ( re_build_info:: CrateVersion :: LOCAL ) ;
2475
2475
2476
- let file_name = "data.rrd" ;
2476
+ let file_name = if let Some ( recording_name) = entity_db
2477
+ . recording_property :: < re_types:: components:: Name > (
2478
+ & re_types:: archetypes:: RecordingProperties :: descriptor_name ( ) ,
2479
+ ) {
2480
+ format ! ( "{}.rrd" , santitize_file_name( & recording_name) )
2481
+ } else {
2482
+ "data.rrd" . to_owned ( )
2483
+ } ;
2477
2484
2478
2485
let title = if loop_selection. is_some ( ) {
2479
2486
"Save loop selection"
@@ -2484,7 +2491,7 @@ fn save_recording(
2484
2491
save_entity_db (
2485
2492
app,
2486
2493
rrd_version,
2487
- file_name. to_owned ( ) ,
2494
+ file_name,
2488
2495
title. to_owned ( ) ,
2489
2496
entity_db. to_messages ( loop_selection) ,
2490
2497
)
0 commit comments