annotate widgets/MultiPaneLayerContainer.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents fa034c6ae8bf
children
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 *)));
lbajardsilogic@206 31 connect(propertyStack, SIGNAL(contextHelpChanged(const QString &)), this, SIGNAL(contextHelpChanged(const QString &)));
benoitrigolleau@68 32 m_map->insert(pane,propertyStack);
benoitrigolleau@68 33 m_layout->addWidget(propertyStack);
benoitrigolleau@68 34 m_layout->setMargin(0);
benoitrigolleau@68 35 m_layout->setSpacing(0);
benoitrigolleau@68 36 }
benoitrigolleau@68 37
benoitrigolleau@68 38 void MultiPaneLayerContainer::removePane(Pane *pane){
benoitrigolleau@68 39 m_layout->removeWidget(m_map->value(pane));
benoitrigolleau@68 40 delete m_map->value(pane);
benoitrigolleau@68 41 m_map->remove(pane);
benoitrigolleau@68 42
benoitrigolleau@68 43 }
benoitrigolleau@68 44
benoitrigolleau@68 45
benoitrigolleau@68 46 //////////////////SLOTS ///////////////////////
benoitrigolleau@68 47
benoitrigolleau@68 48 void MultiPaneLayerContainer::currentPaneChanged(Pane *pane){
benoitrigolleau@68 49
benoitrigolleau@68 50 QMap<Pane*,PropertyStack*>::Iterator it;
benoitrigolleau@68 51
benoitrigolleau@68 52 for (it = m_map->begin(); it != m_map->end(); ++it ) {
benoitrigolleau@68 53 m_map->value(it.key())->setVisible(false);
benoitrigolleau@68 54 }
benoitrigolleau@68 55 if(m_map->contains(pane)){
benoitrigolleau@68 56 m_map->value(pane)->setVisible(true);
benoitrigolleau@68 57 }
benoitrigolleau@68 58 }
benoitrigolleau@68 59
benoitrigolleau@68 60 void MultiPaneLayerContainer::paneAdded(Pane *pane){
benoitrigolleau@68 61 addPane(pane);
benoitrigolleau@68 62 }
benoitrigolleau@68 63
benoitrigolleau@68 64 void MultiPaneLayerContainer::paneRemoved(Pane *pane){
benoitrigolleau@68 65 removePane(pane);
benoitrigolleau@68 66 }
benoitrigolleau@68 67