| Chris@416 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */ | 
| Chris@416 | 2 | 
| Chris@416 | 3 /* | 
| Chris@416 | 4     Sonic Visualiser | 
| Chris@416 | 5     An audio file viewer and annotation editor. | 
| Chris@416 | 6     Centre for Digital Music, Queen Mary, University of London. | 
| Chris@416 | 7     This file copyright 2008 QMUL. | 
| Chris@416 | 8 | 
| Chris@416 | 9     This program is free software; you can redistribute it and/or | 
| Chris@416 | 10     modify it under the terms of the GNU General Public License as | 
| Chris@416 | 11     published by the Free Software Foundation; either version 2 of the | 
| Chris@416 | 12     License, or (at your option) any later version.  See the file | 
| Chris@416 | 13     COPYING included with this distribution for more information. | 
| Chris@416 | 14 */ | 
| Chris@416 | 15 | 
| Chris@416 | 16 #ifndef _TRANSFORM_FINDER_H_ | 
| Chris@416 | 17 #define _TRANSFORM_FINDER_H_ | 
| Chris@416 | 18 | 
| Chris@416 | 19 #include <QDialog> | 
| Chris@416 | 20 | 
| Chris@417 | 21 #include <vector> | 
| Chris@417 | 22 | 
| Chris@416 | 23 #include "transform/Transform.h" | 
| Chris@424 | 24 #include "transform/TransformFactory.h" | 
| Chris@416 | 25 | 
| Chris@421 | 26 class QVBoxLayout; | 
| Chris@416 | 27 class QScrollArea; | 
| Chris@417 | 28 class QLabel; | 
| Chris@419 | 29 class SelectableLabel; | 
| Chris@417 | 30 class QWidget; | 
| Chris@424 | 31 class QTimer; | 
| Chris@419 | 32 | 
| Chris@416 | 33 class TransformFinder : public QDialog | 
| Chris@416 | 34 { | 
| Chris@416 | 35     Q_OBJECT | 
| Chris@416 | 36 | 
| Chris@416 | 37 public: | 
| Chris@416 | 38     TransformFinder(QWidget *parent = 0); | 
| Chris@416 | 39     ~TransformFinder(); | 
| Chris@416 | 40 | 
| Chris@416 | 41     TransformId getTransform() const; | 
| Chris@416 | 42 | 
| Chris@416 | 43 protected slots: | 
| Chris@416 | 44     void searchTextChanged(const QString &); | 
| Chris@420 | 45     void selectedLabelChanged(); | 
| Chris@424 | 46     void timeout(); | 
| Chris@420 | 47 | 
| Chris@416 | 48 protected: | 
| Chris@416 | 49     QScrollArea *m_resultsScroll; | 
| Chris@417 | 50     QWidget *m_resultsFrame; | 
| Chris@421 | 51     QVBoxLayout *m_resultsLayout; | 
| Chris@419 | 52     std::vector<SelectableLabel *> m_labels; | 
| Chris@420 | 53     TransformId m_selectedTransform; | 
| Chris@424 | 54     QTimer *m_timer; | 
| Chris@424 | 55 | 
| Chris@424 | 56     QString m_newSearchText; | 
| Chris@424 | 57     typedef std::vector<TransformFactory::Match> SortedResults; | 
| Chris@424 | 58     SortedResults m_sortedResults; | 
| Chris@424 | 59     int m_upToDateCount; | 
| Chris@416 | 60 }; | 
| Chris@416 | 61 | 
| Chris@416 | 62 #endif | 
| Chris@416 | 63 |