annotate widgets/ItemLayerList.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents 2e81141893db
children
rev   line source
benoitrigolleau@56 1
benoitrigolleau@56 2 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
benoitrigolleau@56 3
benoitrigolleau@56 4 /*
benoitrigolleau@56 5 Sound Access
benoitrigolleau@56 6 EASAIER client application.
benoitrigolleau@56 7 Silogic 2007. Benoit Rigolleau.
benoitrigolleau@56 8
benoitrigolleau@56 9 This program is free software; you can redistribute it and/or
benoitrigolleau@56 10 modify it under the terms of the GNU General Public License as
benoitrigolleau@56 11 published by the Free Software Foundation; either version 2 of the
benoitrigolleau@56 12 License, or (at your option) any later version. See the file
benoitrigolleau@56 13 COPYING included with this distribution for more information.
benoitrigolleau@56 14 */
benoitrigolleau@56 15
benoitrigolleau@56 16 #include "ItemLayerList.h"
benoitrigolleau@56 17
benoitrigolleau@56 18 #include "data/model/LayerItemModel.h"
benoitrigolleau@58 19 #include "layer/Layer.h"
benoitrigolleau@58 20 #include "base/PlayParameters.h"
benoitrigolleau@56 21
benoitrigolleau@56 22 #include <QWidget>
benoitrigolleau@56 23
benoitrigolleau@56 24 #include <QApplication>
benoitrigolleau@56 25 #include <QLabel>
benoitrigolleau@56 26
benoitrigolleau@58 27
benoitrigolleau@56 28 ItemLayerList::ItemLayerList(QWidget *parent) : GenericItemList(parent){
benoitrigolleau@56 29 setAcceptDrops(true);
benoitrigolleau@56 30
benoitrigolleau@56 31 /* Init all variables*/
benoitrigolleau@58 32 m_labelIcon = new QLabel;
benoitrigolleau@58 33 m_labelName = new QLabel;
benoitrigolleau@58 34 m_checkBoxShow = new QCheckBox;
benoitrigolleau@58 35 m_checkBoxPlay = new QCheckBox;
benoitrigolleau@58 36 m_layoutMain = new QHBoxLayout;
benoitrigolleau@133 37
benoitrigolleau@56 38
benoitrigolleau@56 39 /* set the correct widget parameters*/
benoitrigolleau@58 40 m_labelIcon->setMaximumSize(25,25);
benoitrigolleau@56 41 //labelIcon->setPixmap(QIcon(":icons/layerViewer_btn_config.png").pixmap(20));
benoitrigolleau@56 42
benoitrigolleau@58 43 m_labelName->setMaximumHeight(25);
benoitrigolleau@56 44 //labelName->setText("ljdh lksdf hl");
benoitrigolleau@56 45
benoitrigolleau@58 46 m_checkBoxShow->setLayoutDirection(Qt::RightToLeft);
benoitrigolleau@58 47 m_checkBoxShow->setMaximumSize(30,30);
benoitrigolleau@56 48 //checkBox1->setText("");
benoitrigolleau@58 49 m_checkBoxShow->setAutoFillBackground(true);
benoitrigolleau@60 50 QPalette palette;
benoitrigolleau@60 51 palette.setColor(QPalette::Button,palette.color(QPalette::Background));
benoitrigolleau@60 52 m_checkBoxShow->setPalette(palette);
benoitrigolleau@56 53
benoitrigolleau@58 54 m_checkBoxPlay->setMaximumSize(20,30);
benoitrigolleau@56 55
benoitrigolleau@58 56 m_layoutMain->setSpacing(5);
benoitrigolleau@58 57 m_layoutMain->setMargin(0);
benoitrigolleau@56 58
benoitrigolleau@56 59 this->setMaximumHeight(30);
benoitrigolleau@56 60 this->setMinimumHeight(30);
benoitrigolleau@56 61 this->setFrameStyle(QFrame::Panel | QFrame::Raised);
benoitrigolleau@56 62 this->setLineWidth(1);
benoitrigolleau@56 63
benoitrigolleau@56 64 /* build the interface*/
benoitrigolleau@58 65 m_layoutMain->addWidget(m_checkBoxShow);
benoitrigolleau@58 66 m_layoutMain->addWidget(m_checkBoxPlay);
benoitrigolleau@58 67 m_layoutMain->addWidget(m_labelIcon);
benoitrigolleau@58 68 m_layoutMain->addWidget(m_labelName);
benoitrigolleau@56 69
benoitrigolleau@56 70 /*add the main layout in this widget*/
benoitrigolleau@58 71 this->setLayout(m_layoutMain);
benoitrigolleau@56 72
benoitrigolleau@56 73 connect(this, SIGNAL(doubleClicked()), this, SLOT(openPropertyBox()));
benoitrigolleau@56 74 }
benoitrigolleau@56 75
benoitrigolleau@133 76 ItemLayerList::~ItemLayerList(){
benoitrigolleau@133 77 /*if(m_propertyBox){
benoitrigolleau@133 78 m_propertyBox->close();
benoitrigolleau@133 79 delete m_propertyBox;
benoitrigolleau@133 80 }*/
benoitrigolleau@133 81 }
benoitrigolleau@133 82
benoitrigolleau@56 83 void ItemLayerList::setIcon(QString &icon){
benoitrigolleau@58 84 m_labelIcon->setPixmap(QIcon(icon).pixmap(25));
benoitrigolleau@56 85 }
benoitrigolleau@56 86
benoitrigolleau@56 87 void ItemLayerList::setName(QString &name){
benoitrigolleau@58 88 m_labelName->setText(name);
benoitrigolleau@56 89 }
benoitrigolleau@56 90
benoitrigolleau@56 91 void ItemLayerList::setColor(QColor &color){
benoitrigolleau@56 92 QPalette palette;
benoitrigolleau@56 93 palette.setColor(QPalette::Button,color);
benoitrigolleau@58 94 m_checkBoxShow->setPalette(palette);
benoitrigolleau@56 95 }
benoitrigolleau@56 96
benoitrigolleau@58 97 void ItemLayerList::changeCheckBoxShowState(bool state){
benoitrigolleau@58 98 m_checkBoxShow->setChecked(state);
benoitrigolleau@56 99 }
benoitrigolleau@56 100
benoitrigolleau@58 101 void ItemLayerList::changeCheckBoxPlayState(bool state){
benoitrigolleau@58 102 m_checkBoxPlay->setChecked(state);
benoitrigolleau@56 103 }
benoitrigolleau@56 104
benoitrigolleau@56 105 void ItemLayerList::setPropertyBox(PropertyBox *box){
benoitrigolleau@56 106 m_propertyBox = box;
benoitrigolleau@57 107 if(m_propertyBox!=0){
benoitrigolleau@58 108
benoitrigolleau@58 109 m_container = m_propertyBox->container();
benoitrigolleau@58 110
benoitrigolleau@58 111
benoitrigolleau@58 112 updateCheckboxs();
benoitrigolleau@61 113 updateColor();
benoitrigolleau@58 114 connect(m_checkBoxShow,SIGNAL(stateChanged(int)),m_propertyBox,SLOT(layerVisibilityChanged(int)));
benoitrigolleau@57 115 connect(m_propertyBox, SIGNAL(showLayer(bool)), this, SLOT(showLayer(bool)));
benoitrigolleau@57 116 }
benoitrigolleau@57 117
benoitrigolleau@57 118 //connect();
benoitrigolleau@56 119 }
benoitrigolleau@56 120
benoitrigolleau@56 121 void ItemLayerList::configAction(){
benoitrigolleau@56 122 if(m_propertyBox!=0){
lbajardsilogic@183 123 m_propertyBox->showNormal();
benoitrigolleau@56 124 }
benoitrigolleau@56 125 }
benoitrigolleau@56 126
benoitrigolleau@56 127
benoitrigolleau@56 128 /*********SLOTS ************/
benoitrigolleau@56 129 void ItemLayerList::openPropertyBox(){
benoitrigolleau@56 130 ItemLayerList::configAction();
benoitrigolleau@56 131 }
benoitrigolleau@56 132
benoitrigolleau@57 133 void ItemLayerList::showLayer(bool value){
benoitrigolleau@58 134 changeCheckBoxShowState(value);
benoitrigolleau@57 135 }
benoitrigolleau@56 136
benoitrigolleau@99 137 void ItemLayerList::playAudibleChanged(bool value){
benoitrigolleau@99 138 changeCheckBoxPlayState(value);
benoitrigolleau@99 139 }
benoitrigolleau@99 140
benoitrigolleau@99 141
benoitrigolleau@58 142 void ItemLayerList::updateCheckboxs(){
benoitrigolleau@58 143 Layer *layer = dynamic_cast<Layer *>(m_container);
benoitrigolleau@58 144 if (layer) {
benoitrigolleau@58 145 m_checkBoxShow->setEnabled(true);
benoitrigolleau@58 146 m_checkBoxShow->setChecked(true);
benoitrigolleau@58 147
benoitrigolleau@58 148 disconnect(layer, SIGNAL(modelReplaced()),
benoitrigolleau@58 149 this, SLOT(updateCheckboxs()));
benoitrigolleau@58 150 connect(layer, SIGNAL(modelReplaced()),
benoitrigolleau@58 151 this, SLOT(updateCheckboxs()));
benoitrigolleau@60 152
benoitrigolleau@60 153 disconnect(layer, SIGNAL(layerParametersChanged()),
benoitrigolleau@60 154 this,SLOT(updateColor()));
benoitrigolleau@60 155 connect(layer, SIGNAL(layerParametersChanged()),
benoitrigolleau@60 156 this,SLOT(updateColor()));
benoitrigolleau@60 157
benoitrigolleau@58 158 }else{
benoitrigolleau@58 159 m_checkBoxShow->setEnabled(false);
benoitrigolleau@58 160 }
benoitrigolleau@58 161 PlayParameters *params = m_container->getPlayParameters();
benoitrigolleau@56 162
benoitrigolleau@58 163 if(params){
benoitrigolleau@58 164 m_checkBoxPlay->setEnabled(true);
benoitrigolleau@58 165 m_checkBoxPlay->setChecked(!params->isPlayMuted());
benoitrigolleau@58 166
benoitrigolleau@99 167 connect(params, SIGNAL(playAudibleChanged(bool)),this, SLOT(playAudibleChanged(bool)));
benoitrigolleau@58 168 connect(m_checkBoxPlay, SIGNAL(stateChanged(int)),params, SLOT(setPlayAudible(int)));
benoitrigolleau@58 169 }else{
benoitrigolleau@58 170 m_checkBoxPlay->setEnabled(false);
benoitrigolleau@58 171 }
benoitrigolleau@58 172 }
benoitrigolleau@58 173
benoitrigolleau@60 174 void ItemLayerList::updateColor(){
benoitrigolleau@60 175 Layer *layer = dynamic_cast<Layer *>(m_container);
benoitrigolleau@60 176 if (layer) {
benoitrigolleau@60 177 QPalette palette;
benoitrigolleau@61 178 palette.setColor(QPalette::Button,layer->getBaseColour());
benoitrigolleau@60 179 m_checkBoxShow->setPalette(palette);
benoitrigolleau@60 180 }
benoitrigolleau@60 181 }
benoitrigolleau@58 182
benoitrigolleau@58 183
benoitrigolleau@58 184
benoitrigolleau@58 185
benoitrigolleau@58 186
benoitrigolleau@58 187
benoitrigolleau@60 188