X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.0%2Fcinelerra%2Fmwindow.C;fp=cinelerra-5.0%2Fcinelerra%2Fmwindow.C;h=f29b98e61fb2d4d57d5c726d5d6ffd7c52b2d1c2;hb=8bbd1679c5811ba26608d5fc9ed60cedeb2bc103;hp=c528a4ab8a161c5ba1c63282c15ea420c9a2b612;hpb=a191ee43586c4563e15fb3ab4c7594be3e81fa3b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/cinelerra/mwindow.C b/cinelerra-5.0/cinelerra/mwindow.C index c528a4ab..f29b98e6 100644 --- a/cinelerra-5.0/cinelerra/mwindow.C +++ b/cinelerra-5.0/cinelerra/mwindow.C @@ -109,6 +109,7 @@ #include "vwindowgui.h" #include "vwindow.h" #include "wavecache.h" +#include "wwindow.h" #include "zoombar.h" #include @@ -200,6 +201,7 @@ MWindow::MWindow() awindow = 0; gwindow = 0; twindow = 0; + wwindow = 0; lwindow = 0; sighandler = 0; reload_status = 0; @@ -249,12 +251,14 @@ MWindow::~MWindow() if( lwindow && lwindow->gui ) lwindow->gui->close(0); if( gwindow && gwindow->gui ) gwindow->gui->close(0); if( twindow && twindow->is_running() ) twindow->close_window(); + if( wwindow && wwindow->is_running() ) wwindow->close_window(); vwindows.remove_all_objects(); gui->close(0); if( awindow ) awindow->join(); if( cwindow ) cwindow->join(); if( lwindow ) lwindow->join(); if( twindow ) twindow->join(); + if( wwindow ) wwindow->join(); if( gwindow ) gwindow->join(); join(); #else @@ -267,6 +271,7 @@ MWindow::~MWindow() close_gui(lwindow); close_gui(gwindow); close_gui(twindow); + close_gui(wwindow); vwindows.remove_all_objects(); gui->close(0); join(); @@ -283,6 +288,7 @@ MWindow::~MWindow() delete awindow; awindow = 0; delete lwindow; lwindow = 0; delete twindow; twindow = 0; + delete wwindow; wwindow = 0; delete gwindow; gwindow = 0; // must be last or nouveau chokes delete cwindow; cwindow = 0; @@ -656,10 +662,19 @@ void MWindow::init_gwindow() void MWindow::init_tipwindow() { - twindow = new TipWindow(this); + if( !twindow ) + twindow = new TipWindow(this); twindow->start(); } +void MWindow::show_warning(int *do_warning, const char *text) +{ + if( do_warning && !*do_warning ) return; + if( !wwindow ) + wwindow = new WWindow(this); + wwindow->show_warning(do_warning, text); +} + void MWindow::init_theme() { Timer timer; @@ -2787,6 +2802,13 @@ void MWindow::remove_assets_from_project(int push_undo) } } + for(int i = 0; i < session->drag_assets->size(); i++) + { + Indexable *indexable = session->drag_assets->values[i]; + remove_indexfile(indexable); + } + +//printf("MWindow::rebuild_indices 1 %s\n", indexable->path); if(push_undo) undo->update_undo_before(); edl->remove_from_project(session->drag_assets); edl->remove_from_project(session->drag_clips);