Back to index

fet  5.18.0
Public Slots | Public Member Functions | Public Attributes
ConstraintActivityPreferredStartingTimesForm Class Reference

#include <constraintactivitypreferredstartingtimesform.h>

List of all members.

Public Slots

void constraintChanged (int index)
void addConstraint ()
void modifyConstraint ()
void removeConstraint ()
void filterChanged ()

Public Member Functions

 ConstraintActivityPreferredStartingTimesForm (QWidget *parent)
 ~ConstraintActivityPreferredStartingTimesForm ()
bool filterOk (TimeConstraint *ctr)

Public Attributes

TimeConstraintsList visibleConstraintsList

Detailed Description

Definition at line 26 of file constraintactivitypreferredstartingtimesform.h.


Constructor & Destructor Documentation

Definition at line 30 of file constraintactivitypreferredstartingtimesform.cpp.

                                                                                                         : QDialog(parent)
{
       setupUi(this);

       currentConstraintTextEdit->setReadOnly(true);

       modifyConstraintPushButton->setDefault(true);
       
       constraintsListWidget->setSelectionMode(QAbstractItemView::SingleSelection);

       connect(constraintsListWidget, SIGNAL(currentRowChanged(int)), this, SLOT(constraintChanged(int)));
       connect(addConstraintPushButton, SIGNAL(clicked()), this, SLOT(addConstraint()));
       connect(closePushButton, SIGNAL(clicked()), this, SLOT(close()));
       connect(removeConstraintPushButton, SIGNAL(clicked()), this, SLOT(removeConstraint()));
       connect(modifyConstraintPushButton, SIGNAL(clicked()), this, SLOT(modifyConstraint()));
       connect(constraintsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(modifyConstraint()));
       connect(teachersComboBox, SIGNAL(activated(QString)), this, SLOT(filterChanged()));
       connect(studentsComboBox, SIGNAL(activated(QString)), this, SLOT(filterChanged()));
       connect(subjectsComboBox, SIGNAL(activated(QString)), this, SLOT(filterChanged()));
       connect(activityTagsComboBox, SIGNAL(activated(QString)), this, SLOT(filterChanged()));

       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);
       
       teachersComboBox->addItem("");
       for(int i=0; i<gt.rules.teachersList.size(); i++){
              Teacher* tch=gt.rules.teachersList[i];
              teachersComboBox->addItem(tch->name);
       }
       teachersComboBox->setCurrentIndex(0);

       subjectsComboBox->addItem("");
       for(int i=0; i<gt.rules.subjectsList.size(); i++){
              Subject* sb=gt.rules.subjectsList[i];
              subjectsComboBox->addItem(sb->name);
       }
       subjectsComboBox->setCurrentIndex(0);

       activityTagsComboBox->addItem("");
       for(int i=0; i<gt.rules.activityTagsList.size(); i++){
              ActivityTag* st=gt.rules.activityTagsList[i];
              activityTagsComboBox->addItem(st->name);
       }
       activityTagsComboBox->setCurrentIndex(0);

       studentsComboBox->addItem("");
       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);
                     }
              }
       }
       studentsComboBox->setCurrentIndex(0);

       this->filterChanged();
}

Here is the call graph for this function:

Definition at line 104 of file constraintactivitypreferredstartingtimesform.cpp.

Here is the call graph for this function:


Member Function Documentation

Definition at line 201 of file constraintactivitypreferredstartingtimesform.cpp.

{
       AddConstraintActivityPreferredStartingTimesForm form(this);
       setParentAndOtherThings(&form, this);
       form.exec();

       filterChanged();
       
       constraintsListWidget->setCurrentRow(constraintsListWidget->count()-1);
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 189 of file constraintactivitypreferredstartingtimesform.cpp.

{
       if(index<0){
              currentConstraintTextEdit->setPlainText("");
              return;
       }
       assert(index<this->visibleConstraintsList.size());
       TimeConstraint* ctr=this->visibleConstraintsList.at(index);
       assert(ctr!=NULL);
       currentConstraintTextEdit->setPlainText(ctr->getDetailedDescription(gt.rules));
}

Here is the caller graph for this function:

Definition at line 171 of file constraintactivitypreferredstartingtimesform.cpp.

{
       this->visibleConstraintsList.clear();
       constraintsListWidget->clear();
       for(int i=0; i<gt.rules.timeConstraintsList.size(); i++){
              TimeConstraint* ctr=gt.rules.timeConstraintsList[i];
              if(filterOk(ctr)){
                     visibleConstraintsList.append(ctr);
                     constraintsListWidget->addItem(ctr->getDescription(gt.rules));
              }
       }
       
       if(constraintsListWidget->count()>0)
              constraintsListWidget->setCurrentRow(0);
       else
              currentConstraintTextEdit->setPlainText(QString(""));
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 109 of file constraintactivitypreferredstartingtimesform.cpp.

{
       if(ctr->type!=CONSTRAINT_ACTIVITY_PREFERRED_STARTING_TIMES)
              return false;
              
       ConstraintActivityPreferredStartingTimes* c=(ConstraintActivityPreferredStartingTimes*) ctr;
       
       QString tn=teachersComboBox->currentText();
       QString sbn=subjectsComboBox->currentText();
       QString sbtn=activityTagsComboBox->currentText();
       QString stn=studentsComboBox->currentText();
              
       bool found=true;
       
       int id=c->activityId;
       Activity* act=NULL;
       foreach(Activity* a, gt.rules.activitiesList)
              if(a->id==id)
                     act=a;

       found=true;          
              
       if(act!=NULL){
              //teacher
              if(tn!=""){
                     bool ok2=false;
                     for(QStringList::Iterator it=act->teachersNames.begin(); it!=act->teachersNames.end(); it++)
                            if(*it == tn){
                                   ok2=true;
                                   break;
                            }
                     if(!ok2)
                            found=false;
              }

              //subject
              if(sbn!="" && sbn!=act->subjectName)
                     found=false;
       
              //activity tag
              if(sbtn!="" && !act->activityTagsNames.contains(sbtn))
                     found=false;
       
              //students
              if(stn!=""){
                     bool ok2=false;
                     for(QStringList::Iterator it=act->studentsNames.begin(); it!=act->studentsNames.end(); it++)
                            if(*it == stn){
                                   ok2=true;
                                   break;
                     }
                     if(!ok2)
                            found=false;
              }
       }
       
       if(found)
              return true;

       return false;
}

Here is the caller graph for this function:

Definition at line 212 of file constraintactivitypreferredstartingtimesform.cpp.

{
       int valv=constraintsListWidget->verticalScrollBar()->value();
       int valh=constraintsListWidget->horizontalScrollBar()->value();

       int i=constraintsListWidget->currentRow();
       if(i<0){
              QMessageBox::information(this, tr("FET information"), tr("Invalid selected constraint"));
              return;
       }
       TimeConstraint* ctr=this->visibleConstraintsList.at(i);

       ModifyConstraintActivityPreferredStartingTimesForm form(this, (ConstraintActivityPreferredStartingTimes*)ctr);
       setParentAndOtherThings(&form, this);
       form.exec();

       filterChanged();

       constraintsListWidget->verticalScrollBar()->setValue(valv);
       constraintsListWidget->horizontalScrollBar()->setValue(valh);

       if(i>=constraintsListWidget->count())
              i=constraintsListWidget->count()-1;

       if(i>=0)
              constraintsListWidget->setCurrentRow(i);
       else
              this->constraintChanged(-1);
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 242 of file constraintactivitypreferredstartingtimesform.cpp.

{
       int i=constraintsListWidget->currentRow();
       if(i<0){
              QMessageBox::information(this, tr("FET information"), tr("Invalid selected constraint"));
              return;
       }
       TimeConstraint* ctr=this->visibleConstraintsList.at(i);
       QString s;
       s=tr("Remove constraint?");
       s+="\n\n";
       s+=ctr->getDetailedDescription(gt.rules);
       
       QListWidgetItem* item;

       switch( LongTextMessageBox::confirmation( this, tr("FET confirmation"),
              s, tr("Yes"), tr("No"), 0, 0, 1 ) ){
       case 0: // The user clicked the OK button or pressed Enter
              gt.rules.removeTimeConstraint(ctr);
              
              visibleConstraintsList.removeAt(i);
              constraintsListWidget->setCurrentRow(-1);
              item=constraintsListWidget->takeItem(i);
              delete item;
              
              break;
       case 1: // The user clicked the Cancel button or pressed Escape
              break;
       }
       
       if(i>=constraintsListWidget->count())
              i=constraintsListWidget->count()-1;
       if(i>=0)
              constraintsListWidget->setCurrentRow(i);
       else
              this->constraintChanged(-1);
}

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation


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