13
0

Clear displayed transients on closing the rhythm ferret dialogue. Fixes #3623.

git-svn-id: svn://localhost/ardour2/branches/3.0@8357 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2010-12-29 01:33:49 +00:00
parent 731bef6c17
commit a48cdf5ba6
2 changed files with 22 additions and 3 deletions

View File

@ -183,15 +183,17 @@ RhythmFerret::run_analysis ()
return;
}
RegionSelection& regions (editor.get_selection().regions);
clear_transients ();
regions_with_transients = editor.get_selection().regions;
current_results.clear ();
if (regions.empty()) {
if (regions_with_transients.empty()) {
return;
}
for (RegionSelection::iterator i = regions.begin(); i != regions.end(); ++i) {
for (RegionSelection::iterator i = regions_with_transients.begin(); i != regions_with_transients.end(); ++i) {
boost::shared_ptr<Readable> rd = boost::static_pointer_cast<AudioRegion> ((*i)->region());
@ -382,5 +384,17 @@ void
RhythmFerret::on_hide ()
{
ArdourDialog::on_hide ();
clear_transients ();
}
/* Clear any transients that we have added */
void
RhythmFerret::clear_transients ()
{
current_results.clear ();
for (RegionSelection::iterator i = regions_with_transients.begin(); i != regions_with_transients.end(); ++i) {
(*i)->region()->set_transients (current_results);
}
regions_with_transients.clear ();
}

View File

@ -12,6 +12,7 @@
#include <gtkmm/button.h>
#include "ardour_dialog.h"
#include "region_selection.h"
namespace ARDOUR {
class Readable;
@ -79,6 +80,10 @@ class RhythmFerret : public ArdourDialog {
ARDOUR::AnalysisFeatureList current_results;
void clear_transients ();
/** Regions that we have added transient marks to */
RegionSelection regions_with_transients;
AnalysisMode get_analysis_mode () const;
Action get_action() const;
void analysis_mode_changed ();