annotate widgets/InfoWidget.cpp @ 244:ec2ca3fbd957

update AudioSourceInfoReader and SparqlResultsReader according to new sparql query
author lbajardsilogic
date Fri, 28 Mar 2008 12:22:56 +0000
parents c3296b15c43e
children 2ea04b3f9141
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@154 22 #include "RelatedMediaWidget.h"
lbajardsilogic@155 23 #include "AdvancedToolBox.h"
lbajardsilogic@7 24
lbajardsilogic@154 25 InfoWidget::InfoWidget(RelatedMediaWidget * relMediaWidget) : QWidget()
lbajardsilogic@7 26 {
lbajardsilogic@7 27 m_infoLayout = new QGridLayout;
lbajardsilogic@7 28
lbajardsilogic@7 29 QWidget *infoWidget = new QWidget;
lbajardsilogic@7 30 infoWidget->setLayout(m_infoLayout);
lbajardsilogic@7 31
lbajardsilogic@155 32 AdvancedToolBox * toolBox= new AdvancedToolBox;
lbajardsilogic@156 33 toolBox->addItem("File Information", infoWidget);
lbajardsilogic@155 34 toolBox->addItem("Related Media", relMediaWidget);
lbajardsilogic@7 35
lbajardsilogic@156 36 QScrollArea * scrollArea = new QScrollArea;
lbajardsilogic@156 37 scrollArea->setWidget(toolBox);
lbajardsilogic@156 38 scrollArea->setWidgetResizable(true);
lbajardsilogic@156 39
lbajardsilogic@7 40 QVBoxLayout *mainLayout = new QVBoxLayout;
lbajardsilogic@156 41 mainLayout->addWidget(scrollArea);
lbajardsilogic@7 42
lbajardsilogic@7 43 setLayout(mainLayout);
lbajardsilogic@7 44 }
lbajardsilogic@7 45
lbajardsilogic@7 46 InfoWidget::~InfoWidget()
lbajardsilogic@7 47 {}
lbajardsilogic@7 48
lbajardsilogic@7 49 void InfoWidget::reset()
lbajardsilogic@7 50 {
lbajardsilogic@7 51 QLayoutItem *child;
lbajardsilogic@7 52 while ((child = m_infoLayout->takeAt(0)) != 0) {
lbajardsilogic@7 53 delete child->widget();
lbajardsilogic@7 54 }
lbajardsilogic@7 55 }
lbajardsilogic@7 56 void InfoWidget::displayAudioSourceInfo(AudioSourceInfoModel* model)
lbajardsilogic@7 57 {
lbajardsilogic@90 58 reset();
lbajardsilogic@90 59
lbajardsilogic@244 60 std::map<QString, QStringList*> info = model->getInfo();
lbajardsilogic@244 61 std::map<QString, QStringList*>::iterator iterInfo;
lbajardsilogic@7 62 QLabel* proper;
benoitrigolleau@142 63 QLabel* icon;
lbajardsilogic@7 64 QLabel* value;
lbajardsilogic@7 65
lbajardsilogic@7 66 int row = 0;
lbajardsilogic@90 67
benoitrigolleau@142 68 m_infoLayout->setColumnMinimumWidth(1,20);
benoitrigolleau@142 69 m_infoLayout->setColumnMinimumWidth(3,20);
benoitrigolleau@142 70
lbajardsilogic@90 71 //display author and title at first
lbajardsilogic@244 72 /* iterInfo = info.find("performance_title");
lbajardsilogic@90 73 if (iterInfo!= info.end())
lbajardsilogic@7 74 {
benoitrigolleau@142 75 proper = new QLabel(iterInfo->first.toUpper());
lbajardsilogic@90 76 value = new QLabel(iterInfo->second);
benoitrigolleau@142 77 m_infoLayout->addWidget(proper, row, 0,1,3);
benoitrigolleau@142 78 m_infoLayout->addWidget(value, row, 4,1,1);
lbajardsilogic@90 79 row++;
lbajardsilogic@90 80 }
lbajardsilogic@90 81 iterInfo = info.find("author");
lbajardsilogic@90 82 if (iterInfo!= info.end())
lbajardsilogic@90 83 {
benoitrigolleau@142 84 proper = new QLabel(iterInfo->first.toUpper());
lbajardsilogic@90 85 value = new QLabel(iterInfo->second);
benoitrigolleau@142 86 m_infoLayout->addWidget(proper, row, 0,1,3);
benoitrigolleau@142 87 m_infoLayout->addWidget(value, row, 4,1,1);
lbajardsilogic@7 88 row++;
lbajardsilogic@7 89 }
benoitrigolleau@142 90 m_infoLayout->setRowMinimumHeight(row,25);
benoitrigolleau@142 91 row++;
lbajardsilogic@244 92 */
benoitrigolleau@142 93
lbajardsilogic@90 94 //display other info
lbajardsilogic@90 95 for (iterInfo = info.begin(); iterInfo != info.end(); iterInfo++)
lbajardsilogic@90 96 {
lbajardsilogic@244 97 /*if ((iterInfo->first != "title") && (iterInfo->first != "author") && (iterInfo->first.contains("http://purl.org/ontology/mo")))
lbajardsilogic@90 98 {
benoitrigolleau@142 99 QString properName;
benoitrigolleau@142 100 properName = iterInfo->first.split("#").last();
benoitrigolleau@142 101 proper = new QLabel(properName);
benoitrigolleau@142 102 icon = new QLabel();
benoitrigolleau@142 103 if(properName == "beats"){
benoitrigolleau@142 104 icon->setPixmap(QPixmap(":icons/instants.png"));
benoitrigolleau@142 105 }else if(properName == "chromagram"){
benoitrigolleau@142 106 icon->setPixmap(QPixmap(":icons/colour3d.png"));
benoitrigolleau@142 107 }else if(properName == "instruments"){
benoitrigolleau@142 108 icon->setPixmap(QPixmap(":icons/notes.png"));
benoitrigolleau@142 109 }else if(properName == "key"){
benoitrigolleau@142 110 icon->setPixmap(QPixmap(":icons/values.png"));
benoitrigolleau@142 111 }else if(properName == "tempo"){
benoitrigolleau@142 112 icon->setPixmap(QPixmap(":icons/values.png"));
benoitrigolleau@142 113 }else{
benoitrigolleau@142 114 //nothing
benoitrigolleau@142 115 }
lbajardsilogic@90 116
lbajardsilogic@90 117 QString valueText(iterInfo->second);
lbajardsilogic@90 118
lbajardsilogic@90 119 if (valueText.right(4) == ".xml")
lbajardsilogic@90 120 {
lbajardsilogic@90 121 value = new QLabel();
benoitrigolleau@142 122 //value->setIcon(QIcon(":icons/redo.png"));
benoitrigolleau@142 123 value->setText("<html><header><style type=\"text/css\">a {text-decoration: none;}</style></header><body><a href=\"" + iterInfo->second + "\"><img src=\":icons/addToLayer.png\">&nbsp;</a></body></html>");
benoitrigolleau@142 124 value->setToolTip(tr("Add this layer to the layer list"));
lbajardsilogic@90 125 //connect the main window to the linkActivated signal
lbajardsilogic@90 126 connect(value, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(importEasaierLayer(QString)));
benoitrigolleau@142 127
benoitrigolleau@142 128 m_infoLayout->addWidget(icon,row,0,1,1);
benoitrigolleau@142 129 m_infoLayout->addWidget(proper, row, 2,1,1);
benoitrigolleau@142 130 m_infoLayout->addWidget(value, row, 4,1,1);
benoitrigolleau@142 131 row++;
benoitrigolleau@142 132 }
lbajardsilogic@244 133 }*/
lbajardsilogic@244 134
lbajardsilogic@244 135 proper = new QLabel(iterInfo->first);
lbajardsilogic@244 136 value = new QLabel(iterInfo->second->join(" "));
lbajardsilogic@244 137 //connect the main window to the linkActivated signal
lbajardsilogic@244 138 //connect(value, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(importEasaierLayer(QString)));
lbajardsilogic@244 139
lbajardsilogic@244 140 m_infoLayout->addWidget(proper, row, 2,1,1);
lbajardsilogic@244 141 m_infoLayout->addWidget(value, row, 4,1,1);
lbajardsilogic@244 142 row++;
lbajardsilogic@90 143 }
lbajardsilogic@90 144
benoitrigolleau@142 145 m_infoLayout->setColumnStretch( 4, 1);
benoitrigolleau@144 146 m_infoLayout->setRowStretch( row, 1);
lbajardsilogic@7 147 }