annotate widgets/ItemLayerList.cpp @ 57:4f3e6a09239a

(none)
author benoitrigolleau
date Wed, 23 May 2007 15:11:52 +0000
parents 81921835ddf1
children b3c3a5fa185f
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@56 19
benoitrigolleau@56 20 #include <QWidget>
benoitrigolleau@56 21
benoitrigolleau@56 22 #include <QApplication>
benoitrigolleau@56 23 #include <QLabel>
benoitrigolleau@56 24
benoitrigolleau@56 25 ItemLayerList::ItemLayerList(QWidget *parent) : GenericItemList(parent){
benoitrigolleau@56 26 setAcceptDrops(true);
benoitrigolleau@56 27
benoitrigolleau@56 28 /* Init all variables*/
benoitrigolleau@56 29 labelIcon = new QLabel;
benoitrigolleau@56 30 labelName = new QLabel;
benoitrigolleau@56 31 checkBox1 = new QCheckBox;
benoitrigolleau@56 32 checkBox2 = new QCheckBox;
benoitrigolleau@56 33 layoutMain = new QHBoxLayout;
benoitrigolleau@56 34
benoitrigolleau@56 35 /* set the correct widget parameters*/
benoitrigolleau@56 36 labelIcon->setMaximumSize(25,25);
benoitrigolleau@56 37 //labelIcon->setPixmap(QIcon(":icons/layerViewer_btn_config.png").pixmap(20));
benoitrigolleau@56 38
benoitrigolleau@56 39 labelName->setMaximumHeight(25);
benoitrigolleau@56 40 //labelName->setText("ljdh lksdf hl");
benoitrigolleau@56 41
benoitrigolleau@56 42 checkBox1->setLayoutDirection(Qt::RightToLeft);
benoitrigolleau@56 43 checkBox1->setMaximumSize(30,30);
benoitrigolleau@56 44 //checkBox1->setText("");
benoitrigolleau@56 45 checkBox1->setAutoFillBackground(true);
benoitrigolleau@56 46 //QPalette palette;
benoitrigolleau@56 47 //palette.setColor(QPalette::Button,QColor ( 100, 60, 20));
benoitrigolleau@56 48 //checkBox1->setPalette(palette);
benoitrigolleau@56 49
benoitrigolleau@56 50 checkBox2->setMaximumSize(20,30);
benoitrigolleau@56 51
benoitrigolleau@56 52 layoutMain->setSpacing(5);
benoitrigolleau@56 53 layoutMain->setMargin(0);
benoitrigolleau@56 54
benoitrigolleau@56 55 this->setMaximumHeight(30);
benoitrigolleau@56 56 this->setMinimumHeight(30);
benoitrigolleau@56 57 this->setFrameStyle(QFrame::Panel | QFrame::Raised);
benoitrigolleau@56 58 this->setLineWidth(1);
benoitrigolleau@56 59
benoitrigolleau@56 60 /* build the interface*/
benoitrigolleau@56 61 layoutMain->addWidget(checkBox1);
benoitrigolleau@56 62 layoutMain->addWidget(checkBox2);
benoitrigolleau@56 63 layoutMain->addWidget(labelIcon);
benoitrigolleau@56 64 layoutMain->addWidget(labelName);
benoitrigolleau@56 65
benoitrigolleau@56 66 /*add the main layout in this widget*/
benoitrigolleau@56 67 this->setLayout(layoutMain);
benoitrigolleau@56 68
benoitrigolleau@56 69 connect(this, SIGNAL(doubleClicked()), this, SLOT(openPropertyBox()));
benoitrigolleau@56 70 }
benoitrigolleau@56 71
benoitrigolleau@56 72 void ItemLayerList::setIcon(QString &icon){
benoitrigolleau@56 73 labelIcon->setPixmap(QIcon(icon).pixmap(25));
benoitrigolleau@56 74 }
benoitrigolleau@56 75
benoitrigolleau@56 76 void ItemLayerList::setName(QString &name){
benoitrigolleau@56 77 labelName->setText(name);
benoitrigolleau@56 78 }
benoitrigolleau@56 79
benoitrigolleau@56 80 void ItemLayerList::setColor(QColor &color){
benoitrigolleau@56 81 QPalette palette;
benoitrigolleau@56 82 palette.setColor(QPalette::Button,color);
benoitrigolleau@56 83 checkBox1->setPalette(palette);
benoitrigolleau@56 84 }
benoitrigolleau@56 85
benoitrigolleau@56 86 void ItemLayerList::changeCheckBox1State(bool state){
benoitrigolleau@56 87 checkBox1->setChecked(state);
benoitrigolleau@56 88 }
benoitrigolleau@56 89
benoitrigolleau@56 90 void ItemLayerList::changeCheckBox2State(bool state){
benoitrigolleau@56 91 checkBox2->setChecked(state);
benoitrigolleau@56 92 }
benoitrigolleau@56 93
benoitrigolleau@56 94 void ItemLayerList::setPropertyBox(PropertyBox *box){
benoitrigolleau@56 95 m_propertyBox = box;
benoitrigolleau@57 96 if(m_propertyBox!=0){
benoitrigolleau@57 97 connect(checkBox1,SIGNAL(stateChanged(int)),m_propertyBox,SLOT(layerVisibilityChanged(int)));
benoitrigolleau@57 98 connect(m_propertyBox, SIGNAL(showLayer(bool)), this, SLOT(showLayer(bool)));
benoitrigolleau@57 99 if(m_propertyBox->showButton() == 0){
benoitrigolleau@57 100 checkBox1->setEnabled(false);
benoitrigolleau@57 101 }
benoitrigolleau@57 102 if(m_propertyBox->playButton() ==0 ){
benoitrigolleau@57 103 checkBox2->setEnabled(false);
benoitrigolleau@57 104 }
benoitrigolleau@57 105 }
benoitrigolleau@57 106
benoitrigolleau@57 107 //connect();
benoitrigolleau@56 108 }
benoitrigolleau@56 109
benoitrigolleau@56 110 void ItemLayerList::configAction(){
benoitrigolleau@56 111 if(m_propertyBox!=0){
benoitrigolleau@56 112 m_propertyBox->close();
benoitrigolleau@56 113 m_propertyBox->show();
benoitrigolleau@56 114 }
benoitrigolleau@56 115 }
benoitrigolleau@56 116
benoitrigolleau@56 117
benoitrigolleau@56 118 /*********SLOTS ************/
benoitrigolleau@56 119 void ItemLayerList::openPropertyBox(){
benoitrigolleau@56 120 ItemLayerList::configAction();
benoitrigolleau@56 121 }
benoitrigolleau@56 122
benoitrigolleau@57 123 void ItemLayerList::showLayer(bool value){
benoitrigolleau@57 124 changeCheckBox1State(value);
benoitrigolleau@57 125
benoitrigolleau@57 126 }
benoitrigolleau@56 127
benoitrigolleau@56 128
benoitrigolleau@56 129
benoitrigolleau@56 130
benoitrigolleau@56 131
benoitrigolleau@56 132
benoitrigolleau@57 133