Mercurial > hg > classical
view widgets/TypingSelectWidget.cpp @ 30:8bed05455706
* Make classical code build
author | Chris Cannam |
---|---|
date | Tue, 16 Mar 2010 17:36:28 +0000 |
parents | 7d8a6167febb |
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; } }