# HG changeset patch # User Chris Cannam # Date 1480067856 0 # Node ID 3ef81d81b767f8c25ee9453bfa1c3a03fc2db6cd # Parent 86cd0e81ed07a60cc55b57f0f63757b6077000f5 Add Winnow as well diff -r 86cd0e81ed07 -r 3ef81d81b767 .hgsubstate --- a/.hgsubstate Fri Nov 25 09:38:53 2016 +0000 +++ b/.hgsubstate Fri Nov 25 09:57:36 2016 +0000 @@ -7,7 +7,7 @@ 68ae618c6b0e442d08a71d39217784a08f2a8de3 icons/scalable 3257ddb6fff110cc88f3ffeaeefa0f29d5eb3b6f piper-cpp e1712f7d74a455337591091a57beba2f0443b9dd sv-dependency-builds -dd195633fc9fd3735dcf49fb71c9d881ad55e1ce svapp -22f66068b464abca422ba876d42ef08c9477de86 svcore +287fce13a1aefc604e88f34a355ede7dc8306187 svapp +4b0c968a581a44a9447b9c7120de262fe50069f8 svcore 958e352919a587f0e9702b0d43f5667b8167e71c svgui 0eebd22a081a824067bf3d5de65326696feab653 vamp-plugin-sdk diff -r 86cd0e81ed07 -r 3ef81d81b767 main/MainWindow.cpp --- a/main/MainWindow.cpp Fri Nov 25 09:38:53 2016 +0000 +++ b/main/MainWindow.cpp Fri Nov 25 09:57:36 2016 +0000 @@ -842,12 +842,20 @@ connect(this, SIGNAL(canRenumberInstants(bool)), action, SLOT(setEnabled(bool))); // m_keyReference->registerShortcut(action); menu->addAction(action); - + + menu->addSeparator(); + action = new QAction(tr("Subdivide Selected Instants..."), this); action->setStatusTip(tr("Add new instants at regular intervals between the selected instants")); connect(action, SIGNAL(triggered()), this, SLOT(subdivideInstants())); connect(this, SIGNAL(canSubdivideInstants(bool)), action, SLOT(setEnabled(bool))); menu->addAction(action); + + action = new QAction(tr("Winnow Selected Instants..."), this); + action->setStatusTip(tr("Remove subdivisions, leaving only every Nth instant")); + connect(action, SIGNAL(triggered()), this, SLOT(winnowInstants())); + connect(this, SIGNAL(canWinnowInstants(bool)), action, SLOT(setEnabled(bool))); + menu->addAction(action); } void @@ -4420,6 +4428,28 @@ } void +MainWindow::winnowInstants() +{ + QSettings settings; + settings.beginGroup("MainWindow"); + int n = settings.value("winnow-subdivisions", 4).toInt(); + + bool ok; + + n = QInputDialog::getInt(this, + tr("Winnow instants"), + tr("Remove all instants apart from multiples of:"), + n, 2, 96, 1, &ok); + + if (ok) { + settings.setValue("winnow-subdivisions", n); + winnowInstantsBy(n); + } + + settings.endGroup(); +} + +void MainWindow::modelGenerationFailed(QString transformName, QString message) { emit hideSplash(); diff -r 86cd0e81ed07 -r 3ef81d81b767 main/MainWindow.h --- a/main/MainWindow.h Fri Nov 25 09:38:53 2016 +0000 +++ b/main/MainWindow.h Fri Nov 25 09:57:36 2016 +0000 @@ -91,6 +91,7 @@ virtual void setInstantsCounters(); virtual void resetInstantsCounters(); virtual void subdivideInstants(); + virtual void winnowInstants(); virtual void modelGenerationFailed(QString, QString); virtual void modelGenerationWarning(QString, QString);