view widgets/ItemLayerList.cpp @ 57:4f3e6a09239a

(none)
author benoitrigolleau
date Wed, 23 May 2007 15:11:52 +0000
parents 81921835ddf1
children b3c3a5fa185f
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 "ItemLayerList.h"

#include "data/model/LayerItemModel.h"

#include <QWidget>

#include <QApplication>
#include <QLabel>

ItemLayerList::ItemLayerList(QWidget *parent) : GenericItemList(parent){
	setAcceptDrops(true);

	/* Init all variables*/
	labelIcon = new QLabel;
	labelName = new QLabel;
	checkBox1 = new QCheckBox;
	checkBox2 = new QCheckBox;
	layoutMain = new QHBoxLayout;

	/* set the correct widget parameters*/
	labelIcon->setMaximumSize(25,25);
	//labelIcon->setPixmap(QIcon(":icons/layerViewer_btn_config.png").pixmap(20));

	labelName->setMaximumHeight(25);
	//labelName->setText("ljdh lksdf hl");

	checkBox1->setLayoutDirection(Qt::RightToLeft);
	checkBox1->setMaximumSize(30,30);
	//checkBox1->setText("");
	checkBox1->setAutoFillBackground(true);
	//QPalette palette;
	//palette.setColor(QPalette::Button,QColor ( 100, 60, 20));
	//checkBox1->setPalette(palette);

	checkBox2->setMaximumSize(20,30);	

	layoutMain->setSpacing(5);
	layoutMain->setMargin(0);

	this->setMaximumHeight(30);
	this->setMinimumHeight(30);
	this->setFrameStyle(QFrame::Panel | QFrame::Raised);
	this->setLineWidth(1);
	
	/* build the interface*/
	layoutMain->addWidget(checkBox1);
	layoutMain->addWidget(checkBox2);
	layoutMain->addWidget(labelIcon);
	layoutMain->addWidget(labelName);

	/*add the main layout in this widget*/
	this->setLayout(layoutMain);

	connect(this, SIGNAL(doubleClicked()), this, SLOT(openPropertyBox()));
}

void ItemLayerList::setIcon(QString &icon){
	labelIcon->setPixmap(QIcon(icon).pixmap(25));
}

void ItemLayerList::setName(QString &name){
	labelName->setText(name);
}

void ItemLayerList::setColor(QColor &color){
	QPalette palette;
	palette.setColor(QPalette::Button,color);
	checkBox1->setPalette(palette);
}

void ItemLayerList::changeCheckBox1State(bool state){
	checkBox1->setChecked(state);
}

void ItemLayerList::changeCheckBox2State(bool state){
	checkBox2->setChecked(state);
}

void ItemLayerList::setPropertyBox(PropertyBox *box){
	m_propertyBox = box;
	if(m_propertyBox!=0){
		connect(checkBox1,SIGNAL(stateChanged(int)),m_propertyBox,SLOT(layerVisibilityChanged(int)));
		connect(m_propertyBox, SIGNAL(showLayer(bool)), this, SLOT(showLayer(bool)));
		if(m_propertyBox->showButton() == 0){
			checkBox1->setEnabled(false);
		}
		if(m_propertyBox->playButton() ==0 ){
			checkBox2->setEnabled(false);
		}
	}

	//connect();
}

void ItemLayerList::configAction(){
	if(m_propertyBox!=0){
		m_propertyBox->close();
		m_propertyBox->show();
	}
}


/*********SLOTS ************/
void ItemLayerList::openPropertyBox(){
	ItemLayerList::configAction();
}

void ItemLayerList::showLayer(bool value){
	changeCheckBox1State(value);
	
}