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 }
|