X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fselection.cpp;h=c6b1e390d97cb8f80f2aad3ea3f0cc60171b2ac0;hb=62ce775d9af8f3321dbdebd6243b551fbbb0b976;hp=5f71e8b68a5b6be56d72cb2d73f878689807e7d2;hpb=38fb8d56efde037a71c46a58bda314655e68ab6c;p=r2c2.git diff --git a/source/designer/selection.cpp b/source/designer/selection.cpp index 5f71e8b..c6b1e39 100644 --- a/source/designer/selection.cpp +++ b/source/designer/selection.cpp @@ -6,6 +6,7 @@ Distributed under the GPL */ #include +#include "libmarklin/block.h" #include "selection.h" using namespace std; @@ -94,3 +95,21 @@ void Selection::select_linked() if(changed) signal_changed.emit(); } + +void Selection::select_blocks() +{ + bool changed = false; + for(set::iterator i=tracks.begin(); i!=tracks.end(); ++i) + { + const set &btracks = (*i)->get_block().get_tracks(); + for(set::iterator j=btracks.begin(); j!=btracks.end(); ++j) + if(!tracks.count(*j)) + { + tracks.insert(*j); + changed = true; + } + } + + if(changed) + signal_changed.emit(); +}