lbajardsilogic@7: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@7: lbajardsilogic@7: /* Sound Access lbajardsilogic@7: EASAIER client application. lbajardsilogic@7: Silogic 2007. Laure Bajard. lbajardsilogic@7: lbajardsilogic@7: This program is free software; you can redistribute it and/or lbajardsilogic@7: modify it under the terms of the GNU General Public License as lbajardsilogic@7: published by the Free Software Foundation; either version 2 of the lbajardsilogic@7: License, or (at your option) any later version. See the file benoitrigolleau@115: COPYING included with this distribution for more information . lbajardsilogic@7: */ lbajardsilogic@7: lbajardsilogic@7: #include "InfoWidget.h" lbajardsilogic@7: lbajardsilogic@7: #include lbajardsilogic@7: #include lbajardsilogic@7: lbajardsilogic@7: #include lbajardsilogic@7: lbajardsilogic@7: #include "sv/main/MainWindow.h" lbajardsilogic@154: #include "RelatedMediaWidget.h" lbajardsilogic@155: #include "AdvancedToolBox.h" lbajardsilogic@7: lbajardsilogic@154: InfoWidget::InfoWidget(RelatedMediaWidget * relMediaWidget) : QWidget() lbajardsilogic@7: { lbajardsilogic@7: m_infoLayout = new QGridLayout; lbajardsilogic@7: lbajardsilogic@7: QWidget *infoWidget = new QWidget; lbajardsilogic@7: infoWidget->setLayout(m_infoLayout); lbajardsilogic@7: lbajardsilogic@155: AdvancedToolBox * toolBox= new AdvancedToolBox; lbajardsilogic@156: toolBox->addItem("File Information", infoWidget); lbajardsilogic@155: toolBox->addItem("Related Media", relMediaWidget); lbajardsilogic@7: lbajardsilogic@156: QScrollArea * scrollArea = new QScrollArea; lbajardsilogic@156: scrollArea->setWidget(toolBox); lbajardsilogic@156: scrollArea->setWidgetResizable(true); lbajardsilogic@156: lbajardsilogic@7: QVBoxLayout *mainLayout = new QVBoxLayout; lbajardsilogic@156: mainLayout->addWidget(scrollArea); lbajardsilogic@7: lbajardsilogic@7: setLayout(mainLayout); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: InfoWidget::~InfoWidget() lbajardsilogic@7: {} lbajardsilogic@7: lbajardsilogic@7: void InfoWidget::reset() lbajardsilogic@7: { lbajardsilogic@7: QLayoutItem *child; lbajardsilogic@7: while ((child = m_infoLayout->takeAt(0)) != 0) { lbajardsilogic@7: delete child->widget(); lbajardsilogic@7: } lbajardsilogic@7: } lbajardsilogic@7: void InfoWidget::displayAudioSourceInfo(AudioSourceInfoModel* model) lbajardsilogic@7: { lbajardsilogic@90: reset(); lbajardsilogic@90: lbajardsilogic@244: std::map info = model->getInfo(); lbajardsilogic@244: std::map::iterator iterInfo; lbajardsilogic@7: QLabel* proper; benoitrigolleau@142: QLabel* icon; lbajardsilogic@7: QLabel* value; lbajardsilogic@7: lbajardsilogic@7: int row = 0; lbajardsilogic@90: benoitrigolleau@142: m_infoLayout->setColumnMinimumWidth(1,20); benoitrigolleau@142: m_infoLayout->setColumnMinimumWidth(3,20); benoitrigolleau@142: lbajardsilogic@90: //display author and title at first lbajardsilogic@244: /* iterInfo = info.find("performance_title"); lbajardsilogic@90: if (iterInfo!= info.end()) lbajardsilogic@7: { benoitrigolleau@142: proper = new QLabel(iterInfo->first.toUpper()); lbajardsilogic@90: value = new QLabel(iterInfo->second); benoitrigolleau@142: m_infoLayout->addWidget(proper, row, 0,1,3); benoitrigolleau@142: m_infoLayout->addWidget(value, row, 4,1,1); lbajardsilogic@90: row++; lbajardsilogic@90: } lbajardsilogic@90: iterInfo = info.find("author"); lbajardsilogic@90: if (iterInfo!= info.end()) lbajardsilogic@90: { benoitrigolleau@142: proper = new QLabel(iterInfo->first.toUpper()); lbajardsilogic@90: value = new QLabel(iterInfo->second); benoitrigolleau@142: m_infoLayout->addWidget(proper, row, 0,1,3); benoitrigolleau@142: m_infoLayout->addWidget(value, row, 4,1,1); lbajardsilogic@7: row++; lbajardsilogic@7: } benoitrigolleau@142: m_infoLayout->setRowMinimumHeight(row,25); benoitrigolleau@142: row++; lbajardsilogic@244: */ benoitrigolleau@142: lbajardsilogic@90: //display other info lbajardsilogic@90: for (iterInfo = info.begin(); iterInfo != info.end(); iterInfo++) lbajardsilogic@90: { lbajardsilogic@244: /*if ((iterInfo->first != "title") && (iterInfo->first != "author") && (iterInfo->first.contains("http://purl.org/ontology/mo"))) lbajardsilogic@90: { benoitrigolleau@142: QString properName; benoitrigolleau@142: properName = iterInfo->first.split("#").last(); benoitrigolleau@142: proper = new QLabel(properName); benoitrigolleau@142: icon = new QLabel(); benoitrigolleau@142: if(properName == "beats"){ benoitrigolleau@142: icon->setPixmap(QPixmap(":icons/instants.png")); benoitrigolleau@142: }else if(properName == "chromagram"){ benoitrigolleau@142: icon->setPixmap(QPixmap(":icons/colour3d.png")); benoitrigolleau@142: }else if(properName == "instruments"){ benoitrigolleau@142: icon->setPixmap(QPixmap(":icons/notes.png")); benoitrigolleau@142: }else if(properName == "key"){ benoitrigolleau@142: icon->setPixmap(QPixmap(":icons/values.png")); benoitrigolleau@142: }else if(properName == "tempo"){ benoitrigolleau@142: icon->setPixmap(QPixmap(":icons/values.png")); benoitrigolleau@142: }else{ benoitrigolleau@142: //nothing benoitrigolleau@142: } lbajardsilogic@90: lbajardsilogic@90: QString valueText(iterInfo->second); lbajardsilogic@90: lbajardsilogic@90: if (valueText.right(4) == ".xml") lbajardsilogic@90: { lbajardsilogic@90: value = new QLabel(); benoitrigolleau@142: //value->setIcon(QIcon(":icons/redo.png")); benoitrigolleau@142: value->setText("
second + "\"> "); benoitrigolleau@142: value->setToolTip(tr("Add this layer to the layer list")); lbajardsilogic@90: //connect the main window to the linkActivated signal lbajardsilogic@90: connect(value, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(importEasaierLayer(QString))); benoitrigolleau@142: benoitrigolleau@142: m_infoLayout->addWidget(icon,row,0,1,1); benoitrigolleau@142: m_infoLayout->addWidget(proper, row, 2,1,1); benoitrigolleau@142: m_infoLayout->addWidget(value, row, 4,1,1); benoitrigolleau@142: row++; benoitrigolleau@142: } lbajardsilogic@244: }*/ lbajardsilogic@251: if (iterInfo->first == "event_label") lbajardsilogic@251: { lbajardsilogic@251: proper = new QLabel(iterInfo->first); lbajardsilogic@251: value = new QLabel(iterInfo->second->join(" - ")); lbajardsilogic@251: QString label; lbajardsilogic@251: QStringList::const_iterator constIterator; lbajardsilogic@251: for (constIterator = iterInfo->second->constBegin(); constIterator != iterInfo->second->constEnd(); ++constIterator) lbajardsilogic@251: { lbajardsilogic@251: label += ""; lbajardsilogic@251: label += *constIterator; lbajardsilogic@251: label += " - "; lbajardsilogic@251: } lbajardsilogic@251: value->setText(label); lbajardsilogic@251: //connect the main window to the linkActivated signal lbajardsilogic@251: connect(value, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(importEasaierLayer(QString))); lbajardsilogic@251: } lbajardsilogic@251: else { lbajardsilogic@251: proper = new QLabel(iterInfo->first); lbajardsilogic@251: value = new QLabel(iterInfo->second->join(" - ")); lbajardsilogic@251: } lbajardsilogic@244: m_infoLayout->addWidget(proper, row, 2,1,1); lbajardsilogic@244: m_infoLayout->addWidget(value, row, 4,1,1); lbajardsilogic@244: row++; lbajardsilogic@90: } lbajardsilogic@90: benoitrigolleau@142: m_infoLayout->setColumnStretch( 4, 1); benoitrigolleau@144: m_infoLayout->setRowStretch( row, 1); lbajardsilogic@7: }