annotate widgets/MultiPaneLayerContainer.cpp @ 68:77e1fa5497e7

MultiPaneLayerContainer (manage several panes in the layer list) is added
author benoitrigolleau
date Wed, 13 Jun 2007 09:35:02 +0000
parents
children c70c6b99d871
rev   line source
benoitrigolleau@68 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
benoitrigolleau@68 2
benoitrigolleau@68 3 /*
benoitrigolleau@68 4 Sound Access
benoitrigolleau@68 5 EASAIER client application.
benoitrigolleau@68 6 Silogic 2007. Benoit Rigolleau.
benoitrigolleau@68 7
benoitrigolleau@68 8 This program is free software; you can redistribute it and/or
benoitrigolleau@68 9 modify it under the terms of the GNU General Public License as
benoitrigolleau@68 10 published by the Free Software Foundation; either version 2 of the
benoitrigolleau@68 11 License, or (at your option) any later version. See the file
benoitrigolleau@68 12 COPYING included with this distribution for more information.
benoitrigolleau@68 13 */
benoitrigolleau@68 14
benoitrigolleau@68 15 #include "MultiPaneLayerContainer.h"
benoitrigolleau@68 16
benoitrigolleau@68 17 MultiPaneLayerContainer::MultiPaneLayerContainer(QWidget *parent): QWidget(parent){
benoitrigolleau@68 18 m_map = new QMap<Pane*,PropertyStack*>();
benoitrigolleau@68 19 m_layout = new QVBoxLayout;
benoitrigolleau@68 20 this->setLayout(m_layout);
benoitrigolleau@68 21 }
benoitrigolleau@68 22
benoitrigolleau@68 23 MultiPaneLayerContainer::~MultiPaneLayerContainer(){
benoitrigolleau@68 24
benoitrigolleau@68 25 }
benoitrigolleau@68 26
benoitrigolleau@68 27 void MultiPaneLayerContainer::addPane(Pane *pane){
benoitrigolleau@68 28 PropertyStack *propertyStack = new PropertyStack(0, pane);
benoitrigolleau@68 29 connect(propertyStack, SIGNAL(removeSelectedItem()), this, SIGNAL(removeSelectedItem()));
benoitrigolleau@68 30 m_map->insert(pane,propertyStack);
benoitrigolleau@68 31 m_layout->addWidget(propertyStack);
benoitrigolleau@68 32 m_layout->setMargin(0);
benoitrigolleau@68 33 m_layout->setSpacing(0);
benoitrigolleau@68 34 }
benoitrigolleau@68 35
benoitrigolleau@68 36 void MultiPaneLayerContainer::removePane(Pane *pane){
benoitrigolleau@68 37 m_layout->removeWidget(m_map->value(pane));
benoitrigolleau@68 38 delete m_map->value(pane);
benoitrigolleau@68 39 m_map->remove(pane);
benoitrigolleau@68 40
benoitrigolleau@68 41 }
benoitrigolleau@68 42
benoitrigolleau@68 43
benoitrigolleau@68 44 //////////////////SLOTS ///////////////////////
benoitrigolleau@68 45
benoitrigolleau@68 46 void MultiPaneLayerContainer::currentPaneChanged(Pane *pane){
benoitrigolleau@68 47
benoitrigolleau@68 48 QMap<Pane*,PropertyStack*>::Iterator it;
benoitrigolleau@68 49
benoitrigolleau@68 50 for (it = m_map->begin(); it != m_map->end(); ++it ) {
benoitrigolleau@68 51 m_map->value(it.key())->setVisible(false);
benoitrigolleau@68 52 }
benoitrigolleau@68 53 if(m_map->contains(pane)){
benoitrigolleau@68 54 m_map->value(pane)->setVisible(true);
benoitrigolleau@68 55 }
benoitrigolleau@68 56 }
benoitrigolleau@68 57
benoitrigolleau@68 58 void MultiPaneLayerContainer::paneAdded(Pane *pane){
benoitrigolleau@68 59 addPane(pane);
benoitrigolleau@68 60 }
benoitrigolleau@68 61
benoitrigolleau@68 62 void MultiPaneLayerContainer::paneRemoved(Pane *pane){
benoitrigolleau@68 63 removePane(pane);
benoitrigolleau@68 64 }
benoitrigolleau@68 65