add binfolder path relative filters, fix gbrp color model, vwdw timebar tweaks, title...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / awindow.C
index bc6ba19375139cce5f0e61c7757498fadd7a4dc1..53d72903204311b21d4198f9f33f8cdb2b7b98c7 100644 (file)
@@ -33,9 +33,7 @@ AWindow::AWindow(MWindow *mwindow)
  : Thread(1, 0, 0)
 {
        this->mwindow = mwindow;
-       current_folder[0] = 0;
        asset_remove = 0;
-       asset_edit = 0;
        clip_edit = 0;
        label_edit = 0;
 }
@@ -49,10 +47,11 @@ AWindow::~AWindow()
                gui->unlock_window();
        }
        Thread::join();
+       asset_editors.remove_all_objects();
        delete asset_remove;
-       delete asset_edit;
        delete label_edit;
        delete clip_edit;
+       delete effect_tip;
 }
 
 void AWindow::create_objects()
@@ -61,7 +60,6 @@ void AWindow::create_objects()
        gui->create_objects();
        gui->async_update_assets();
        asset_remove = new AssetRemoveThread(mwindow);
-       asset_edit = new AssetEdit(mwindow);
        clip_edit = new ClipEdit(mwindow, this, 0);
        label_edit = new LabelEdit(mwindow, this, 0);
        effect_tip = new EffectTipDialog(mwindow, this);
@@ -77,6 +75,21 @@ int AWindow::load_defaults(BC_Hash *defaults)
 }
 
 
+AssetEdit *AWindow::get_asset_editor()
+{
+       AssetEdit *asset_edit = 0;
+       for( int i=0; !asset_edit && i<asset_editors.size(); ++i ) {
+               AssetEdit *thread = asset_editors[i];
+               if( !thread->running() ) asset_edit = thread;
+       }
+       if( !asset_edit ) {
+               asset_edit = new AssetEdit(mwindow);
+               asset_editors.append(asset_edit);
+       }
+       return asset_edit;
+}
+
+
 void AWindow::run()
 {
        gui->run_window();