// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} #include "FormLayout.h" #include "Layout.h" #include #include #include FormLayout::FormLayout(Layout* parent,int row, int col,QString name,QString type):XmlWidget(name,type,parent) { visible_widget=new QWidget(); //create a grid to put label and object visible_widget->setObjectName(name); parent->addWidget(visible_widget,row,col); object_layout = new QFormLayout(visible_widget); object_layout->setHorizontalSpacing(2); object_layout->setVerticalSpacing(2); object_layout->setContentsMargins (2,2,2,2); visible_widget->installEventFilter(this); } FormLayout::~FormLayout() { } bool FormLayout::IsUptodate(void) { //si le widget n'est pas enabled, sa palette est differente de rouge (greyed) donc on renvoit true //permet de ne pas envoyer les modifs d'un widget disabled //if(label->palette()==red_pal) return false; if(visible_widget->palette()==red_pal) return false; return true; } bool FormLayout::eventFilter(QObject *o, QEvent *e) { if ( o == visible_widget ) { switch(e->type()) { case QEvent::EnabledChange: { QPalette palette=visible_widget->palette(); QPalette result; if(palette==red_pal) result=red_pal_greyed; if(palette==red_pal_greyed) result=red_pal; if(palette==black_pal) result=black_pal_greyed; if(palette==black_pal_greyed) result=black_pal; visible_widget->setPalette(result); } default: break; } } return QObject::eventFilter(o, e); }