#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;
{
assert(e);
- switch (e->key())
- {
- case Qt::Key_Delete:
+ if (e->key() == Qt::Key_Delete)
{
for (const shared_ptr<RowItem> r : _view)
if (r->selected())
r->delete_pressed();
- break;
- }
}
+ else if (e->key() == Qt::Key_G && e->modifiers() == Qt::ControlModifier)
+ on_group();
+ else if (e->key() == Qt::Key_U && e->modifiers() == Qt::ControlModifier)
+ on_ungroup();
}
void Header::on_signals_moved()
}
}
+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