Mercurial > hg > classical
view widgets/TypingSelectWidget.cpp @ 31:07efb25d24d6
* Merge revs 7200-7222 from SVN (update use of loader API, switch to using
mapper for merge operation)
author | Chris Cannam |
---|---|
date | Thu, 18 Mar 2010 16:59:24 +0000 |
parents | 8bed05455706 |
children | 94cdfacc4910 |
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 "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->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 (Guess g, results) { Composer *c = qobject_cast<Composer *>(g.entity()); if (!c) continue; m_list->addItem(c->getSortName(true)); } 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; } }