AddConstraintTeacherIntervalMaxDaysPerWeekForm::AddConstraintTeacherIntervalMaxDaysPerWeekForm(QWidget* parent): QDialog(parent) { setupUi(this); addConstraintPushButton->setDefault(true); connect(addConstraintPushButton, SIGNAL(clicked()), this, SLOT(addCurrentConstraint())); connect(closePushButton, SIGNAL(clicked()), this, SLOT(close())); centerWidgetOnScreen(this); restoreFETDialogGeometry(this); QSize tmp1=teachersComboBox->minimumSizeHint(); Q_UNUSED(tmp1); QSize tmp5=startHourComboBox->minimumSizeHint(); Q_UNUSED(tmp5); QSize tmp6=endHourComboBox->minimumSizeHint(); Q_UNUSED(tmp6); updateMaxDaysSpinBox(); updateTeachersComboBox(); updateStartHoursComboBox(); updateEndHoursComboBox(); }
AddConstraintActivitiesPreferredStartingTimesForm::AddConstraintActivitiesPreferredStartingTimesForm(QWidget* parent): QDialog(parent) { setupUi(this); addConstraintPushButton->setDefault(true); connect(preferredTimesTable, SIGNAL(itemClicked(QTableWidgetItem*)), this, SLOT(itemClicked(QTableWidgetItem*))); connect(addConstraintPushButton, SIGNAL(clicked()), this, SLOT(addConstraint())); connect(closePushButton, SIGNAL(clicked()), this, SLOT(close())); connect(setAllAllowedPushButton, SIGNAL(clicked()), this, SLOT(setAllSlotsAllowed())); connect(setAllNotAllowedPushButton, SIGNAL(clicked()), this, SLOT(setAllSlotsNotAllowed())); centerWidgetOnScreen(this); restoreFETDialogGeometry(this); QSize tmp1=teachersComboBox->minimumSizeHint(); Q_UNUSED(tmp1); QSize tmp2=studentsComboBox->minimumSizeHint(); Q_UNUSED(tmp2); QSize tmp3=subjectsComboBox->minimumSizeHint(); Q_UNUSED(tmp3); QSize tmp4=activityTagsComboBox->minimumSizeHint(); Q_UNUSED(tmp4); updateTeachersComboBox(); updateStudentsComboBox(); updateSubjectsComboBox(); updateActivityTagsComboBox(); preferredTimesTable->setRowCount(gt.rules.nHoursPerDay); preferredTimesTable->setColumnCount(gt.rules.nDaysPerWeek); for(int j=0; j<gt.rules.nDaysPerWeek; j++){ QTableWidgetItem* item=new QTableWidgetItem(gt.rules.daysOfTheWeek[j]); preferredTimesTable->setHorizontalHeaderItem(j, item); } for(int i=0; i<gt.rules.nHoursPerDay; i++){ QTableWidgetItem* item=new QTableWidgetItem(gt.rules.hoursOfTheDay[i]); preferredTimesTable->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(YES); item->setTextAlignment(Qt::AlignCenter); item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); colorItem(item); preferredTimesTable->setItem(i, j, item); } preferredTimesTable->resizeRowsToContents(); connect(preferredTimesTable->horizontalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(horizontalHeaderClicked(int))); connect(preferredTimesTable->verticalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(verticalHeaderClicked(int))); preferredTimesTable->setSelectionMode(QAbstractItemView::NoSelection); tableWidgetUpdateBug(preferredTimesTable); setStretchAvailabilityTableNicely(preferredTimesTable); }
ModifyConstraintTeacherMaxBuildingChangesPerWeekForm::ModifyConstraintTeacherMaxBuildingChangesPerWeekForm(QWidget* parent, ConstraintTeacherMaxBuildingChangesPerWeek* ctr): QDialog(parent) { setupUi(this); okPushButton->setDefault(true); connect(okPushButton, SIGNAL(clicked()), this, SLOT(ok())); connect(cancelPushButton, SIGNAL(clicked()), this, SLOT(cancel())); centerWidgetOnScreen(this); restoreFETDialogGeometry(this); QSize tmp1=teachersComboBox->minimumSizeHint(); Q_UNUSED(tmp1); this->_ctr=ctr; weightLineEdit->setText(CustomFETString::number(ctr->weightPercentage)); updateTeachersComboBox(); maxChangesSpinBox->setMinimum(0); maxChangesSpinBox->setMaximum(gt.rules.nDaysPerWeek*gt.rules.nHoursPerDay); maxChangesSpinBox->setValue(ctr->maxBuildingChangesPerWeek); constraintChanged(); }
AddConstraintTeacherNotAvailableTimesForm::AddConstraintTeacherNotAvailableTimesForm(QWidget* parent): QDialog(parent) { setupUi(this); addConstraintPushButton->setDefault(true); connect(addConstraintPushButton, SIGNAL(clicked()), this, SLOT(addCurrentConstraint())); connect(closePushButton, SIGNAL(clicked()), this, SLOT(close())); connect(notAllowedTimesTable, SIGNAL(itemClicked(QTableWidgetItem*)), this, SLOT(itemClicked(QTableWidgetItem*))); connect(pushButton5, SIGNAL(clicked()), this, SLOT(help())); connect(setAllAvailablePushButton, SIGNAL(clicked()), this, SLOT(setAllAvailable())); connect(setAllNotAvailablePushButton, SIGNAL(clicked()), this, SLOT(setAllNotAvailable())); centerWidgetOnScreen(this); restoreFETDialogGeometry(this); QSize tmp1=teachersComboBox->minimumSizeHint(); Q_UNUSED(tmp1); updateTeachersComboBox(); 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); if(SHOW_TOOLTIPS_FOR_CONSTRAINTS_WITH_TABLES) item->setToolTip(gt.rules.daysOfTheWeek[j]+QString("\n")+gt.rules.hoursOfTheDay[i]); 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); }
ModifyConstraintTeacherIntervalMaxDaysPerWeekForm::ModifyConstraintTeacherIntervalMaxDaysPerWeekForm(QWidget* parent, ConstraintTeacherIntervalMaxDaysPerWeek* ctr): QDialog(parent) { setupUi(this); okPushButton->setDefault(true); connect(okPushButton, SIGNAL(clicked()), this, SLOT(ok())); connect(cancelPushButton, SIGNAL(clicked()), this, SLOT(cancel())); centerWidgetOnScreen(this); restoreFETDialogGeometry(this); QSize tmp1=teachersComboBox->minimumSizeHint(); Q_UNUSED(tmp1); QSize tmp5=startHourComboBox->minimumSizeHint(); Q_UNUSED(tmp5); QSize tmp6=endHourComboBox->minimumSizeHint(); Q_UNUSED(tmp6); this->_ctr=ctr; weightLineEdit->setText(CustomFETString::number(ctr->weightPercentage)); updateMaxDaysSpinBox(); updateTeachersComboBox(); maxDaysSpinBox->setValue(ctr->maxDaysPerWeek); for(int i=0; i<gt.rules.nHoursPerDay; i++){ startHourComboBox->addItem(gt.rules.hoursOfTheDay[i]); } startHourComboBox->setCurrentIndex(ctr->startHour); for(int i=0; i<gt.rules.nHoursPerDay; i++){ endHourComboBox->addItem(gt.rules.hoursOfTheDay[i]); } endHourComboBox->addItem(tr("End of day")); endHourComboBox->setCurrentIndex(ctr->endHour); constraintChanged(); }
ModifyConstraintSubactivitiesPreferredStartingTimesForm::ModifyConstraintSubactivitiesPreferredStartingTimesForm(QWidget* parent, ConstraintSubactivitiesPreferredStartingTimes* ctr): QDialog(parent) { setupUi(this); okPushButton->setDefault(true); connect(preferredTimesTable, SIGNAL(itemClicked(QTableWidgetItem*)), this, SLOT(itemClicked(QTableWidgetItem*))); connect(cancelPushButton, SIGNAL(clicked()), this, SLOT(cancel())); connect(okPushButton, SIGNAL(clicked()), this, SLOT(ok())); connect(setAllAllowedPushButton, SIGNAL(clicked()), this, SLOT(setAllSlotsAllowed())); connect(setAllNotAllowedPushButton, SIGNAL(clicked()), this, SLOT(setAllSlotsNotAllowed())); centerWidgetOnScreen(this); restoreFETDialogGeometry(this); QSize tmp1=teachersComboBox->minimumSizeHint(); Q_UNUSED(tmp1); QSize tmp2=studentsComboBox->minimumSizeHint(); Q_UNUSED(tmp2); QSize tmp3=subjectsComboBox->minimumSizeHint(); Q_UNUSED(tmp3); QSize tmp4=activityTagsComboBox->minimumSizeHint(); Q_UNUSED(tmp4); this->_ctr=ctr; updateTeachersComboBox(); updateStudentsComboBox(parent); updateSubjectsComboBox(); updateActivityTagsComboBox(); componentNumberSpinBox->setMinimum(1); componentNumberSpinBox->setMaximum(MAX_SPLIT_OF_AN_ACTIVITY); componentNumberSpinBox->setValue(this->_ctr->componentNumber); preferredTimesTable->setRowCount(gt.rules.nHoursPerDay); preferredTimesTable->setColumnCount(gt.rules.nDaysPerWeek); for(int j=0; j<gt.rules.nDaysPerWeek; j++){ QTableWidgetItem* item=new QTableWidgetItem(gt.rules.daysOfTheWeek[j]); preferredTimesTable->setHorizontalHeaderItem(j, item); } for(int i=0; i<gt.rules.nHoursPerDay; i++){ QTableWidgetItem* item=new QTableWidgetItem(gt.rules.hoursOfTheDay[i]); preferredTimesTable->setVerticalHeaderItem(i, item); } Matrix2D<bool> currentMatrix; currentMatrix.resize(gt.rules.nHoursPerDay, gt.rules.nDaysPerWeek); //bool currentMatrix[MAX_HOURS_PER_DAY][MAX_DAYS_PER_WEEK]; for(int i=0; i<gt.rules.nHoursPerDay; i++) for(int j=0; j<gt.rules.nDaysPerWeek; j++) currentMatrix[i][j]=false; for(int k=0; k<ctr->nPreferredStartingTimes_L; k++){ if(ctr->hours_L[k]==-1 || ctr->days_L[k]==-1) assert(0); int i=ctr->hours_L[k]; int j=ctr->days_L[k]; if(i>=0 && i<gt.rules.nHoursPerDay && j>=0 && j<gt.rules.nDaysPerWeek) currentMatrix[i][j]=true; } for(int i=0; i<gt.rules.nHoursPerDay; i++) for(int j=0; j<gt.rules.nDaysPerWeek; j++){ QTableWidgetItem* item= new QTableWidgetItem(); item->setTextAlignment(Qt::AlignCenter); item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled); preferredTimesTable->setItem(i, j, item); if(!currentMatrix[i][j]) item->setText(NO); else item->setText(YES); colorItem(item); } preferredTimesTable->resizeRowsToContents(); weightLineEdit->setText(CustomFETString::number(ctr->weightPercentage)); connect(preferredTimesTable->horizontalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(horizontalHeaderClicked(int))); connect(preferredTimesTable->verticalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(verticalHeaderClicked(int))); preferredTimesTable->setSelectionMode(QAbstractItemView::NoSelection); tableWidgetUpdateBug(preferredTimesTable); setStretchAvailabilityTableNicely(preferredTimesTable); }
ModifyConstraintTeacherNotAvailableTimesForm::ModifyConstraintTeacherNotAvailableTimesForm(QWidget* parent, ConstraintTeacherNotAvailableTimes* ctr): QDialog(parent) { setupUi(this); okPushButton->setDefault(true); connect(okPushButton, SIGNAL(clicked()), this, SLOT(ok())); connect(cancelPushButton, SIGNAL(clicked()), this, SLOT(cancel())); 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 tmp1=teachersComboBox->minimumSizeHint(); Q_UNUSED(tmp1); this->_ctr=ctr; weightLineEdit->setText(CustomFETString::number(ctr->weightPercentage)); updateTeachersComboBox(); 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); } //bool currentMatrix[MAX_HOURS_PER_DAY][MAX_DAYS_PER_WEEK]; Matrix2D<bool> currentMatrix; currentMatrix.resize(gt.rules.nHoursPerDay, gt.rules.nDaysPerWeek); for(int i=0; i<gt.rules.nHoursPerDay; i++) for(int j=0; j<gt.rules.nDaysPerWeek; j++) currentMatrix[i][j]=false; assert(ctr->days.count()==ctr->hours.count()); for(int k=0; k<ctr->days.count(); k++){ if(ctr->hours.at(k)==-1 || ctr->days.at(k)==-1) assert(0); int i=ctr->hours.at(k); int j=ctr->days.at(k); if(i>=0 && i<gt.rules.nHoursPerDay && j>=0 && j<gt.rules.nDaysPerWeek) currentMatrix[i][j]=true; } for(int i=0; i<gt.rules.nHoursPerDay; i++) for(int j=0; j<gt.rules.nDaysPerWeek; j++){ QTableWidgetItem* item= new QTableWidgetItem(); item->setTextAlignment(Qt::AlignCenter); item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled); if(SHOW_TOOLTIPS_FOR_CONSTRAINTS_WITH_TABLES) item->setToolTip(gt.rules.daysOfTheWeek[j]+QString("\n")+gt.rules.hoursOfTheDay[i]); notAllowedTimesTable->setItem(i, j, item); if(!currentMatrix[i][j]) item->setText(NO); else item->setText(YES); colorItem(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); }