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 <QScrollArea>
|
lbajardsilogic@7
|
17 #include <QLabel>
|
benoitrigolleau@88
|
18 #include <QApplication>
|
lbajardsilogic@7
|
19
|
lbajardsilogic@7
|
20 #include <iostream>
|
lbajardsilogic@7
|
21
|
lbajardsilogic@7
|
22 #include "sv/main/MainWindow.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
|
lbajardsilogic@7
|
32 QScrollArea * scrollArea = new QScrollArea;
|
lbajardsilogic@7
|
33 scrollArea->setWidget(resultsWidget);
|
lbajardsilogic@7
|
34 scrollArea->setWidgetResizable(true);
|
lbajardsilogic@7
|
35
|
lbajardsilogic@7
|
36 QVBoxLayout *mainLayout = new QVBoxLayout;
|
lbajardsilogic@7
|
37 mainLayout->addWidget(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
|
lbajardsilogic@7
|
73 QLabel* result = new QLabel();
|
lbajardsilogic@7
|
74
|
lbajardsilogic@7
|
75 QString text;
|
lbajardsilogic@90
|
76 QString uri = "";
|
lbajardsilogic@7
|
77
|
lbajardsilogic@7
|
78 for (iter = m_curResult.begin(); iter != m_curResult.end(); iter++)
|
lbajardsilogic@7
|
79 {
|
lbajardsilogic@90
|
80 if ((*iter).name == "identification")
|
lbajardsilogic@7
|
81 {
|
lbajardsilogic@90
|
82 uri = (*iter).value;
|
lbajardsilogic@90
|
83 uri = uri.right(uri.length() - uri.lastIndexOf("#") - 1);
|
lbajardsilogic@90
|
84 }
|
lbajardsilogic@90
|
85 }
|
lbajardsilogic@90
|
86
|
lbajardsilogic@90
|
87 for (iter = m_curResult.begin(); iter != m_curResult.end(); iter++)
|
lbajardsilogic@90
|
88 {
|
lbajardsilogic@90
|
89 if ((*iter).name != "identification")
|
lbajardsilogic@7
|
90 {
|
lbajardsilogic@90
|
91 text += "<br>" ;
|
lbajardsilogic@90
|
92 text += (*iter).name;
|
lbajardsilogic@90
|
93 text += " : " ;
|
lbajardsilogic@90
|
94 if ((*iter).name == "title")
|
lbajardsilogic@90
|
95 {
|
lbajardsilogic@90
|
96 text += "<a href=\"";
|
lbajardsilogic@90
|
97 text += uri;
|
lbajardsilogic@90
|
98 text += "\">";
|
lbajardsilogic@90
|
99 text += (*iter).value;
|
lbajardsilogic@90
|
100 text += "</a>";
|
lbajardsilogic@90
|
101 } else
|
lbajardsilogic@90
|
102 {
|
lbajardsilogic@90
|
103 text += (*iter).value;
|
lbajardsilogic@90
|
104 }
|
lbajardsilogic@90
|
105 text += "</br>" ;
|
lbajardsilogic@7
|
106 }
|
lbajardsilogic@7
|
107 }
|
lbajardsilogic@7
|
108
|
lbajardsilogic@7
|
109 connect(result, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(importEasaierFile(QString)));
|
lbajardsilogic@7
|
110
|
lbajardsilogic@7
|
111 result->setText(text);
|
lbajardsilogic@7
|
112
|
lbajardsilogic@7
|
113 m_resultsLayout->addWidget(result,m_ndResults,0);
|
lbajardsilogic@7
|
114 m_ndResults++;
|
benoitrigolleau@88
|
115
|
lbajardsilogic@7
|
116 }
|