# HG changeset patch # User Chris Cannam # Date 1222098243 0 # Node ID ffc0acc10ffcf89153f80c0b98b897d9a247477d # Parent 3c4aaa8f8418ed6fecd8ebaa271ac989a1ce0eba * Add beginnings of transform-search-by-text function diff -r 3c4aaa8f8418 -r ffc0acc10ffc main/MainWindow.cpp --- a/main/MainWindow.cpp Fri Sep 19 13:00:39 2008 +0000 +++ b/main/MainWindow.cpp Mon Sep 22 15:44:03 2008 +0000 @@ -1217,11 +1217,37 @@ } else { m_transformsMenu = menuBar()->addMenu(tr("&Transform")); m_transformsMenu->setTearOffEnabled(true); - } + } TransformList transforms = TransformFactory::getInstance()->getAllTransformDescriptions(); - +/*!!! + std::cerr << "Testing transform search..." << std::endl; + QStringList terms; + terms << "onset"; + terms << "detector"; + TransformFactory::SearchResults results = TransformFactory::getInstance()-> + search(terms); + std::cerr << results.size() << " result(s)..." << std::endl; + int i = 0; + std::set sortedResults; + for (TransformFactory::SearchResults::const_iterator j = + results.begin(); + j != results.end(); ++j) { + sortedResults.insert(j->second); + } + for (std::set::const_iterator j = + sortedResults.begin(); + j != sortedResults.end(); ++j) { + std::cerr << i << ": " << j->transform.toStdString() + << ": "; + for (int k = 0; k < j->fragments.size(); ++k) { + std::cerr << j->fragments[k].toStdString() << " "; + } + std::cerr << "(" << j->score << ")" << std::endl; + ++i; + } +*/ vector types = TransformFactory::getInstance()->getAllTransformTypes(); @@ -1239,6 +1265,13 @@ connect(&m_recentTransforms, SIGNAL(recentChanged()), this, SLOT(setupRecentTransformsMenu())); + QAction *action = new QAction(tr("Find Transform..."), this); + action->setStatusTip(tr("Search for a transform by name or description")); + connect(action, SIGNAL(triggered()), this, SLOT(findTransform())); + connect(this, SIGNAL(canAddLayer(bool)), action, SLOT(setEnabled(bool))); + m_transformsMenu->addAction(action); + m_rightButtonTransformsMenu->addAction(action); + m_transformsMenu->addSeparator(); m_rightButtonTransformsMenu->addSeparator(); @@ -1375,7 +1408,7 @@ m_transformActionsReverse[transforms[i].identifier] = action; connect(this, SIGNAL(canAddLayer(bool)), action, SLOT(setEnabled(bool))); - action->setStatusTip(transforms[i].description); + action->setStatusTip(transforms[i].longDescription); if (categoryMenus[type].find(category) == categoryMenus[type].end()) { std::cerr << "WARNING: MainWindow::setupMenus: Internal error: " @@ -1399,7 +1432,7 @@ connect(action, SIGNAL(triggered()), this, SLOT(addLayer())); m_transformActions[action] = transforms[i].identifier; connect(this, SIGNAL(canAddLayer(bool)), action, SLOT(setEnabled(bool))); - action->setStatusTip(transforms[i].description); + action->setStatusTip(transforms[i].longDescription); // cerr << "Transform: \"" << name.toStdString() << "\": plugin name \"" << pluginName.toStdString() << "\"" << endl; @@ -3062,6 +3095,12 @@ } void +MainWindow::findTransform() +{ + //!!! implement me! +} + +void MainWindow::playSoloToggled() { MainWindowBase::playSoloToggled(); diff -r 3c4aaa8f8418 -r ffc0acc10ffc main/MainWindow.h --- a/main/MainWindow.h Fri Sep 19 13:00:39 2008 +0000 +++ b/main/MainWindow.h Mon Sep 22 15:44:03 2008 +0000 @@ -128,6 +128,8 @@ virtual void addLayer(); virtual void renameCurrentLayer(); + virtual void findTransform(); + virtual void paneAdded(Pane *); virtual void paneHidden(Pane *); virtual void paneAboutToBeDeleted(Pane *);