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@143: #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@143: m_painter(0) 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@143: QScrollArea * scrollArea = new QScrollArea; lbajardsilogic@143: scrollArea->setWidget(mediaWidget); lbajardsilogic@143: scrollArea->setWidgetResizable(true); lbajardsilogic@143: lbajardsilogic@143: QVBoxLayout *mainLayout = new QVBoxLayout; lbajardsilogic@143: mainLayout->addWidget(scrollArea); 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@153: int maxHeight = 150; lbajardsilogic@153: 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@153: if (image.height() > maxHeight) lbajardsilogic@153: { lbajardsilogic@153: height = maxHeight; lbajardsilogic@153: width = image.width() * maxHeight / 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: }