annotate widgets/AdvancedToolBox.cpp @ 71:a1ce307bab17

update data.pro
author lbajardsilogic
date Wed, 13 Jun 2007 13:44:59 +0000
parents 51b1cbf1a7d7
children 5060939ca69d
rev   line source
lbajardsilogic@7 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@7 2
lbajardsilogic@7 3 /*
lbajardsilogic@7 4 Sound Access
lbajardsilogic@7 5 EASAIER client application.
lbajardsilogic@7 6 Silogic 2007. Benoit Rigolleau.
lbajardsilogic@7 7
lbajardsilogic@7 8 This program is free software; you can redistribute it and/or
lbajardsilogic@7 9 modify it under the terms of the GNU General Public License as
lbajardsilogic@7 10 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@7 11 License, or (at your option) any later version. See the file
lbajardsilogic@7 12 COPYING included with this distribution for more information.
lbajardsilogic@7 13 */
lbajardsilogic@7 14
lbajardsilogic@7 15 #include <QSizePolicy>
lbajardsilogic@7 16 #include <QIcon>
lbajardsilogic@7 17
lbajardsilogic@7 18 #include "AdvancedToolBox.h"
lbajardsilogic@7 19
lbajardsilogic@7 20
lbajardsilogic@7 21 /** PrivateWidget implementation*************************/
lbajardsilogic@7 22
lbajardsilogic@7 23 PrivateWidget::PrivateWidget(QWidget *parent, const QString &text,QWidget *newWidget){
lbajardsilogic@7 24 m_closed=false;
lbajardsilogic@7 25 m_layout=0;
lbajardsilogic@7 26 m_button=0;
lbajardsilogic@7 27 if(newWidget!=0){
lbajardsilogic@7 28 addWidget(text,newWidget);
lbajardsilogic@7 29 }
lbajardsilogic@7 30 }
lbajardsilogic@7 31
lbajardsilogic@7 32 void PrivateWidget::addWidget( const QString &text,QWidget *newWidget ){
lbajardsilogic@7 33
lbajardsilogic@7 34 if (m_layout!=0){
lbajardsilogic@7 35 delete m_layout;
lbajardsilogic@7 36 }
lbajardsilogic@7 37 if (m_button!=0){
lbajardsilogic@7 38 delete m_button;
lbajardsilogic@7 39 }
lbajardsilogic@7 40
lbajardsilogic@7 41 m_layout = new QVBoxLayout;
lbajardsilogic@7 42 m_layout->setMargin(0);
lbajardsilogic@7 43 m_layout->setSpacing(0);
lbajardsilogic@7 44 m_button = new QPushButton(QIcon(), text);
lbajardsilogic@7 45 m_button->setMaximumHeight(m_btnHeight);
lbajardsilogic@7 46 m_button->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed);
lbajardsilogic@7 47 m_layout->addWidget(m_button);
lbajardsilogic@7 48 m_layout->addWidget(newWidget);
lbajardsilogic@7 49 m_widget = newWidget;
lbajardsilogic@7 50 connect(m_button,SIGNAL(clicked()),this,SLOT(changeSate()));
lbajardsilogic@7 51
lbajardsilogic@7 52 this->setLayout(m_layout);
lbajardsilogic@7 53 refreshButtonIcone();
lbajardsilogic@7 54
lbajardsilogic@7 55 }
lbajardsilogic@7 56
lbajardsilogic@7 57 void PrivateWidget::refreshButtonIcone(){
lbajardsilogic@7 58 if(m_closed){
lbajardsilogic@7 59 m_button->setIcon(QIcon(":icons/right.png"));
lbajardsilogic@7 60 }else{
lbajardsilogic@7 61 m_button->setIcon(QIcon(":icons/bottom.png"));
lbajardsilogic@7 62 }
lbajardsilogic@7 63 }
lbajardsilogic@7 64
lbajardsilogic@7 65
lbajardsilogic@7 66 void PrivateWidget::changeSate(){
lbajardsilogic@7 67 if(&m_widget!=0 ){
lbajardsilogic@7 68 m_widget->setVisible(m_closed);
lbajardsilogic@7 69 if(!m_closed){
lbajardsilogic@7 70 this->setMaximumHeight(m_btnHeight);
lbajardsilogic@7 71 }
lbajardsilogic@7 72 else{
lbajardsilogic@7 73 this->setMaximumHeight(m_widget->maximumHeight() + m_button->maximumHeight());
lbajardsilogic@7 74 }
lbajardsilogic@7 75
lbajardsilogic@7 76 }
lbajardsilogic@7 77 m_closed = !m_closed;
lbajardsilogic@7 78 refreshButtonIcone();
lbajardsilogic@7 79 }
lbajardsilogic@7 80
lbajardsilogic@7 81 /* end PrivateWidget Implementation**********************/
lbajardsilogic@7 82
lbajardsilogic@7 83
lbajardsilogic@7 84
lbajardsilogic@7 85
lbajardsilogic@7 86
lbajardsilogic@7 87 AdvancedToolBox::AdvancedToolBox(QWidget *parent) : QWidget(parent){
lbajardsilogic@7 88 m_splitter = new QSplitter;
lbajardsilogic@7 89 m_splitter->setOrientation(Qt::Vertical);
lbajardsilogic@7 90
lbajardsilogic@7 91 QVBoxLayout *layout= new QVBoxLayout;
lbajardsilogic@7 92 layout->setMargin(0);
lbajardsilogic@7 93 layout->setSpacing(0);
lbajardsilogic@7 94 layout->addWidget(m_splitter);
lbajardsilogic@7 95 layout->addStretch();
lbajardsilogic@7 96 this->setLayout(layout);
lbajardsilogic@7 97 }
lbajardsilogic@7 98
lbajardsilogic@7 99 void AdvancedToolBox::addItem( const QString &text,QWidget *newItem ){
lbajardsilogic@7 100 m_splitter->addWidget(new PrivateWidget(this,text,newItem));
lbajardsilogic@7 101
lbajardsilogic@7 102 }
lbajardsilogic@7 103
lbajardsilogic@7 104 void AdvancedToolBox::insertItem ( int index, const QString &text,QWidget *newItem ){
lbajardsilogic@7 105 m_splitter->insertWidget(index,new PrivateWidget(this,text,newItem));
lbajardsilogic@7 106 }
lbajardsilogic@7 107
lbajardsilogic@7 108 void AdvancedToolBox::removeItem( int index ){
lbajardsilogic@50 109 QWidget *w = m_splitter->widget(index);
lbajardsilogic@50 110 if (w)
lbajardsilogic@50 111 delete w;
lbajardsilogic@7 112 }
lbajardsilogic@7 113