view widgets/LayerViewerWidget.cpp @ 56:81921835ddf1

first layer list pre-version
author benoitrigolleau
date Wed, 23 May 2007 13:09:19 +0000
parents
children 57c85a9d9b4a
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 "data/model/LayerItemModel.h"
#include "LayerViewerWidget.h"
#include <iostream>

LayerViewerWidget::LayerViewerWidget(QWidget *parent) : QFrame(parent){
	/* Init all variables*/
	m_pushButtonCONFIG = new QPushButton;
	m_pushButtonUP = new QPushButton;
	m_pushButtonDOWN = new QPushButton;
	m_pushButtonREMOVE = new QPushButton;
	m_pushButtonNEW = new QPushButton;

	m_layoutOPACITY = new QHBoxLayout;
	m_layoutACTION = new QHBoxLayout;
	m_layoutMAIN = new QVBoxLayout;
	
	m_labelOPACITY = new QLabel(tr("Opacity : "));
	m_widgetLIST = new ItemContainer();

	m_sliderOPACITY = new QSlider;
	m_spinBoxOPACITY = new QSpinBox;
	
	/* set the correct widget parameters*/
	m_pushButtonCONFIG->setMaximumSize(20,20);
	m_pushButtonCONFIG->setIcon(QIcon(":icons/layerViewer_btn_config.png"));
	m_pushButtonUP->setMaximumSize(20,20);
	m_pushButtonUP->setIcon(QIcon(":icons/layerViewer_btn_up.png"));
	m_pushButtonDOWN->setMaximumSize(20,20);
	m_pushButtonDOWN->setIcon(QIcon(":icons/layerViewer_btn_down.png"));
	m_pushButtonREMOVE->setMaximumSize(20,20);
	m_pushButtonREMOVE->setIcon(QIcon(":icons/layerViewer_btn_remove.png"));
	m_pushButtonNEW->setMaximumSize(20,20);
	m_pushButtonNEW->setIcon(QIcon(":icons/layerViewer_btn_new.png"));

	m_sliderOPACITY->setRange(0,100);
	m_sliderOPACITY->setMaximumWidth(100);
	m_sliderOPACITY->setMinimumWidth(50);
	m_sliderOPACITY->setOrientation(Qt::Horizontal);
	m_sliderOPACITY->setTickInterval(10);
	m_sliderOPACITY->setTickPosition(QSlider::TicksBelow);

	m_spinBoxOPACITY->setMaximumWidth(50);
	m_spinBoxOPACITY->setRange(0,100);
	

	
	/*LayerItemModel layerItemModel1(QString("title1"), QString("icon1"), QColor() ,true, false);
	LayerItemModel layerItemModel2(QString("title2"), QString("icon2"), QColor() ,true, false);
	
	QVariant var1,var2;
	var1.setValue(layerItemModel1);
	var2.setValue(layerItemModel2);

	m_widgetLIST->setItemDelegate(new LayerDelegate());
	QListWidgetItem *item1 = new QListWidgetItem("1",m_widgetLIST);
	item1->setData(Qt::UserRole, var1);
	
	QListWidgetItem *item2 = new QListWidgetItem("2",m_widgetLIST);
	item2->setData(Qt::UserRole, var2);

	m_widgetLIST->openPersistentEditor(item1);
	m_widgetLIST->openPersistentEditor(item2);*/

	/* build the interface*/
	
	//the opasity one:
	m_layoutOPACITY->addStretch();
	m_layoutOPACITY->addWidget(m_labelOPACITY);
	m_layoutOPACITY->addWidget(m_spinBoxOPACITY);
	m_layoutOPACITY->addWidget(m_sliderOPACITY);
	
	//the action one:
	m_layoutACTION->addWidget(m_pushButtonCONFIG);
	m_layoutACTION->addStretch();
	m_layoutACTION->addWidget(m_pushButtonUP);
	m_layoutACTION->addWidget(m_pushButtonDOWN);
	m_layoutACTION->addWidget(m_pushButtonNEW);
	m_layoutACTION->addSpacing(10);
	m_layoutACTION->addWidget(m_pushButtonREMOVE);

	//the main one:
	m_layoutMAIN->addLayout(m_layoutOPACITY);
	m_layoutMAIN->addWidget(m_widgetLIST);
	m_layoutMAIN->addLayout(m_layoutACTION);
	
	/* connect sliderOPACITY and spinBoxOPACITY*/
	QObject::connect(m_sliderOPACITY,SIGNAL(valueChanged(int)),m_spinBoxOPACITY,SLOT(setValue(int)));
	QObject::connect(m_spinBoxOPACITY,SIGNAL(valueChanged(int)),m_sliderOPACITY,SLOT(setValue(int)));

	/* connect pushButtons*/
	connect(m_pushButtonUP,SIGNAL(clicked()),m_widgetLIST,SLOT(upCurrentItem()));
	connect(m_pushButtonDOWN,SIGNAL(clicked()),m_widgetLIST,SLOT(downCurrentItem()));
	connect(m_pushButtonCONFIG,SIGNAL(clicked()),m_widgetLIST,SLOT(openConfigBoxForCurrentItem()));
	connect(m_pushButtonREMOVE,SIGNAL(clicked()),this,SLOT(removeSelectedItemRequested()));
		
	/*connect the list of items */
	connect(m_widgetLIST,SIGNAL(currentChanged(int)),this,SLOT(newItemSelected(int)));


	/*add the main layout in this widget*/
	this->setLayout(m_layoutMAIN);
	this->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
	this->setLineWidth(2);
}

void LayerViewerWidget::addItem(ItemLayerList *item){
		m_widgetLIST->addItem(item);
}

void LayerViewerWidget::removeAllItems(){
	m_widgetLIST->removeAllItems();
}

void LayerViewerWidget::setCurrentIndex(int i){

}

/************** SLOTS ********/
void LayerViewerWidget::newItemSelected(int i){
	emit currentChanged(i);
}

void LayerViewerWidget::removeSelectedItemRequested(){
  std::cerr << "removeSelectedItemRequested" << std::endl;
}