view widgets/ListResultGeneralItemWidget.cpp @ 108:c107866fd387

first draft to the list result
author benoitrigolleau
date Fri, 14 Sep 2007 16:44:36 +0000
parents
children 1c638a8e9897
line wrap: on
line source
/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */

/*   
	Sound Access
		EASAIER client application.
		Silogic 2007. Benoit Rigolleau.

	This program is free software; you can redistribute it and/or
	modify it under the terms of the GNU General Public License as
	published by the Free Software Foundation; either version 2 of the
	License, or (at your option) any later version.  See the file
	COPYING included with this distribution for more information.
*/

#include "ListResultGeneralItemWidget.h"

#include "CriteriaDialog.h"
#include <QPixmap>

ListResultGeneralItemWidget::ListResultGeneralItemWidget(QWidget *parent):QWidget(parent){
	vLayout1 = new QVBoxLayout(); 
	vLayout2 = new QVBoxLayout(); 
	hLayout1 = new QHBoxLayout(); 
	hLayout2 = new QHBoxLayout(); 
	hLayout3 = new QHBoxLayout(); 
	m_waitingWidget = new WaitingWidget();

	m_labelRank = new QLabel();
	m_labelIcon = new QLabel();
	m_labelTitleArtist = new QLabel();
	label4 = new QLabel("4");
	label5 = new QLabel("le super mega truc des options que même que c'est trop bien");

	m_buttonPrev = new QPushButton("prev");
	m_buttonSimilar = new QPushButton("similar");

	m_confidenceListWidget= new ConfidenceListWidget();
	m_confidenceListWidget->setMaximumWidth(180);

	
	// set parameters for each component

	m_labelRank->setMaximumWidth(40);
	m_labelRank->setMinimumWidth(40);
	m_labelIcon->setMaximumWidth(40);
	m_labelIcon->setMinimumWidth(40);
	label4->setMaximumWidth(40);
	label4->setMinimumWidth(40);

	m_labelRank->setAlignment(Qt::AlignCenter);
	m_labelIcon->setAlignment(Qt::AlignCenter);

	m_buttonPrev->setMaximumWidth(60);
	//m_buttonPrev->setMaximumHeight(40);
	m_buttonSimilar->setMaximumWidth(60);
	//m_buttonSimilar->setMaximumHeight(40);

	//////////////
	/*QFrame *vLine = new QFrame();
	vLine->setFrameStyle(QFrame::VLine | QFrame::Raised);
	vLine->setMaximumWidth(1);
	vLine->setMinimumWidth(1);
	QFrame *vLine2 = new QFrame();
	vLine2->setFrameStyle(QFrame::VLine | QFrame::Raised);
	vLine2->setMaximumWidth(1);
	vLine2->setMinimumWidth(1);*/

	QWidget *mainWidget = new QWidget();
	
	hLayout1->setMargin(0);
	hLayout1->setSpacing(0);
	//hLayout1->addWidget(vLine);
	hLayout1->addWidget(mainWidget);
	//hLayout1->addWidget(vLine2);

	//////////
	
	QFrame *hLine = new QFrame();
	hLine->setFrameStyle(QFrame::HLine | QFrame::Raised);
	hLine->setMaximumHeight(1);
	hLine->setMinimumHeight(1);
	
	vLayout1->setMargin(0);
	vLayout1->setSpacing(0);
	vLayout1->addLayout(hLayout1);
	vLayout1->addWidget(hLine);

	this->setLayout(vLayout1);

	////////
	
	/*QFrame *vLine3 = new QFrame();
	vLine3->setFrameStyle(QFrame::VLine | QFrame::Raised);
	vLine3->setMaximumWidth(1);
	vLine3->setMinimumWidth(1);
	QFrame *vLine4 = new QFrame();
	vLine4->setFrameStyle(QFrame::VLine | QFrame::Raised);
	vLine4->setMaximumWidth(1);
	vLine4->setMinimumWidth(1);*/

	mainWidget->setLayout(hLayout2);
	hLayout2->setMargin(0);
	hLayout2->setSpacing(0);

	hLayout2->addWidget(m_labelRank);
	//hLayout2->addWidget(vLine3);
	hLayout2->addWidget(m_labelIcon);
	//hLayout2->addWidget(vLine4);
	hLayout2->addWidget(m_waitingWidget);

	//////

	m_waitingWidget->setLayout(vLayout2);
	vLayout2->addLayout(hLayout3);
	vLayout2->addWidget(label5);
	vLayout2->setMargin(0);
	vLayout2->setSpacing(0);

	/////
	/*QFrame *vLine5 = new QFrame();
	vLine5->setFrameStyle(QFrame::VLine | QFrame::Raised);
	vLine5->setMaximumWidth(1);
	vLine5->setMinimumWidth(1);
	QFrame *vLine6 = new QFrame();
	vLine6->setFrameStyle(QFrame::VLine | QFrame::Raised);
	vLine6->setMaximumWidth(1);
	vLine6->setMinimumWidth(1);
	QFrame *vLine7 = new QFrame();
	vLine7->setFrameStyle(QFrame::VLine | QFrame::Raised);
	vLine7->setMaximumWidth(1);
	vLine7->setMinimumWidth(1);*/

	hLayout3->setMargin(0);
	hLayout3->setSpacing(0);
	hLayout3->addWidget(m_labelTitleArtist);
	//hLayout3->addWidget(vLine5);
	hLayout3->addWidget(m_confidenceListWidget);
	//hLayout3->addWidget(vLine6);
	hLayout3->addWidget(label4);
	//hLayout3->addWidget(vLine7);
	hLayout3->addWidget(m_buttonPrev);
	hLayout3->addWidget(m_buttonSimilar);

	connect(m_buttonSimilar, SIGNAL(clicked()), this, SLOT(displayCriteria()));

}

void ListResultGeneralItemWidget::setTitleAndAuthorName(QString author,QString title){
	m_labelTitleArtist->setText(author+" - \""+title+"\"");	
}

void ListResultGeneralItemWidget::setRank(int rank){
	m_labelRank->setText(QString().setNum(rank));
}

void ListResultGeneralItemWidget::setType(int type){
	QString pixmapName;
	switch(type){
		case 0:  
			pixmapName.append(":icons/musicIcon.png");
			break;
		case 1: 
			pixmapName.append(":icons/speechIcon.png");
			break;

		default: 
			break;
	}
	m_labelIcon->setPixmap(QPixmap(pixmapName));
}

void ListResultGeneralItemWidget::addConfidence(int confidence, QString confidenceName){
	m_confidenceListWidget->addConfidence(confidence,confidenceName);
}

void ListResultGeneralItemWidget::displayCriteria(){
	m_criteriaDialog = new CriteriaDialog();
	m_criteriaDialog->addCriteria("criteria 1");
	m_criteriaDialog->addCriteria("criteria 2");
	m_criteriaDialog->addCriteria("criteria 3");
	m_criteriaDialog->setLocation(1000,200);
	m_criteriaDialog->setOpacity(0.9);
	if(m_criteriaDialog->exec()){
		 m_waitingWidget->setAnimation(true);
	}
	delete m_criteriaDialog;
}