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>
|
lbajardsilogic@7
|
18
|
lbajardsilogic@7
|
19 #include <iostream>
|
lbajardsilogic@7
|
20
|
lbajardsilogic@7
|
21 #include "sv/main/MainWindow.h"
|
lbajardsilogic@7
|
22
|
lbajardsilogic@7
|
23 QueryResultsWidget::QueryResultsWidget() : QWidget(),
|
lbajardsilogic@7
|
24 m_ndResults(0)
|
lbajardsilogic@7
|
25 {
|
lbajardsilogic@7
|
26 m_resultsLayout = new QGridLayout;
|
lbajardsilogic@7
|
27
|
lbajardsilogic@7
|
28 QWidget *resultsWidget = new QWidget;
|
lbajardsilogic@7
|
29 resultsWidget->setLayout(m_resultsLayout);
|
lbajardsilogic@7
|
30
|
lbajardsilogic@7
|
31 QScrollArea * scrollArea = new QScrollArea;
|
lbajardsilogic@7
|
32 scrollArea->setWidget(resultsWidget);
|
lbajardsilogic@7
|
33 scrollArea->setWidgetResizable(true);
|
lbajardsilogic@7
|
34
|
lbajardsilogic@7
|
35 QVBoxLayout *mainLayout = new QVBoxLayout;
|
lbajardsilogic@7
|
36 mainLayout->addWidget(scrollArea);
|
lbajardsilogic@7
|
37
|
lbajardsilogic@7
|
38 setLayout(mainLayout);
|
lbajardsilogic@7
|
39 }
|
lbajardsilogic@7
|
40
|
lbajardsilogic@7
|
41 QueryResultsWidget::~QueryResultsWidget()
|
lbajardsilogic@7
|
42 {}
|
lbajardsilogic@7
|
43
|
lbajardsilogic@7
|
44 void QueryResultsWidget::reset()
|
lbajardsilogic@7
|
45 {
|
lbajardsilogic@7
|
46 m_ndResults = 0;
|
lbajardsilogic@7
|
47
|
lbajardsilogic@7
|
48 QLayoutItem *child;
|
lbajardsilogic@7
|
49 while ((child = m_resultsLayout->takeAt(0)) != 0) {
|
lbajardsilogic@7
|
50 delete child->widget();
|
lbajardsilogic@7
|
51 }
|
lbajardsilogic@7
|
52 }
|
lbajardsilogic@7
|
53
|
lbajardsilogic@7
|
54 void QueryResultsWidget::newResult()
|
lbajardsilogic@7
|
55 {
|
lbajardsilogic@7
|
56 m_curResult.clear();
|
lbajardsilogic@7
|
57 }
|
lbajardsilogic@7
|
58
|
lbajardsilogic@7
|
59 void QueryResultsWidget::addInfo(const QString& name, const QString& value)
|
lbajardsilogic@7
|
60 {
|
lbajardsilogic@7
|
61 Info info;
|
lbajardsilogic@7
|
62 info.name = name;
|
lbajardsilogic@7
|
63 info.value = value;
|
lbajardsilogic@7
|
64
|
lbajardsilogic@7
|
65 m_curResult.push_back(info);
|
lbajardsilogic@7
|
66 }
|
lbajardsilogic@7
|
67
|
lbajardsilogic@7
|
68 void QueryResultsWidget::displayResult()
|
lbajardsilogic@7
|
69 {
|
lbajardsilogic@7
|
70 std::vector<Info>::iterator iter;
|
lbajardsilogic@7
|
71
|
lbajardsilogic@7
|
72 QLabel* result = new QLabel();
|
lbajardsilogic@7
|
73
|
lbajardsilogic@7
|
74 QString text;
|
lbajardsilogic@7
|
75
|
lbajardsilogic@7
|
76 for (iter = m_curResult.begin(); iter != m_curResult.end(); iter++)
|
lbajardsilogic@7
|
77 {
|
lbajardsilogic@7
|
78 text += "<br>" ;
|
lbajardsilogic@7
|
79 text += (*iter).name;
|
lbajardsilogic@7
|
80 text += " : " ;
|
lbajardsilogic@7
|
81 if (((*iter).value.left(4) == "http") && ((*iter).value.right(4) == ".xml"))
|
lbajardsilogic@7
|
82 {
|
lbajardsilogic@7
|
83 text += "<a href=\"";
|
lbajardsilogic@7
|
84 text += (*iter).value;
|
lbajardsilogic@7
|
85 text += "\">";
|
lbajardsilogic@7
|
86 text += (*iter).value;
|
lbajardsilogic@7
|
87 text += "</a>";
|
lbajardsilogic@7
|
88 } else
|
lbajardsilogic@7
|
89 {
|
lbajardsilogic@7
|
90 text += (*iter).value;
|
lbajardsilogic@7
|
91 }
|
lbajardsilogic@7
|
92 text += "</br>" ;
|
lbajardsilogic@7
|
93 }
|
lbajardsilogic@7
|
94
|
lbajardsilogic@7
|
95 connect(result, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(importEasaierFile(QString)));
|
lbajardsilogic@7
|
96
|
lbajardsilogic@7
|
97 result->setText(text);
|
lbajardsilogic@7
|
98
|
lbajardsilogic@7
|
99 m_resultsLayout->addWidget(result,m_ndResults,0);
|
lbajardsilogic@7
|
100 m_ndResults++;
|
lbajardsilogic@7
|
101 }
|