annotate widgets/InfoWidget.cpp @ 115:1ae07a8c28a0

(none)
author benoitrigolleau
date Thu, 20 Sep 2007 09:16:41 +0000
parents 87495ac7710a
children c1ea7af931e7
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
benoitrigolleau@115 11 COPYING included with this distribution for more information .
lbajardsilogic@7 12 */
lbajardsilogic@7 13
lbajardsilogic@7 14 #include "InfoWidget.h"
lbajardsilogic@7 15
lbajardsilogic@7 16 #include <QScrollArea>
lbajardsilogic@7 17 #include <QLayoutItem>
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 InfoWidget::InfoWidget() : QWidget()
lbajardsilogic@7 24 {
lbajardsilogic@7 25 m_infoLayout = new QGridLayout;
lbajardsilogic@7 26
lbajardsilogic@7 27 QWidget *infoWidget = new QWidget;
lbajardsilogic@7 28 infoWidget->setLayout(m_infoLayout);
lbajardsilogic@7 29
lbajardsilogic@7 30 QScrollArea * scrollArea = new QScrollArea;
lbajardsilogic@7 31 scrollArea->setWidget(infoWidget);
lbajardsilogic@7 32 scrollArea->setWidgetResizable(true);
lbajardsilogic@7 33
lbajardsilogic@7 34 QVBoxLayout *mainLayout = new QVBoxLayout;
lbajardsilogic@7 35 mainLayout->addWidget(scrollArea);
lbajardsilogic@7 36
lbajardsilogic@7 37 setLayout(mainLayout);
lbajardsilogic@7 38 }
lbajardsilogic@7 39
lbajardsilogic@7 40 InfoWidget::~InfoWidget()
lbajardsilogic@7 41 {}
lbajardsilogic@7 42
lbajardsilogic@7 43 void InfoWidget::reset()
lbajardsilogic@7 44 {
lbajardsilogic@7 45 QLayoutItem *child;
lbajardsilogic@7 46 while ((child = m_infoLayout->takeAt(0)) != 0) {
lbajardsilogic@7 47 delete child->widget();
lbajardsilogic@7 48 }
lbajardsilogic@7 49 }
lbajardsilogic@7 50 void InfoWidget::displayAudioSourceInfo(AudioSourceInfoModel* model)
lbajardsilogic@7 51 {
lbajardsilogic@90 52 reset();
lbajardsilogic@90 53
lbajardsilogic@7 54 std::map<QString, QString> info = model->getInfo();
lbajardsilogic@7 55 std::map<QString, QString>::iterator iterInfo;
lbajardsilogic@7 56 QLabel* proper;
lbajardsilogic@7 57 QLabel* value;
lbajardsilogic@7 58
lbajardsilogic@7 59 int row = 0;
lbajardsilogic@90 60
lbajardsilogic@90 61 //display author and title at first
lbajardsilogic@90 62 iterInfo = info.find("title");
lbajardsilogic@90 63 if (iterInfo!= info.end())
lbajardsilogic@7 64 {
lbajardsilogic@7 65 proper = new QLabel(iterInfo->first);
lbajardsilogic@90 66 value = new QLabel(iterInfo->second);
lbajardsilogic@90 67 m_infoLayout->addWidget(proper, row, 0);
lbajardsilogic@90 68 m_infoLayout->addWidget(value, row, 1);
lbajardsilogic@90 69 row++;
lbajardsilogic@90 70 }
lbajardsilogic@90 71 iterInfo = info.find("author");
lbajardsilogic@90 72 if (iterInfo!= info.end())
lbajardsilogic@90 73 {
lbajardsilogic@90 74 proper = new QLabel(iterInfo->first);
lbajardsilogic@90 75 value = new QLabel(iterInfo->second);
lbajardsilogic@7 76 m_infoLayout->addWidget(proper, row, 0);
lbajardsilogic@7 77 m_infoLayout->addWidget(value, row, 1);
lbajardsilogic@7 78 row++;
lbajardsilogic@7 79 }
lbajardsilogic@7 80
lbajardsilogic@90 81 //display other info
lbajardsilogic@90 82 for (iterInfo = info.begin(); iterInfo != info.end(); iterInfo++)
lbajardsilogic@90 83 {
lbajardsilogic@90 84 if ((iterInfo->first != "title") && (iterInfo->first != "author"))
lbajardsilogic@90 85 {
lbajardsilogic@90 86 proper = new QLabel(iterInfo->first);
lbajardsilogic@90 87
lbajardsilogic@90 88 QString valueText(iterInfo->second);
lbajardsilogic@90 89
lbajardsilogic@90 90 if (valueText.right(4) == ".xml")
lbajardsilogic@90 91 {
lbajardsilogic@90 92 value = new QLabel();
lbajardsilogic@90 93 value->setText("<a href=\"" + iterInfo->second + "\">" + iterInfo->second + "</a>");
lbajardsilogic@90 94 //connect the main window to the linkActivated signal
lbajardsilogic@90 95 connect(value, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(importEasaierLayer(QString)));
lbajardsilogic@90 96
lbajardsilogic@90 97 } else {
lbajardsilogic@90 98 value = new QLabel(iterInfo->second);
lbajardsilogic@90 99 }
lbajardsilogic@90 100
lbajardsilogic@90 101 m_infoLayout->addWidget(proper, row, 0);
lbajardsilogic@90 102 m_infoLayout->addWidget(value, row, 1);
lbajardsilogic@90 103 row++;
lbajardsilogic@90 104 }
lbajardsilogic@90 105 }
lbajardsilogic@90 106
lbajardsilogic@7 107 m_infoLayout->setColumnStretch( 1, 1);
lbajardsilogic@7 108 }