Mercurial > hg > classical
view widgets/TypingSelectWidget.cpp @ 39:94cdfacc4910
* some track id stuff, widget test stuff
author | Chris Cannam |
---|---|
date | Thu, 01 Apr 2010 14:26:51 +0100 |
parents | 8bed05455706 |
children | a42493a3baf8 |
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ #include "TypingSelectWidget.h" #include <dataquay/Uri.h> #include <QGridLayout> #include <QLineEdit> #include <QListWidget> #include <QLabel> #include "Matcher.h" #include "Objects.h" using namespace Dataquay; namespace ClassicalData { TypingSelectWidget::TypingSelectWidget(QWidget *parent) : QWidget(parent) { QGridLayout *layout = new QGridLayout; setLayout(layout); m_editor = new QLineEdit; layout->addWidget(m_editor); connect(m_editor, SIGNAL(textEdited(const QString &)), this, SLOT(textEdited(const QString &))); // m_list = new QListWidget(); m_list = new QFrame; m_listLayout = new QGridLayout; m_list->setLayout(m_listLayout); m_list->setWindowFlags(Qt::Window | Qt::Tool | Qt::FramelessWindowHint); m_list->hide(); } void TypingSelectWidget::textEdited(const QString &s) { if (m_matchers.empty()) return; GuessList results = m_matchers[0]->match(s, 10); // m_list->clear(); if (results.empty()) { m_list->hide(); return; } foreach (QWidget *w, m_listEntries) delete w; m_listEntries.clear(); foreach (Guess g, results) { Composer *c = qobject_cast<Composer *>(g.entity()); if (!c) continue; QLabel *l = new QLabel; l->setText(c->getSortName(true)); m_listLayout->addWidget(l); m_listEntries.push_back(l); } m_list->show(); m_list->move(m_editor->mapToGlobal(QPoint(0, m_editor->height()))); m_list->resize(m_list->sizeHint()); // m_list->setMinimumWidth((width()*3)/4); // m_list->setMinimumHeight(height() * 5); std::cerr << std::endl; } }