Header: Added on_ungroup method
[pulseview.git] / pv / view / header.cpp
index 91a6ecfddc3415288ab2f9e0f6fd45305ec4c07a..23cbb0ffa79979d08c764e1809c8248cef406ae3 100644 (file)
@@ -39,6 +39,7 @@
 #include <pv/widgets/popup.h>
 
 using boost::make_filter_iterator;
+using std::dynamic_pointer_cast;
 using std::max;
 using std::make_pair;
 using std::min;
@@ -348,5 +349,22 @@ void Header::on_group()
        }
 }
 
+void Header::on_ungroup()
+{
+       bool restart;
+       do {
+               restart = false;
+               for (const shared_ptr<RowItem> r : _view) {
+                       const shared_ptr<TraceGroup> tg =
+                               dynamic_pointer_cast<TraceGroup>(r);
+                       if (tg && tg->selected()) {
+                               tg->ungroup();
+                               restart = true;
+                               break;
+                       }
+               }
+       } while(restart);
+}
+
 } // namespace view
 } // namespace pv