lbajardsilogic@7: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@7: lbajardsilogic@7: /* lbajardsilogic@7: Sound Access lbajardsilogic@7: EASAIER client application. lbajardsilogic@7: Silogic 2007. Benoit Rigolleau. lbajardsilogic@7: lbajardsilogic@7: This program is free software; you can redistribute it and/or lbajardsilogic@7: modify it under the terms of the GNU General Public License as lbajardsilogic@7: published by the Free Software Foundation; either version 2 of the lbajardsilogic@7: License, or (at your option) any later version. See the file lbajardsilogic@7: COPYING included with this distribution for more information. lbajardsilogic@7: */ lbajardsilogic@7: lbajardsilogic@7: #include lbajardsilogic@7: #include lbajardsilogic@7: lbajardsilogic@7: #include "AdvancedToolBox.h" lbajardsilogic@7: lbajardsilogic@7: lbajardsilogic@7: /** PrivateWidget implementation*************************/ lbajardsilogic@7: lbajardsilogic@7: PrivateWidget::PrivateWidget(QWidget *parent, const QString &text,QWidget *newWidget){ lbajardsilogic@7: m_closed=false; lbajardsilogic@7: m_layout=0; lbajardsilogic@7: m_button=0; lbajardsilogic@7: if(newWidget!=0){ lbajardsilogic@7: addWidget(text,newWidget); lbajardsilogic@7: } lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void PrivateWidget::addWidget( const QString &text,QWidget *newWidget ){ lbajardsilogic@7: lbajardsilogic@7: if (m_layout!=0){ lbajardsilogic@7: delete m_layout; lbajardsilogic@7: } lbajardsilogic@7: if (m_button!=0){ lbajardsilogic@7: delete m_button; lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: m_layout = new QVBoxLayout; lbajardsilogic@7: m_layout->setMargin(0); lbajardsilogic@7: m_layout->setSpacing(0); benoitrigolleau@159: m_button = new RadialLNFButton(QIcon(), text); lbajardsilogic@7: m_button->setMaximumHeight(m_btnHeight); lbajardsilogic@7: m_button->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed); benoitrigolleau@88: benoitrigolleau@88: QPalette palette; benoitrigolleau@88: palette.setColor(QPalette::Button, palette.color(QPalette::Button).dark(110)); //palette.color(QPalette::Highlight) palette.color(QPalette::Active, QPalette::Base).dark(110) benoitrigolleau@88: m_button->setPalette(palette); benoitrigolleau@88: lbajardsilogic@7: m_layout->addWidget(m_button); lbajardsilogic@7: m_layout->addWidget(newWidget); lbajardsilogic@7: m_widget = newWidget; lbajardsilogic@7: connect(m_button,SIGNAL(clicked()),this,SLOT(changeSate())); lbajardsilogic@7: lbajardsilogic@7: this->setLayout(m_layout); lbajardsilogic@7: refreshButtonIcone(); lbajardsilogic@7: lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void PrivateWidget::refreshButtonIcone(){ lbajardsilogic@7: if(m_closed){ lbajardsilogic@7: m_button->setIcon(QIcon(":icons/right.png")); lbajardsilogic@7: }else{ lbajardsilogic@7: m_button->setIcon(QIcon(":icons/bottom.png")); lbajardsilogic@7: } lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: lbajardsilogic@7: void PrivateWidget::changeSate(){ lbajardsilogic@7: if(&m_widget!=0 ){ lbajardsilogic@7: m_widget->setVisible(m_closed); lbajardsilogic@7: if(!m_closed){ lbajardsilogic@7: this->setMaximumHeight(m_btnHeight); lbajardsilogic@7: } lbajardsilogic@7: else{ lbajardsilogic@7: this->setMaximumHeight(m_widget->maximumHeight() + m_button->maximumHeight()); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: } lbajardsilogic@7: m_closed = !m_closed; lbajardsilogic@7: refreshButtonIcone(); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: /* end PrivateWidget Implementation**********************/ lbajardsilogic@7: lbajardsilogic@7: lbajardsilogic@7: lbajardsilogic@7: lbajardsilogic@7: lbajardsilogic@7: AdvancedToolBox::AdvancedToolBox(QWidget *parent) : QWidget(parent){ lbajardsilogic@7: m_splitter = new QSplitter; lbajardsilogic@7: m_splitter->setOrientation(Qt::Vertical); lbajardsilogic@7: lbajardsilogic@7: QVBoxLayout *layout= new QVBoxLayout; lbajardsilogic@7: layout->setMargin(0); lbajardsilogic@7: layout->setSpacing(0); lbajardsilogic@7: layout->addWidget(m_splitter); lbajardsilogic@7: layout->addStretch(); lbajardsilogic@7: this->setLayout(layout); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void AdvancedToolBox::addItem( const QString &text,QWidget *newItem ){ lbajardsilogic@7: m_splitter->addWidget(new PrivateWidget(this,text,newItem)); lbajardsilogic@7: lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void AdvancedToolBox::insertItem ( int index, const QString &text,QWidget *newItem ){ lbajardsilogic@7: m_splitter->insertWidget(index,new PrivateWidget(this,text,newItem)); lbajardsilogic@7: } lbajardsilogic@7: lbajardsilogic@7: void AdvancedToolBox::removeItem( int index ){ lbajardsilogic@50: QWidget *w = m_splitter->widget(index); lbajardsilogic@50: if (w) lbajardsilogic@50: delete w; lbajardsilogic@7: } lbajardsilogic@7: