lbajardsilogic@143: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@143: lbajardsilogic@143: /* Sound Access lbajardsilogic@143: EASAIER client application. lbajardsilogic@143: Silogic 2007. Laure Bajard. lbajardsilogic@143: lbajardsilogic@143: This program is free software; you can redistribute it and/or lbajardsilogic@143: modify it under the terms of the GNU General Public License as lbajardsilogic@143: published by the Free Software Foundation; either version 2 of the lbajardsilogic@143: License, or (at your option) any later version. See the file lbajardsilogic@143: COPYING included with this distribution for more information . lbajardsilogic@143: */ lbajardsilogic@143: lbajardsilogic@143: #include "RelatedMediaWidget.h" lbajardsilogic@143: lbajardsilogic@143: #include lbajardsilogic@143: #include lbajardsilogic@155: #include lbajardsilogic@143: lbajardsilogic@143: #include lbajardsilogic@143: lbajardsilogic@143: #include "sv/main/MainWindow.h" lbajardsilogic@143: lbajardsilogic@143: RelatedMediaWidget::RelatedMediaWidget() : QWidget() , lbajardsilogic@143: m_nbRelMedia(0), lbajardsilogic@154: m_painter(0), lbajardsilogic@154: m_relMediaMaxHeight(150) lbajardsilogic@143: { lbajardsilogic@143: m_relMediaLayout = new QGridLayout; lbajardsilogic@143: lbajardsilogic@143: QWidget *mediaWidget = new QWidget; lbajardsilogic@143: mediaWidget->setLayout(m_relMediaLayout); lbajardsilogic@143: lbajardsilogic@155: QScrollArea * scrollArea = new QScrollArea; lbajardsilogic@155: scrollArea->setWidget(mediaWidget); lbajardsilogic@155: scrollArea->setWidgetResizable(true); lbajardsilogic@155: scrollArea->setMinimumHeight(m_relMediaMaxHeight + 50); lbajardsilogic@143: lbajardsilogic@143: QVBoxLayout *mainLayout = new QVBoxLayout; lbajardsilogic@155: mainLayout->addWidget(scrollArea); lbajardsilogic@154: mainLayout->setSpacing(0); lbajardsilogic@154: mainLayout->setMargin(0); lbajardsilogic@143: lbajardsilogic@143: setLayout(mainLayout); lbajardsilogic@143: } lbajardsilogic@143: lbajardsilogic@143: RelatedMediaWidget::~RelatedMediaWidget() lbajardsilogic@143: {} lbajardsilogic@143: lbajardsilogic@143: void RelatedMediaWidget::reset() lbajardsilogic@143: { lbajardsilogic@143: m_nbRelMedia = 0; lbajardsilogic@143: lbajardsilogic@143: QLayoutItem *child; lbajardsilogic@143: while ((child = m_relMediaLayout->takeAt(0)) != 0) { lbajardsilogic@143: delete child->widget(); lbajardsilogic@143: } lbajardsilogic@143: } lbajardsilogic@143: lbajardsilogic@143: void RelatedMediaWidget::addRelatedMedia(const QString &filename) lbajardsilogic@143: { lbajardsilogic@153: QString imageSource; lbajardsilogic@153: QString extension = filename.right(filename.length() - (filename.lastIndexOf('.') + 1)); lbajardsilogic@153: lbajardsilogic@153: int width; lbajardsilogic@153: int height; lbajardsilogic@154: lbajardsilogic@153: if (extension == "pdf") lbajardsilogic@153: { lbajardsilogic@153: imageSource = ":icons/icon_pdf.png"; lbajardsilogic@153: } else lbajardsilogic@153: { lbajardsilogic@153: imageSource = filename; lbajardsilogic@153: } lbajardsilogic@153: lbajardsilogic@153: QPixmap image(imageSource); lbajardsilogic@154: if (image.height() > m_relMediaMaxHeight) lbajardsilogic@153: { lbajardsilogic@154: height = m_relMediaMaxHeight; lbajardsilogic@154: width = image.width() * m_relMediaMaxHeight / image.height(); lbajardsilogic@153: } else lbajardsilogic@153: { lbajardsilogic@153: height = image.height(); lbajardsilogic@153: width = image.width(); lbajardsilogic@153: } lbajardsilogic@153: lbajardsilogic@143: QLabel *mediaLabel = new QLabel(); lbajardsilogic@153: mediaLabel->setText("
 "); lbajardsilogic@143: lbajardsilogic@143: connect(mediaLabel, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(runExternProcess(QString))); lbajardsilogic@143: lbajardsilogic@143: m_relMediaLayout->addWidget(mediaLabel, 0, m_nbRelMedia); lbajardsilogic@143: m_nbRelMedia++; lbajardsilogic@143: }