Mercurial > hg > classical
diff widgets/TypingSelectWidget.h @ 41:a42493a3baf8
* Make the typing select widget more useful (with working menu!)
author | Chris Cannam |
---|---|
date | Fri, 09 Apr 2010 16:19:50 +0100 |
parents | 94cdfacc4910 |
children |
line wrap: on
line diff
--- a/widgets/TypingSelectWidget.h Tue Apr 06 17:36:27 2010 +0100 +++ b/widgets/TypingSelectWidget.h Fri Apr 09 16:19:50 2010 +0100 @@ -5,16 +5,23 @@ #include <QWidget> #include <QList> +#include <QLabel> +#include <QMenu> +#include <QMouseEvent> +#include <QShortcut> class QLineEdit; class QListWidget; class QGridLayout; class QFrame; + namespace ClassicalData { class Matcher; +class TypingSelectListEntry; +class TypingSelectListMenu; class TypingSelectWidget : public QWidget { @@ -27,15 +34,33 @@ private slots: void textEdited(const QString &); + void menuKeyPressed(QKeyEvent *); + void menuItemSelected(QString); private: QList<Matcher *> m_matchers; QLineEdit *m_editor; - QFrame *m_list; - QGridLayout *m_listLayout; - QList<QWidget *> m_listEntries; + TypingSelectListMenu *m_menu; + QList<TypingSelectListEntry *> m_listEntries; }; +class TypingSelectListMenu : public QMenu +{ + Q_OBJECT + +public: + TypingSelectListMenu(QWidget *parent = 0) : QMenu(parent) { } + +signals: + void keyPressed(QKeyEvent *e); + void itemSelected(QString); + +protected: + void keyPressEvent(QKeyEvent *e); + void keyReleaseEvent(QKeyEvent *e); +}; + + } #endif