00001 /*************************************************************************** 00002 * * 00003 * Copyright: http://www.ii-system.com * 00004 * License: LGPL * 00005 * * 00006 ***************************************************************************/ 00007 00008 #include "iistaskpanel.h" 00009 #include "iistaskpanelscheme.h" 00010 #include "iistaskbox.h" 00011 #include "iistaskgroup.h" 00012 00013 00014 iisTaskPanel::iisTaskPanel(QWidget *parent) : 00015 QWidget(parent), mySpacer(0) 00016 { 00017 myScheme = iisTaskPanelScheme::defaultScheme(); 00018 00019 QVBoxLayout *vbl = new QVBoxLayout(); 00020 vbl->setMargin(8); 00021 vbl->setSpacing(8); 00022 setLayout(vbl); 00023 } 00024 00025 iisTaskPanel::~iisTaskPanel() 00026 { 00027 00028 } 00029 00030 void iisTaskPanel::setScheme(iisTaskPanelScheme *scheme) 00031 { 00032 if (scheme) { 00033 myScheme = scheme; 00034 00035 // set scheme for children 00036 QObjectList list(children()); 00037 foreach(QObject *obj, list) { 00038 if (dynamic_cast<iisTaskBox*>(obj)) { 00039 ((iisTaskBox*)obj)->setScheme(scheme); 00040 continue; 00041 } 00042 00043 if (dynamic_cast<iisTaskGroup*>(obj)) { 00044 ((iisTaskGroup*)obj)->setScheme(scheme); 00045 continue; 00046 } 00047 } 00048 00049 update(); 00050 } 00051 } 00052 00053 void iisTaskPanel::paintEvent ( QPaintEvent * event ) 00054 { 00055 QPainter p(this); 00056 00057 //p.setOpacity(0.5); 00058 p.fillRect(rect(), myScheme->panelBackground); 00059 } 00060 00061 void iisTaskPanel::addWidget(QWidget *w) 00062 { 00063 if (w) 00064 layout()->addWidget(w); 00065 } 00066 00067 void iisTaskPanel::removeWidget(QWidget *w) 00068 { 00069 if (w) 00070 layout()->removeWidget(w); 00071 } 00072 00073 void iisTaskPanel::addStretch(int s) 00074 { 00075 if (!mySpacer) { 00076 mySpacer = new QSpacerItem(0,0,QSizePolicy::Minimum, QSizePolicy::Expanding); 00077 layout()->addItem(mySpacer); 00078 } 00079 //((QVBoxLayout*)layout())->addStretch(s); 00080 } 00081 00082 void iisTaskPanel::removeStretch() 00083 { 00084 if (mySpacer) { 00085 layout()->removeItem(mySpacer); 00086 delete mySpacer; mySpacer = 0; 00087 } 00088 } 00089