changeset 73:a5d941805d45

widgets for the audio filter list
author benoitrigolleau
date Wed, 13 Jun 2007 14:07:29 +0000
parents 9e1a46a72cde
children f278467d5c46
files widgets/AudioFilterViewerWidget.cpp widgets/AudioFilterViewerWidget.h widgets/EasaierStyle.cpp widgets/ItemAudioFilterList.cpp widgets/ItemAudioFilterList.h widgets/svwidgets.vcproj widgets/widgets.pro
diffstat 7 files changed, 400 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/AudioFilterViewerWidget.cpp	Wed Jun 13 14:07:29 2007 +0000
@@ -0,0 +1,92 @@
+/* -*- 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 "AudioFilterViewerWidget.h"
+#include <iostream>
+
+AudioFilterViewerWidget::AudioFilterViewerWidget(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_layoutACTION = new QHBoxLayout;
+	m_layoutMAIN = new QVBoxLayout;
+	
+	m_widgetLIST = new ItemContainer();
+	
+	/* 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"));
+	
+	//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->addWidget(m_widgetLIST);
+	m_layoutMAIN->addLayout(m_layoutACTION);
+
+	/* 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 AudioFilterViewerWidget::addItem(ItemAudioFilterList *item){
+		m_widgetLIST->addItem(item);
+}
+
+void AudioFilterViewerWidget::removeAllItems(){
+	m_widgetLIST->removeAllItems();
+}
+
+void AudioFilterViewerWidget::setCurrentIndex(int i){
+
+}
+
+/************** SLOTS ********/
+void AudioFilterViewerWidget::newItemSelected(int i){
+	emit currentChanged(i);
+}
+
+void AudioFilterViewerWidget::removeSelectedItemRequested(){
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/AudioFilterViewerWidget.h	Wed Jun 13 14:07:29 2007 +0000
@@ -0,0 +1,58 @@
+
+/* -*- 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.
+*/
+
+#ifndef _AUDIO_FILTER_VIEWER_WIDGET_H
+#define _AUDIO_FILTER_WIDGET_H
+
+#include "ItemContainer.h"
+#include "ItemAudioFilterList.h"
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QLabel>
+
+
+
+class AudioFilterViewerWidget : public QFrame{
+	Q_OBJECT	
+
+public:
+	AudioFilterViewerWidget(QWidget *parent=0);
+	void addItem(ItemAudioFilterList *item);
+	void removeAllItems();
+	void setCurrentIndex(int i);
+signals :
+	void currentChanged(int i);
+
+private:
+	QPushButton *m_pushButtonCONFIG;
+	QPushButton *m_pushButtonUP;
+	QPushButton *m_pushButtonDOWN;
+	QPushButton *m_pushButtonREMOVE;
+	QPushButton *m_pushButtonNEW;
+
+	QHBoxLayout *m_layoutACTION;
+	QVBoxLayout *m_layoutMAIN;
+
+	ItemContainer *m_widgetLIST;
+
+protected slots:
+	void newItemSelected(int i);
+	virtual void removeSelectedItemRequested();
+
+};
+
+#endif
+
--- a/widgets/EasaierStyle.cpp	Wed Jun 13 13:55:31 2007 +0000
+++ b/widgets/EasaierStyle.cpp	Wed Jun 13 14:07:29 2007 +0000
@@ -22,7 +22,7 @@
     palette.setBrush(QPalette::Disabled, QPalette::Link, QColor(QRgb(0xff0000ee)));
     palette.setBrush(QPalette::Disabled, QPalette::LinkVisited, QColor(QRgb(0xff52188b)));
     palette.setBrush(QPalette::Active, QPalette::WindowText, QColor(QRgb(0xff000000)));
-    palette.setBrush(QPalette::Active, QPalette::Button, QColor(QRgb(0xffdddfe4)));  //dddfe4
+    palette.setBrush(QPalette::Active, QPalette::Button, QColor(QRgb(0xffdddfe4)));
     palette.setBrush(QPalette::Active, QPalette::Light, QColor(QRgb(0xffffffff)));
     palette.setBrush(QPalette::Active, QPalette::Midlight, QColor(QRgb(0xffffffff)));
     palette.setBrush(QPalette::Active, QPalette::Dark, QColor(QRgb(0xff555555)));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/ItemAudioFilterList.cpp	Wed Jun 13 14:07:29 2007 +0000
@@ -0,0 +1,125 @@
+
+/* -*- 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 "ItemAudioFilterList.h"
+
+#include "data/model/LayerItemModel.h"
+#include "layer/Layer.h"
+#include "base/PlayParameters.h"
+
+#include <QWidget>
+
+#include <QApplication>
+#include <QLabel>
+
+
+ItemAudioFilterList::ItemAudioFilterList(QWidget *parent) : GenericItemList(parent){
+	setAcceptDrops(true);
+
+	/* Init all variables*/
+	m_labelIcon = new QLabel;
+	m_labelName = new QLabel;
+	m_checkBoxPlay = new QCheckBox;
+	m_layoutMain = new QHBoxLayout;
+
+	/* set the correct widget parameters*/
+	m_labelIcon->setMaximumSize(25,25);
+	//labelIcon->setPixmap(QIcon(":icons/layerViewer_btn_config.png").pixmap(20));
+
+	m_labelName->setMaximumHeight(25);
+	//labelName->setText("ljdh lksdf hl");
+
+	m_checkBoxPlay->setMaximumSize(30,30);	
+
+	m_layoutMain->setSpacing(5);
+	m_layoutMain->setMargin(0);
+
+	this->setMaximumHeight(30);
+	this->setMinimumHeight(30);
+	this->setFrameStyle(QFrame::Panel | QFrame::Raised);
+	this->setLineWidth(1);
+	
+	/* build the interface*/
+	m_layoutMain->addWidget(m_checkBoxPlay);
+	m_layoutMain->addWidget(m_labelIcon);
+	m_layoutMain->addWidget(m_labelName);
+
+	/*add the main layout in this widget*/
+	this->setLayout(m_layoutMain);
+
+	connect(this, SIGNAL(doubleClicked()), this, SLOT(openPropertyBox()));
+}
+
+void ItemAudioFilterList::setIcon(QString &icon){
+	m_labelIcon->setPixmap(QIcon(icon).pixmap(25));
+}
+
+void ItemAudioFilterList::setName(QString &name){
+	m_labelName->setText(name);
+}
+
+
+void ItemAudioFilterList::changeCheckBoxPlayState(bool state){
+	m_checkBoxPlay->setChecked(state);
+}
+
+void ItemAudioFilterList::setPropertyBox(PropertyBox *box){
+	m_propertyBox = box;
+	if(m_propertyBox!=0){
+		
+		m_container = m_propertyBox->container();
+
+		
+		updateCheckboxs();
+		connect(m_propertyBox, SIGNAL(showLayer(bool)), this, SLOT(showLayer(bool)));
+	}
+
+	//connect();
+}
+
+void ItemAudioFilterList::configAction(){
+	if(m_propertyBox!=0){
+		m_propertyBox->close();
+		m_propertyBox->show();
+	}
+}
+
+
+/*********SLOTS ************/
+void ItemAudioFilterList::openPropertyBox(){
+	ItemAudioFilterList::configAction();
+}
+
+void ItemAudioFilterList::updateCheckboxs(){
+
+	PlayParameters *params = m_container->getPlayParameters();
+
+	if(params){
+		m_checkBoxPlay->setEnabled(true);
+        m_checkBoxPlay->setChecked(!params->isPlayMuted());
+
+		connect(params, SIGNAL(playAudibleChanged(bool)),m_checkBoxPlay, SLOT(setState(bool)));
+		connect(m_checkBoxPlay, SIGNAL(stateChanged(int)),params, SLOT(setPlayAudible(int)));
+	}else{
+		m_checkBoxPlay->setEnabled(false);
+	}
+}
+
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/widgets/ItemAudioFilterList.h	Wed Jun 13 14:07:29 2007 +0000
@@ -0,0 +1,52 @@
+/* -*- 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.
+*/
+
+#ifndef _ITEM_AUDIO_FILTER_LIST_H
+#define _ITEM_AUDIO_FILTER_LIST_H
+
+#include "GenericItemList.h"
+#include "PropertyBox.h"
+
+#include <QHBoxLayout>
+#include <QLabel>
+#include <QCheckBox>
+#include <QWidget>
+
+
+class ItemAudioFilterList : public GenericItemList{
+	Q_OBJECT	
+
+public:
+	ItemAudioFilterList(QWidget *parent=0);
+	void setIcon(QString &icon);
+	void setName(QString &name);
+	void changeCheckBoxPlayState(bool state);
+	void setPropertyBox(PropertyBox *box);
+	virtual void configAction();
+
+private:
+	QLabel *m_labelIcon;
+	QLabel *m_labelName;
+	QCheckBox *m_checkBoxPlay;
+	QHBoxLayout *m_layoutMain;
+	PropertyBox *m_propertyBox;
+	PropertyContainer *m_container;
+
+private slots :
+	void openPropertyBox();
+	void updateCheckboxs();
+
+};
+
+#endif
--- a/widgets/svwidgets.vcproj	Wed Jun 13 13:55:31 2007 +0000
+++ b/widgets/svwidgets.vcproj	Wed Jun 13 14:07:29 2007 +0000
@@ -182,6 +182,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\AudioFilterViewerWidget.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\ConnectionSettings.cpp"
 				>
 			</File>
@@ -210,6 +214,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\ItemAudioFilterList.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\ItemContainer.cpp"
 				>
 			</File>
@@ -374,6 +382,32 @@
 					</FileConfiguration>
 				</File>
 				<File
+					RelativePath=".\AudioFilterViewerWidget.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath=".\ConnectionSettings.h"
 					>
 					<FileConfiguration
@@ -534,6 +568,32 @@
 					</FileConfiguration>
 				</File>
 				<File
+					RelativePath=".\ItemAudioFilterList.h"
+					>
+					<FileConfiguration
+						Name="Release|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DNDEBUG -DBUILD_RELEASE -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+					<FileConfiguration
+						Name="Debug|Win32"
+						>
+						<Tool
+							Name="VCCustomBuildTool"
+							Description="MOC $(InputFileName)"
+							CommandLine="$(QTDIR)\bin\moc.exe -DBUILD_DEBUG -DUSE_VC -D_WINDOWS -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DHAVE_BZ2 -DHAVE_PORTAUDIO -DHAVE_PORTAUDIO_V18 -DHAVE_OGGZ -DHAVE_FISHSOUND -DHAVE_FFTW3F -DHAVE_VAMP -DHAVE_VAMP_HOSTSDK -DHAVE_SNDFILE -DHAVE_SAMPLERATE -DQT_THREAD_SUPPORT -DQT_DLL -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtCore&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtGui&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include\QtXml&quot; -I &quot;$(QTDIR)\include&quot; -I &quot;.&quot; -I &quot;..&quot; -I &quot;$(QTDIR)\include\ActiveQt&quot; -I &quot;tmp_moc&quot; -I &quot;.&quot; -I&quot;$(QTDIR)\mkspecs\win32-msvc2005&quot; $(InputPath) -o tmp_moc\moc_$(InputName).cpp"
+							AdditionalDependencies="$(QTDIR)\bin\moc.exe"
+							Outputs="tmp_moc\moc_$(InputName).cpp"
+						/>
+					</FileConfiguration>
+				</File>
+				<File
 					RelativePath=".\ItemContainer.h"
 					>
 					<FileConfiguration
@@ -1191,6 +1251,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\tmp_moc\moc_AudioFilterViewerWidget.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\tmp_moc\moc_ConnectionSettings.cpp"
 				>
 			</File>
@@ -1219,6 +1283,10 @@
 				>
 			</File>
 			<File
+				RelativePath=".\tmp_moc\moc_ItemAudioFilterList.cpp"
+				>
+			</File>
+			<File
 				RelativePath=".\tmp_moc\moc_ItemContainer.cpp"
 				>
 			</File>
--- a/widgets/widgets.pro	Wed Jun 13 13:55:31 2007 +0000
+++ b/widgets/widgets.pro	Wed Jun 13 14:07:29 2007 +0000
@@ -44,6 +44,8 @@
            ConnectionSettings.h \
            ConnectionStatus.h \
            MultiPaneLayerContainer.h \
+           AudioFilterViewerWidget.h \ 
+           ItemAudioFilterList.h  \
            EasaierStyle.h \
            GenericItemList.h \
            LayerViewerWidget.h \
@@ -78,7 +80,8 @@
            WidgetGallery.cpp \
            ConnectionSettings.cpp \
            ConnectionStatus.cpp \
-           MultiPaneLayerContainer.cpp \
+           AudioFilterViewerWidget.cpp \ 
+           ItemAudioFilterList.cpp  \
            EasaierStyle.cpp \
            GenericItemList.cpp \
            LayerViewerWidget.cpp \