Back to index

fet  5.18.0
Public Slots | Public Member Functions
AddConstraintRoomNotAvailableTimesForm Class Reference

#include <addconstraintroomnotavailabletimesform.h>

List of all members.

Public Slots

void addConstraint ()
void itemClicked (QTableWidgetItem *item)
void horizontalHeaderClicked (int col)
void verticalHeaderClicked (int row)
void setAllAvailable ()
void setAllNotAvailable ()

Public Member Functions

 AddConstraintRoomNotAvailableTimesForm (QWidget *parent)
 ~AddConstraintRoomNotAvailableTimesForm ()
void updateRoomsComboBox ()
void colorItem (QTableWidgetItem *item)

Detailed Description

Definition at line 26 of file addconstraintroomnotavailabletimesform.h.


Constructor & Destructor Documentation

Definition at line 37 of file addconstraintroomnotavailabletimesform.cpp.

                                                                                             : QDialog(parent)
{
       setupUi(this);

       addConstraintPushButton->setDefault(true);

       connect(addConstraintPushButton, SIGNAL(clicked()), this, SLOT(addConstraint()));
       connect(closePushButton, SIGNAL(clicked()), this, SLOT(close()));
       connect(notAllowedTimesTable, SIGNAL(itemClicked(QTableWidgetItem*)), this, SLOT(itemClicked(QTableWidgetItem*)));
       connect(setAllAvailablePushButton, SIGNAL(clicked()), this, SLOT(setAllAvailable()));
       connect(setAllNotAvailablePushButton, SIGNAL(clicked()), this, SLOT(setAllNotAvailable()));

       centerWidgetOnScreen(this);
       restoreFETDialogGeometry(this);
       
       QSize tmp5=roomsComboBox->minimumSizeHint();
       Q_UNUSED(tmp5);

       updateRoomsComboBox();

       notAllowedTimesTable->setRowCount(gt.rules.nHoursPerDay);
       notAllowedTimesTable->setColumnCount(gt.rules.nDaysPerWeek);

       for(int j=0; j<gt.rules.nDaysPerWeek; j++){
              QTableWidgetItem* item=new QTableWidgetItem(gt.rules.daysOfTheWeek[j]);
              notAllowedTimesTable->setHorizontalHeaderItem(j, item);
       }
       for(int i=0; i<gt.rules.nHoursPerDay; i++){
              QTableWidgetItem* item=new QTableWidgetItem(gt.rules.hoursOfTheDay[i]);
              notAllowedTimesTable->setVerticalHeaderItem(i, item);
       }

       for(int i=0; i<gt.rules.nHoursPerDay; i++)
              for(int j=0; j<gt.rules.nDaysPerWeek; j++){
                     QTableWidgetItem* item=new QTableWidgetItem(NO);
                     item->setTextAlignment(Qt::AlignCenter);
                     item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
                     colorItem(item);
                     notAllowedTimesTable->setItem(i, j, item);
              }
              
       notAllowedTimesTable->resizeRowsToContents();
                     
       connect(notAllowedTimesTable->horizontalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(horizontalHeaderClicked(int)));
       connect(notAllowedTimesTable->verticalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(verticalHeaderClicked(int)));
       
       notAllowedTimesTable->setSelectionMode(QAbstractItemView::NoSelection);

       tableWidgetUpdateBug(notAllowedTimesTable);

       setStretchAvailabilityTableNicely(notAllowedTimesTable);
}

Here is the call graph for this function:

Definition at line 90 of file addconstraintroomnotavailabletimesform.cpp.

Here is the call graph for this function:


Member Function Documentation

Definition at line 203 of file addconstraintroomnotavailabletimesform.cpp.

{
       SpaceConstraint *ctr=NULL;

       double weight;
       QString tmp=weightLineEdit->text();
       weight_sscanf(tmp, "%lf", &weight);
       if(weight<0.0 || weight>100){
              QMessageBox::warning(this, tr("FET information"),
                     tr("Invalid weight"));
              return;
       }

       int i=roomsComboBox->currentIndex();
       if(i<0 || roomsComboBox->count()<=0){
              QMessageBox::warning(this, tr("FET information"),
                     tr("Invalid room"));
              return;
       }
       Room* room=gt.rules.roomsList.at(i);

       QList<int> days;
       QList<int> hours;
       for(int j=0; j<gt.rules.nDaysPerWeek; j++)
              for(int i=0; i<gt.rules.nHoursPerDay; i++)
                     if(notAllowedTimesTable->item(i, j)->text()==YES){
                            days.append(j);
                            hours.append(i);
                     }

       ctr=new ConstraintRoomNotAvailableTimes(weight, room->name, days, hours);

       bool tmp2=gt.rules.addSpaceConstraint(ctr);
       if(tmp2){
              QString s=tr("Constraint added:");
              s+="\n\n";
              s+=ctr->getDetailedDescription(gt.rules);
              LongTextMessageBox::information(this, tr("FET information"), s);
       }
       else{
              /*QMessageBox::warning(this, tr("FET information"),
                     tr("Constraint NOT added - there must be another constraint of this "
                       "type referring to the same room. Please edit that one"));*/
              QMessageBox::warning(this, tr("FET information"),
                     tr("Constraint NOT added - please report error"));
              delete ctr;
       }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void AddConstraintRoomNotAvailableTimesForm::colorItem ( QTableWidgetItem *  item)

Definition at line 95 of file addconstraintroomnotavailabletimesform.cpp.

{
       if(USE_GUI_COLORS){
              if(item->text()==NO)
                     item->setBackground(QBrush(Qt::darkGreen));
              else
                     item->setBackground(QBrush(Qt::darkRed));
              item->setForeground(QBrush(Qt::lightGray));
       }
}

Here is the caller graph for this function:

Definition at line 106 of file addconstraintroomnotavailabletimesform.cpp.

{
       if(col>=0 && col<gt.rules.nDaysPerWeek){
              QString s=notAllowedTimesTable->item(0, col)->text();
              if(s==YES)
                     s=NO;
              else{
                     assert(s==NO);
                     s=YES;
              }

              for(int row=0; row<gt.rules.nHoursPerDay; row++){
                     /*QString s=notAllowedTimesTable->text(row, col);
                     if(s==YES)
                            s=NO;
                     else{
                            assert(s==NO);
                            s=YES;
                     }*/
                     notAllowedTimesTable->item(row, col)->setText(s);
                     colorItem(notAllowedTimesTable->item(row,col));
              }
              tableWidgetUpdateBug(notAllowedTimesTable);
       }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void AddConstraintRoomNotAvailableTimesForm::itemClicked ( QTableWidgetItem *  item) [slot]

Definition at line 188 of file addconstraintroomnotavailabletimesform.cpp.

{
       QString s=item->text();
       if(s==YES)
              s=NO;
       else{
              assert(s==NO);
              s=YES;
       }
       item->setText(s);
       colorItem(item);

       tableWidgetUpdateBug(notAllowedTimesTable);
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 158 of file addconstraintroomnotavailabletimesform.cpp.

{
       for(int i=0; i<gt.rules.nHoursPerDay; i++)
              for(int j=0; j<gt.rules.nDaysPerWeek; j++){
                     notAllowedTimesTable->item(i, j)->setText(NO);
                     colorItem(notAllowedTimesTable->item(i,j));
              }
       tableWidgetUpdateBug(notAllowedTimesTable);
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 168 of file addconstraintroomnotavailabletimesform.cpp.

{
       for(int i=0; i<gt.rules.nHoursPerDay; i++)
              for(int j=0; j<gt.rules.nDaysPerWeek; j++){
                     notAllowedTimesTable->item(i, j)->setText(YES);
                     colorItem(notAllowedTimesTable->item(i,j));
              }
       tableWidgetUpdateBug(notAllowedTimesTable);
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 178 of file addconstraintroomnotavailabletimesform.cpp.

{
       roomsComboBox->clear();
       for(int i=0; i<gt.rules.roomsList.size(); i++){
              Room* room=gt.rules.roomsList[i];
              //roomsComboBox->addItem(room->getDescription());
              roomsComboBox->addItem(room->name);
       }
}

Here is the caller graph for this function:

Definition at line 132 of file addconstraintroomnotavailabletimesform.cpp.

{
       if(row>=0 && row<gt.rules.nHoursPerDay){
              QString s=notAllowedTimesTable->item(row, 0)->text();
              if(s==YES)
                     s=NO;
              else{
                     assert(s==NO);
                     s=YES;
              }
       
              for(int col=0; col<gt.rules.nDaysPerWeek; col++){
                     /*QString s=notAllowedTimesTable->text(row, col);
                     if(s==YES)
                            s=NO;
                     else{
                            assert(s==NO);
                            s=YES;
                     }*/
                     notAllowedTimesTable->item(row, col)->setText(s);
                     colorItem(notAllowedTimesTable->item(row,col));
              }
              tableWidgetUpdateBug(notAllowedTimesTable);
       }
}

Here is the call graph for this function:

Here is the caller graph for this function:


The documentation for this class was generated from the following files: