From 493ccbad2c265ff4cf3eb0d96e0a659c4e0de44c Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Thu, 3 Oct 2013 16:11:14 +0100 Subject: [PATCH] -GUI resets when "new" session is started --- src/avtk/clipselector.cxx | 2 +- src/gui.cxx | 33 +++++++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/avtk/clipselector.cxx b/src/avtk/clipselector.cxx index 05a1f09..9fa8bee 100644 --- a/src/avtk/clipselector.cxx +++ b/src/avtk/clipselector.cxx @@ -45,7 +45,7 @@ ClipSelector::ClipSelector( int _x, int _y, int _w, int _h, for(int i = 0; i < 10; i++ ) { stringstream s; - s << i + 1; + s << "Scene " << i + 1; clips[i].setName( s.str() ); } diff --git a/src/gui.cxx b/src/gui.cxx index 36ac57d..c2bf588 100644 --- a/src/gui.cxx +++ b/src/gui.cxx @@ -101,10 +101,7 @@ static void gui_header_callback(Fl_Widget *w, void *data) int yes = fl_choice("Start a new session?","Cancel","Yes",0); if ( yes ) { - EventStateReset ev; - writeToDspRingbuffer( &ev ); - - + gui->reset(); } } else if ( strcmp(m->label(), "Load Session") == 0 ) @@ -281,6 +278,34 @@ Gui::Gui() : } +void Gui::reset() +{ + // signal to DSP to reset state + EventStateReset ev; + writeToDspRingbuffer( &ev ); + + // clear UI state: track names / scene names + for(unsigned int i = 0; i < NTRACKS; i++) + { + stringstream s; + s << "Track " << i+1; + tracks.at(i)->bg.setLabel( s.str().c_str() ); + + for(unsigned int s = 0; s < NSCENES; s++) + { + tracks.at(i)->getClipSelector()->clipName( s, "" ); + } + } + + for(unsigned int i = 0; i < NSCENES; i++) + { + stringstream s; + s << "Scene " << i+1; + master->getClipSelector()->clipName( i, s.str() ); + } + +} + GTrack* Gui::getTrack(int id) { return tracks.at(id);