lbajardsilogic@7: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@7: lbajardsilogic@7: /* Sound Access lbajardsilogic@7: EASAIER client application. lbajardsilogic@7: Silogic 2007. Laure Bajard. lbajardsilogic@7: lbajardsilogic@7: This program is free software; you can redistribute it and/or lbajardsilogic@7: modify it under the terms of the GNU General Public License as lbajardsilogic@7: published by the Free Software Foundation; either version 2 of the lbajardsilogic@7: License, or (at your option) any later version. See the file lbajardsilogic@7: COPYING included with this distribution for more information. lbajardsilogic@7: */ lbajardsilogic@7: lbajardsilogic@7: #include "QueryResultsWidget.h" lbajardsilogic@7: lbajardsilogic@7: #include benoitrigolleau@88: #include lbajardsilogic@7: lbajardsilogic@7: #include lbajardsilogic@7: lbajardsilogic@7: #include "sv/main/MainWindow.h" benoitrigolleau@126: #include "widgets/ListResultGeneralItemWidget.h" lbajardsilogic@7: lbajardsilogic@7: QueryResultsWidget::QueryResultsWidget() : QWidget(), lbajardsilogic@7: m_ndResults(0) lbajardsilogic@7: { lbajardsilogic@7: m_resultsLayout = new QGridLayout; lbajardsilogic@7: lbajardsilogic@7: QWidget *resultsWidget = new QWidget; lbajardsilogic@7: resultsWidget->setLayout(m_resultsLayout); lbajardsilogic@7: benoitrigolleau@126: m_scrollArea = new QScrollArea; benoitrigolleau@126: m_scrollArea->setWidget(resultsWidget); benoitrigolleau@126: m_scrollArea->setWidgetResizable(true); lbajardsilogic@7: lbajardsilogic@7: QVBoxLayout *mainLayout = new QVBoxLayout; benoitrigolleau@126: mainLayout->addWidget(m_scrollArea); lbajardsilogic@7: lbajardsilogic@7: setLayout(mainLayout); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: QueryResultsWidget::~QueryResultsWidget() lbajardsilogic@7: {} lbajardsilogic@7: lbajardsilogic@7: void QueryResultsWidget::reset() lbajardsilogic@7: { lbajardsilogic@7: m_ndResults = 0; lbajardsilogic@7: lbajardsilogic@7: QLayoutItem *child; lbajardsilogic@7: while ((child = m_resultsLayout->takeAt(0)) != 0) { lbajardsilogic@7: delete child->widget(); lbajardsilogic@7: } lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void QueryResultsWidget::newResult() lbajardsilogic@7: { lbajardsilogic@7: m_curResult.clear(); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void QueryResultsWidget::addInfo(const QString& name, const QString& value) lbajardsilogic@7: { lbajardsilogic@7: Info info; lbajardsilogic@7: info.name = name; lbajardsilogic@7: info.value = value; lbajardsilogic@7: lbajardsilogic@7: m_curResult.push_back(info); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void QueryResultsWidget::displayResult() lbajardsilogic@7: { lbajardsilogic@7: std::vector::iterator iter; lbajardsilogic@7: benoitrigolleau@126: QString author = ""; benoitrigolleau@126: QString title = ""; benoitrigolleau@126: QString uri = ""; lbajardsilogic@7: benoitrigolleau@126: ListResultGeneralItemWidget *itemResult = new ListResultGeneralItemWidget(); benoitrigolleau@126: itemResult->setRank(m_ndResults); benoitrigolleau@126: itemResult->setType(0); lbajardsilogic@7: lbajardsilogic@7: for (iter = m_curResult.begin(); iter != m_curResult.end(); iter++) lbajardsilogic@7: { lbajardsilogic@90: if ((*iter).name == "identification") lbajardsilogic@7: { lbajardsilogic@90: uri = (*iter).value; lbajardsilogic@90: uri = uri.right(uri.length() - uri.lastIndexOf("#") - 1); lbajardsilogic@90: } lbajardsilogic@90: } lbajardsilogic@90: lbajardsilogic@90: for (iter = m_curResult.begin(); iter != m_curResult.end(); iter++) lbajardsilogic@90: { lbajardsilogic@90: if ((*iter).name != "identification") lbajardsilogic@7: { benoitrigolleau@126: if((*iter).name == "author"){ benoitrigolleau@126: author = (*iter).value; benoitrigolleau@126: } lbajardsilogic@90: if ((*iter).name == "title") lbajardsilogic@90: { benoitrigolleau@126: title += (*iter).value; lbajardsilogic@90: } lbajardsilogic@7: } lbajardsilogic@7: } benoitrigolleau@126: itemResult->setTitleAndAuthorName(author,title,uri ); benoitrigolleau@126: itemResult->addConfidence(100,"contains"); lbajardsilogic@7: benoitrigolleau@126: connect(itemResult, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(importEasaierFile(QString))); lbajardsilogic@7: benoitrigolleau@126: benoitrigolleau@126: m_resultsLayout->addWidget(itemResult,m_ndResults,0); benoitrigolleau@126: m_resultsLayout->setSpacing(0); lbajardsilogic@7: m_ndResults++; benoitrigolleau@88: lbajardsilogic@7: }