annotate widgets/RelatedMediaWidget.cpp @ 143:97fd6148fb8e

support related media display and loading
author lbajardsilogic
date Tue, 13 Nov 2007 10:07:49 +0000
parents
children 98df77b4f041
rev   line source
lbajardsilogic@143 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@143 2
lbajardsilogic@143 3 /* Sound Access
lbajardsilogic@143 4 EASAIER client application.
lbajardsilogic@143 5 Silogic 2007. Laure Bajard.
lbajardsilogic@143 6
lbajardsilogic@143 7 This program is free software; you can redistribute it and/or
lbajardsilogic@143 8 modify it under the terms of the GNU General Public License as
lbajardsilogic@143 9 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@143 10 License, or (at your option) any later version. See the file
lbajardsilogic@143 11 COPYING included with this distribution for more information .
lbajardsilogic@143 12 */
lbajardsilogic@143 13
lbajardsilogic@143 14 #include "RelatedMediaWidget.h"
lbajardsilogic@143 15
lbajardsilogic@143 16 #include <QScrollArea>
lbajardsilogic@143 17 #include <QLayoutItem>
lbajardsilogic@143 18 #include <QLinearGradient>
lbajardsilogic@143 19
lbajardsilogic@143 20 #include <iostream>
lbajardsilogic@143 21
lbajardsilogic@143 22 #include "sv/main/MainWindow.h"
lbajardsilogic@143 23
lbajardsilogic@143 24 RelatedMediaWidget::RelatedMediaWidget() : QWidget() ,
lbajardsilogic@143 25 m_nbRelMedia(0),
lbajardsilogic@143 26 m_painter(0)
lbajardsilogic@143 27 {
lbajardsilogic@143 28 m_relMediaLayout = new QGridLayout;
lbajardsilogic@143 29
lbajardsilogic@143 30 QWidget *mediaWidget = new QWidget;
lbajardsilogic@143 31 mediaWidget->setLayout(m_relMediaLayout);
lbajardsilogic@143 32
lbajardsilogic@143 33 QScrollArea * scrollArea = new QScrollArea;
lbajardsilogic@143 34 scrollArea->setWidget(mediaWidget);
lbajardsilogic@143 35 scrollArea->setWidgetResizable(true);
lbajardsilogic@143 36
lbajardsilogic@143 37 QVBoxLayout *mainLayout = new QVBoxLayout;
lbajardsilogic@143 38 mainLayout->addWidget(scrollArea);
lbajardsilogic@143 39
lbajardsilogic@143 40 setLayout(mainLayout);
lbajardsilogic@143 41 }
lbajardsilogic@143 42
lbajardsilogic@143 43 RelatedMediaWidget::~RelatedMediaWidget()
lbajardsilogic@143 44 {}
lbajardsilogic@143 45
lbajardsilogic@143 46 void RelatedMediaWidget::reset()
lbajardsilogic@143 47 {
lbajardsilogic@143 48 m_nbRelMedia = 0;
lbajardsilogic@143 49
lbajardsilogic@143 50 QLayoutItem *child;
lbajardsilogic@143 51 while ((child = m_relMediaLayout->takeAt(0)) != 0) {
lbajardsilogic@143 52 delete child->widget();
lbajardsilogic@143 53 }
lbajardsilogic@143 54 }
lbajardsilogic@143 55
lbajardsilogic@143 56 void RelatedMediaWidget::addRelatedMedia(const QString &filename)
lbajardsilogic@143 57 {
lbajardsilogic@143 58 QLabel *mediaLabel = new QLabel();
lbajardsilogic@143 59 mediaLabel->setText("<html><header><style type=\"text/css\">a {text-decoration: none;}</style></header><body><a href=\"" + filename + "\"><img src=\"" + filename + "\">&nbsp;</a></body></html>");
lbajardsilogic@143 60
lbajardsilogic@143 61 connect(mediaLabel, SIGNAL(linkActivated(QString)), MainWindow::instance(), SLOT(runExternProcess(QString)));
lbajardsilogic@143 62
lbajardsilogic@143 63 m_relMediaLayout->addWidget(mediaLabel, 0, m_nbRelMedia);
lbajardsilogic@143 64 m_nbRelMedia++;
lbajardsilogic@143 65 }