gui->del_keyboard_listener(
(int (BC_WindowBase::*)(BC_WindowBase *))
&MWindowGUI::keyboard_listener);
- reset_caches();
+ reset_caches(0);
#if 0
// release the hounds
if( awindow && awindow->gui ) awindow->gui->close(0);
run_lock->unlock();
}
-void MWindow::show_vwindow()
+void MWindow::show_vwindow(int raise)
{
int total_running = 0;
session->show_vwindow = 1;
for(int j = 0; j < vwindows.size(); j++) {
VWindow *vwindow = vwindows[j];
if( !vwindow->is_running() ) continue;
+ total_running++;
+ if( !raise && !vwindow->gui->is_hidden() ) continue;
vwindow->gui->lock_window("MWindow::show_vwindow");
vwindow->gui->show_window(0);
vwindow->gui->raise_window();
vwindow->gui->flush();
vwindow->gui->unlock_window();
- total_running++;
}
-
// If no windows visible
- if(!total_running)
- {
+ if( !total_running )
get_viewer(1, DEFAULT_VWINDOW);
- }
gui->mainmenu->show_vwindow->set_checked(1);
}
{
session->show_cwindow = 1;
cwindow->show_window();
+ cwindow->gui->tool_panel->raise_tool();
gui->mainmenu->show_cwindow->set_checked(1);
}
vwindow->gui->unlock_window();
}
}
- else
- show_vwindow();
+ else
+ show_vwindow(0);
if( !session->show_awindow && !awindow->gui->is_hidden() ) {
awindow->gui->lock_window("MWindow::restore_windows");
if( load_mode == LOADMODE_REPLACE ||
load_mode == LOADMODE_REPLACE_CONCATENATE ) {
edl->session->timecode_offset = 0;
- delete gui->keyvalue_popup;
- gui->keyvalue_popup = 0;
+ gui->close_keyvalue_popup();
gui->load_panes();
}
if( prefs != preferences )
preferences->copy_from(prefs);
if( cwindow->playback_engine )
- cwindow->playback_engine->preferences->copy_from(prefs);
+ cwindow->playback_engine->update_preferences(prefs);
for(int i = 0; i < vwindows.size(); i++) {
VWindow *vwindow = vwindows[i];
if( !vwindow->is_running() ) continue;
if( vwindow->playback_engine )
- vwindow->playback_engine->preferences->copy_from(prefs);
+ vwindow->playback_engine->update_preferences(prefs);
}
for(int i = 0; i < zwindows.size(); i++) {
ZWindow *zwindow = zwindows[i];
if( !zwindow->is_running() ) continue;
if( zwindow->zgui->playback_engine )
- zwindow->zgui->playback_engine->preferences->copy_from(prefs);
+ zwindow->zgui->playback_engine->update_preferences(prefs);
}
}
return 0;
}
-void MWindow::reset_caches()
+void MWindow::reset_caches(int locked)
{
- int locked = gui->get_window_lock();
if( locked ) gui->unlock_window();
awindow->gui->stop_vicon_drawing(1);
- frame_cache->remove_all();
- wave_cache->remove_all();
- audio_cache->remove_all();
- video_cache->remove_all();
- if( cwindow->playback_engine ) {
- if( cwindow->playback_engine->audio_cache )
- cwindow->playback_engine->audio_cache->remove_all();
- if( cwindow->playback_engine->video_cache )
- cwindow->playback_engine->video_cache->remove_all();
- }
+ if( cwindow->playback_engine )
+ cwindow->playback_engine->create_cache();
for(int i = 0; i < vwindows.size(); i++) {
VWindow *vwindow = vwindows[i];
if( !vwindow->is_running() ) continue;
if( !vwindow->playback_engine ) continue;
- if( vwindow->playback_engine->audio_cache )
- vwindow->playback_engine->audio_cache->remove_all();
- if( vwindow->playback_engine->video_cache )
- vwindow->playback_engine->video_cache->remove_all();
+ vwindow->playback_engine->create_cache();
}
- if( locked ) gui->lock_window("MWindow::reset_caches");
+ gui->lock_window("MWindow::reset_caches");
+ frame_cache->remove_all();
+ wave_cache->remove_all();
+ audio_cache->remove_all();
+ video_cache->remove_all();
+ if( !locked ) gui->unlock_window();
}
void MWindow::remove_from_caches(Indexable *idxbl)