benoitrigolleau@68: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ benoitrigolleau@68: benoitrigolleau@68: /* benoitrigolleau@68: Sound Access benoitrigolleau@68: EASAIER client application. benoitrigolleau@68: Silogic 2007. Benoit Rigolleau. benoitrigolleau@68: benoitrigolleau@68: This program is free software; you can redistribute it and/or benoitrigolleau@68: modify it under the terms of the GNU General Public License as benoitrigolleau@68: published by the Free Software Foundation; either version 2 of the benoitrigolleau@68: License, or (at your option) any later version. See the file benoitrigolleau@68: COPYING included with this distribution for more information. benoitrigolleau@68: */ benoitrigolleau@68: benoitrigolleau@68: #include "MultiPaneLayerContainer.h" benoitrigolleau@68: benoitrigolleau@68: MultiPaneLayerContainer::MultiPaneLayerContainer(QWidget *parent): QWidget(parent){ benoitrigolleau@68: m_map = new QMap(); benoitrigolleau@68: m_layout = new QVBoxLayout; benoitrigolleau@68: this->setLayout(m_layout); benoitrigolleau@68: } benoitrigolleau@68: benoitrigolleau@68: MultiPaneLayerContainer::~MultiPaneLayerContainer(){ benoitrigolleau@68: benoitrigolleau@68: } benoitrigolleau@68: benoitrigolleau@68: void MultiPaneLayerContainer::addPane(Pane *pane){ benoitrigolleau@68: PropertyStack *propertyStack = new PropertyStack(0, pane); benoitrigolleau@68: connect(propertyStack, SIGNAL(removeSelectedItem()), this, SIGNAL(removeSelectedItem())); lbajardsilogic@96: connect(propertyStack, SIGNAL(propertyContainerSelected(View *, PropertyContainer *)), this, SIGNAL(propertyContainerSelected(View *, PropertyContainer *))); lbajardsilogic@206: connect(propertyStack, SIGNAL(contextHelpChanged(const QString &)), this, SIGNAL(contextHelpChanged(const QString &))); benoitrigolleau@68: m_map->insert(pane,propertyStack); benoitrigolleau@68: m_layout->addWidget(propertyStack); benoitrigolleau@68: m_layout->setMargin(0); benoitrigolleau@68: m_layout->setSpacing(0); benoitrigolleau@68: } benoitrigolleau@68: benoitrigolleau@68: void MultiPaneLayerContainer::removePane(Pane *pane){ benoitrigolleau@68: m_layout->removeWidget(m_map->value(pane)); benoitrigolleau@68: delete m_map->value(pane); benoitrigolleau@68: m_map->remove(pane); benoitrigolleau@68: benoitrigolleau@68: } benoitrigolleau@68: benoitrigolleau@68: benoitrigolleau@68: //////////////////SLOTS /////////////////////// benoitrigolleau@68: benoitrigolleau@68: void MultiPaneLayerContainer::currentPaneChanged(Pane *pane){ benoitrigolleau@68: benoitrigolleau@68: QMap::Iterator it; benoitrigolleau@68: benoitrigolleau@68: for (it = m_map->begin(); it != m_map->end(); ++it ) { benoitrigolleau@68: m_map->value(it.key())->setVisible(false); benoitrigolleau@68: } benoitrigolleau@68: if(m_map->contains(pane)){ benoitrigolleau@68: m_map->value(pane)->setVisible(true); benoitrigolleau@68: } benoitrigolleau@68: } benoitrigolleau@68: benoitrigolleau@68: void MultiPaneLayerContainer::paneAdded(Pane *pane){ benoitrigolleau@68: addPane(pane); benoitrigolleau@68: } benoitrigolleau@68: benoitrigolleau@68: void MultiPaneLayerContainer::paneRemoved(Pane *pane){ benoitrigolleau@68: removePane(pane); benoitrigolleau@68: } benoitrigolleau@68: