annotate widgets/MultiPaneLayerContainer.cpp @ 96:c70c6b99d871

inform the PaneStack that a new current layer is selected in the PropertyStack
author lbajardsilogic
date Tue, 10 Jul 2007 10:08:42 +0000
parents 77e1fa5497e7
children fa034c6ae8bf
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()));
lbajardsilogic@96 30 connect(propertyStack, SIGNAL(propertyContainerSelected(View *, PropertyContainer *)), this, SIGNAL(propertyContainerSelected(View *, PropertyContainer *)));
benoitrigolleau@68 31 m_map->insert(pane,propertyStack);
benoitrigolleau@68 32 m_layout->addWidget(propertyStack);
benoitrigolleau@68 33 m_layout->setMargin(0);
benoitrigolleau@68 34 m_layout->setSpacing(0);
benoitrigolleau@68 35 }
benoitrigolleau@68 36
benoitrigolleau@68 37 void MultiPaneLayerContainer::removePane(Pane *pane){
benoitrigolleau@68 38 m_layout->removeWidget(m_map->value(pane));
benoitrigolleau@68 39 delete m_map->value(pane);
benoitrigolleau@68 40 m_map->remove(pane);
benoitrigolleau@68 41
benoitrigolleau@68 42 }
benoitrigolleau@68 43
benoitrigolleau@68 44
benoitrigolleau@68 45 //////////////////SLOTS ///////////////////////
benoitrigolleau@68 46
benoitrigolleau@68 47 void MultiPaneLayerContainer::currentPaneChanged(Pane *pane){
benoitrigolleau@68 48
benoitrigolleau@68 49 QMap<Pane*,PropertyStack*>::Iterator it;
benoitrigolleau@68 50
benoitrigolleau@68 51 for (it = m_map->begin(); it != m_map->end(); ++it ) {
benoitrigolleau@68 52 m_map->value(it.key())->setVisible(false);
benoitrigolleau@68 53 }
benoitrigolleau@68 54 if(m_map->contains(pane)){
benoitrigolleau@68 55 m_map->value(pane)->setVisible(true);
benoitrigolleau@68 56 }
benoitrigolleau@68 57 }
benoitrigolleau@68 58
benoitrigolleau@68 59 void MultiPaneLayerContainer::paneAdded(Pane *pane){
benoitrigolleau@68 60 addPane(pane);
benoitrigolleau@68 61 }
benoitrigolleau@68 62
benoitrigolleau@68 63 void MultiPaneLayerContainer::paneRemoved(Pane *pane){
benoitrigolleau@68 64 removePane(pane);
benoitrigolleau@68 65 }
benoitrigolleau@68 66