annotate widgets/QueryResultsWidget.cpp @ 126:c26c73ca6d37

the result list is better now. it's not the final version. the final version.... is coming soon
author benoitrigolleau
date Tue, 23 Oct 2007 15:24:06 +0000
parents 87495ac7710a
children f3dce7a985cf
rev   line source
lbajardsilogic@7 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@7 2
lbajardsilogic@7 3 /* Sound Access
lbajardsilogic@7 4 EASAIER client application.
lbajardsilogic@7 5 Silogic 2007. Laure Bajard.
lbajardsilogic@7 6
lbajardsilogic@7 7 This program is free software; you can redistribute it and/or
lbajardsilogic@7 8 modify it under the terms of the GNU General Public License as
lbajardsilogic@7 9 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@7 10 License, or (at your option) any later version. See the file
lbajardsilogic@7 11 COPYING included with this distribution for more information.
lbajardsilogic@7 12 */
lbajardsilogic@7 13
lbajardsilogic@7 14 #include "QueryResultsWidget.h"
lbajardsilogic@7 15
lbajardsilogic@7 16 #include <QLabel>
benoitrigolleau@88 17 #include <QApplication>
lbajardsilogic@7 18
lbajardsilogic@7 19 #include <iostream>
lbajardsilogic@7 20
lbajardsilogic@7 21 #include "sv/main/MainWindow.h"
benoitrigolleau@126 22 #include "widgets/ListResultGeneralItemWidget.h"
lbajardsilogic@7 23
lbajardsilogic@7 24 QueryResultsWidget::QueryResultsWidget() : QWidget(),
lbajardsilogic@7 25 m_ndResults(0)
lbajardsilogic@7 26 {
lbajardsilogic@7 27 m_resultsLayout = new QGridLayout;
lbajardsilogic@7 28
lbajardsilogic@7 29 QWidget *resultsWidget = new QWidget;
lbajardsilogic@7 30 resultsWidget->setLayout(m_resultsLayout);
lbajardsilogic@7 31
benoitrigolleau@126 32 m_scrollArea = new QScrollArea;
benoitrigolleau@126 33 m_scrollArea->setWidget(resultsWidget);
benoitrigolleau@126 34 m_scrollArea->setWidgetResizable(true);
lbajardsilogic@7 35
lbajardsilogic@7 36 QVBoxLayout *mainLayout = new QVBoxLayout;
benoitrigolleau@126 37 mainLayout->addWidget(m_scrollArea);
lbajardsilogic@7 38
lbajardsilogic@7 39 setLayout(mainLayout);
lbajardsilogic@7 40 }
lbajardsilogic@7 41
lbajardsilogic@7 42 QueryResultsWidget::~QueryResultsWidget()
lbajardsilogic@7 43 {}
lbajardsilogic@7 44
lbajardsilogic@7 45 void QueryResultsWidget::reset()
lbajardsilogic@7 46 {
lbajardsilogic@7 47 m_ndResults = 0;
lbajardsilogic@7 48
lbajardsilogic@7 49 QLayoutItem *child;
lbajardsilogic@7 50 while ((child = m_resultsLayout->takeAt(0)) != 0) {
lbajardsilogic@7 51 delete child->widget();
lbajardsilogic@7 52 }
lbajardsilogic@7 53 }
lbajardsilogic@7 54
lbajardsilogic@7 55 void QueryResultsWidget::newResult()
lbajardsilogic@7 56 {
lbajardsilogic@7 57 m_curResult.clear();
lbajardsilogic@7 58 }
lbajardsilogic@7 59
lbajardsilogic@7 60 void QueryResultsWidget::addInfo(const QString& name, const QString& value)
lbajardsilogic@7 61 {
lbajardsilogic@7 62 Info info;
lbajardsilogic@7 63 info.name = name;
lbajardsilogic@7 64 info.value = value;
lbajardsilogic@7 65
lbajardsilogic@7 66 m_curResult.push_back(info);
lbajardsilogic@7 67 }
lbajardsilogic@7 68
lbajardsilogic@7 69 void QueryResultsWidget::displayResult()
lbajardsilogic@7 70 {
lbajardsilogic@7 71 std::vector<Info>::iterator iter;
lbajardsilogic@7 72
benoitrigolleau@126 73 QString author = "";
benoitrigolleau@126 74 QString title = "";
benoitrigolleau@126 75 QString uri = "";
lbajardsilogic@7 76
benoitrigolleau@126 77 ListResultGeneralItemWidget *itemResult = new ListResultGeneralItemWidget();
benoitrigolleau@126 78 itemResult->setRank(m_ndResults);
benoitrigolleau@126 79 itemResult->setType(0);
lbajardsilogic@7 80
lbajardsilogic@7 81 for (iter = m_curResult.begin(); iter != m_curResult.end(); iter++)
lbajardsilogic@7 82 {
lbajardsilogic@90 83 if ((*iter).name == "identification")
lbajardsilogic@7 84 {
lbajardsilogic@90 85 uri = (*iter).value;
lbajardsilogic@90 86 uri = uri.right(uri.length() - uri.lastIndexOf("#") - 1);
lbajardsilogic@90 87 }
lbajardsilogic@90 88 }
lbajardsilogic@90 89
lbajardsilogic@90 90 for (iter = m_curResult.begin(); iter != m_curResult.end(); iter++)
lbajardsilogic@90 91 {
lbajardsilogic@90 92 if ((*iter).name != "identification")
lbajardsilogic@7 93 {
benoitrigolleau@126 94 if((*iter).name == "author"){
benoitrigolleau@126 95 author = (*iter).value;
benoitrigolleau@126 96 }
lbajardsilogic@90 97 if ((*iter).name == "title")
lbajardsilogic@90 98 {
benoitrigolleau@126 99 title += (*iter).value;
lbajardsilogic@90 100 }
lbajardsilogic@7 101 }
lbajardsilogic@7 102 }
benoitrigolleau@126 103 itemResult->setTitleAndAuthorName(author,title,uri );
benoitrigolleau@126 104 itemResult->addConfidence(100,"contains");
lbajardsilogic@7 105
benoitrigolleau@126 106 connect(itemResult, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(importEasaierFile(QString)));
lbajardsilogic@7 107
benoitrigolleau@126 108
benoitrigolleau@126 109 m_resultsLayout->addWidget(itemResult,m_ndResults,0);
benoitrigolleau@126 110 m_resultsLayout->setSpacing(0);
lbajardsilogic@7 111 m_ndResults++;
benoitrigolleau@88 112
lbajardsilogic@7 113 }