proxy/mixer fixes, add proxy beep, igor ru xlat
[goodguy/history.git] / cinelerra-5.1 / cinelerra / awindowgui.C
index 19330e92051af647f0ca7ab156b0828ec70f9144..8c615bee7be58dea8a298b6d0f3cbb611c32101f 100644 (file)
@@ -1426,11 +1426,13 @@ void AWindowGUI::create_label_folder()
 
 void AWindowGUI::update_asset_list()
 {
+       ArrayList<AssetPicon *> new_assets;
        for( int i = 0; i < assets.total; i++ ) {
                AssetPicon *picon = (AssetPicon*)assets.values[i];
                picon->in_use = 0;
        }
 
+       mwindow->gui->lock_window("AWindowGUI::update_asset_list");
 // Synchronize EDL clips
        for( int i=0; i<mwindow->edl->clips.size(); ++i ) {
                int exists = 0;
@@ -1451,8 +1453,7 @@ void AWindowGUI::update_asset_list()
                if( !exists ) {
                        AssetPicon *picon = new AssetPicon(mwindow,
                                this, mwindow->edl->clips[i]);
-                       picon->create_objects();
-                       assets.append(picon);
+                       new_assets.append(picon);
                }
        }
 
@@ -1475,14 +1476,11 @@ void AWindowGUI::update_asset_list()
                if( !exists ) {
                        AssetPicon *picon = new AssetPicon(mwindow,
                                this, current);
-                       picon->create_objects();
-                       assets.append(picon);
+                       new_assets.append(picon);
                }
        }
 
-       mwindow->gui->lock_window("AWindowGUI::update_asset_list");
        mwindow->gui->default_message();
-       mwindow->gui->unlock_window();
 
 // Synchronize nested EDLs
        for( int i=0; i<mwindow->edl->nested_edls.size(); ++i ) {
@@ -1504,10 +1502,16 @@ void AWindowGUI::update_asset_list()
                if( !exists ) {
                        AssetPicon *picon = new AssetPicon(mwindow,
                                this, (Indexable*)nested_edl);
-                       picon->create_objects();
-                       assets.append(picon);
+                       new_assets.append(picon);
                }
        }
+       mwindow->gui->unlock_window();
+
+       for( int i=0; i<new_assets.size(); ++i ) {
+               AssetPicon *picon = new_assets[i];
+               picon->create_objects();
+               assets.append(picon);
+       }
 
        for( int i = assets.size() - 1; i >= 0; i-- ) {
                AssetPicon *picon = (AssetPicon*)assets.get(i);