Back to index

fet  5.18.0
Public Slots | Public Member Functions
AddConstraintStudentsSetMinHoursDailyForm Class Reference

#include <addconstraintstudentssetminhoursdailyform.h>

List of all members.

Public Slots

void constraintChanged ()
void addCurrentConstraint ()
void on_allowEmptyDaysCheckBox_toggled ()

Public Member Functions

 AddConstraintStudentsSetMinHoursDailyForm (QWidget *parent)
 ~AddConstraintStudentsSetMinHoursDailyForm ()
void updateStudentsSetComboBox ()

Detailed Description

Definition at line 26 of file addconstraintstudentssetminhoursdailyform.h.


Constructor & Destructor Documentation

Definition at line 25 of file addconstraintstudentssetminhoursdailyform.cpp.

                                                                                                   : 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);
       
       if(ENABLE_STUDENTS_MIN_HOURS_DAILY_WITH_ALLOW_EMPTY_DAYS)
              allowLabel->setText(tr("Advanced usage: enabled"));
       else
              allowLabel->setText(tr("Advanced usage: not enabled"));
       
       QSize tmp2=studentsComboBox->minimumSizeHint();
       Q_UNUSED(tmp2);

       minHoursSpinBox->setMinimum(1);
       minHoursSpinBox->setMaximum(gt.rules.nHoursPerDay);
       minHoursSpinBox->setValue(1);

       updateStudentsSetComboBox();
}

Here is the call graph for this function:

Definition at line 52 of file addconstraintstudentssetminhoursdailyform.cpp.

Here is the call graph for this function:


Member Function Documentation

Definition at line 80 of file addconstraintstudentssetminhoursdailyform.cpp.

{
       TimeConstraint *ctr=NULL;

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

       if(!ENABLE_STUDENTS_MIN_HOURS_DAILY_WITH_ALLOW_EMPTY_DAYS && allowEmptyDaysCheckBox->isChecked()){
              QMessageBox::warning(this, tr("FET warning"), tr("Empty days for students min hours daily constraints are not enabled. You must enable them from the Settings->Advanced menu."));
              return;
       }

       if(allowEmptyDaysCheckBox->isChecked() && minHoursSpinBox->value()<2){
              QMessageBox::warning(this, tr("FET warning"), tr("If you allow empty days, the min hours must be at least 2 (to make it a non-trivial constraint)"));
              return;
       }

       int minHours=minHoursSpinBox->value();

       QString students_name=studentsComboBox->currentText();
       StudentsSet* s=gt.rules.searchStudentsSet(students_name);
       if(s==NULL){
              QMessageBox::warning(this, tr("FET information"),
                     tr("Invalid students set"));
              return;
       }

       ctr=new ConstraintStudentsSetMinHoursDaily(weight, minHours, students_name, allowEmptyDaysCheckBox->isChecked());

       bool tmp2=gt.rules.addTimeConstraint(ctr);
       if(tmp2)
              LongTextMessageBox::information(this, tr("FET information"),
                     tr("Constraint added:")+"\n\n"+ctr->getDetailedDescription(gt.rules));
       else{
              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:

Definition at line 76 of file addconstraintstudentssetminhoursdailyform.cpp.

{
}

Here is the caller graph for this function:

Definition at line 131 of file addconstraintstudentssetminhoursdailyform.cpp.

{
       bool k=allowEmptyDaysCheckBox->isChecked();
              
       if(k && !ENABLE_STUDENTS_MIN_HOURS_DAILY_WITH_ALLOW_EMPTY_DAYS){
              allowEmptyDaysCheckBox->setChecked(false);
              QString s=tr("Advanced usage is not enabled. To be able to select 'Allow empty days' for the constraints of type min hours daily for students, you must enable the option from the Settings->Advanced menu.",
                     "'Allow empty days' is an option which the user can enable and then he can select it.");
              s+="\n\n";
              s+=tr("Explanation: only select this option if your institution allows empty days for students and a timetable is possible with empty days for students."
                     " Otherwise, it is IMPERATIVE (for performance reasons) to not select this option (or FET may not be able to find a timetable).");
              s+="\n\n";
              s+=tr("Use with caution.");
              QMessageBox::information(this, tr("FET information"), s);
       }
}

Definition at line 57 of file addconstraintstudentssetminhoursdailyform.cpp.

{
       studentsComboBox->clear();
       for(int i=0; i<gt.rules.yearsList.size(); i++){
              StudentsYear* sty=gt.rules.yearsList[i];
              studentsComboBox->addItem(sty->name);
              for(int j=0; j<sty->groupsList.size(); j++){
                     StudentsGroup* stg=sty->groupsList[j];
                     studentsComboBox->addItem(stg->name);
                     for(int k=0; k<stg->subgroupsList.size(); k++){
                            StudentsSubgroup* sts=stg->subgroupsList[k];
                            studentsComboBox->addItem(sts->name);
                     }
              }
       }

       constraintChanged();
}

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: