ModifySubactivityForm::ModifySubactivityForm(QWidget* parent, int id, int activityGroupId): QDialog(parent) { setupUi(this); allTeachersListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedTeachersListWidget->setSelectionMode(QAbstractItemView::SingleSelection); allStudentsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedStudentsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); allActivityTagsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedActivityTagsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); connect(cancelPushButton, SIGNAL(clicked()), this, SLOT(cancel())); connect(okPushButton, SIGNAL(clicked()), this, SLOT(ok())); connect(clearTeacherPushButton, SIGNAL(clicked()), this, SLOT(clearTeachers())); connect(clearStudentsPushButton, SIGNAL(clicked()), this, SLOT(clearStudents())); connect(allTeachersListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addTeacher())); connect(selectedTeachersListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeTeacher())); connect(allStudentsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addStudents())); connect(selectedStudentsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeStudents())); connect(clearActivityTagPushButton, SIGNAL(clicked()), this, SLOT(clearActivityTags())); connect(allActivityTagsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addActivityTag())); connect(selectedActivityTagsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeActivityTag())); connect(showYearsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showYearsChanged())); connect(showGroupsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showGroupsChanged())); connect(showSubgroupsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showSubgroupsChanged())); connect(helpPushButton, SIGNAL(clicked()), this, SLOT(help())); centerWidgetOnScreen(this); restoreFETDialogGeometry(this); QSize tmp3=subjectsComboBox->minimumSizeHint(); Q_UNUSED(tmp3); int splitIndex=0; int nSplit=0; bool found=false; this->_id=id; this->_activityGroupId=activityGroupId; for(int i=0; i<gt.rules.activitiesList.size(); i++){ Activity* act=gt.rules.activitiesList[i]; if(act->activityGroupId==this->_activityGroupId && act->id==this->_id){ this->_activity=act; splitIndex++; nSplit++; found=true; } else if(this->_activityGroupId!=0 && act->activityGroupId!=0 && act->activityGroupId==this->_activityGroupId){ if(!found) splitIndex++; nSplit++; } } crtTextLabel->setText(tr("Current subactivity has split index %1 out of %2").arg(splitIndex).arg(nSplit)+ "<br />"+tr("The current data applies only to this subactivity")); this->_teachers=this->_activity->teachersNames; this->_subject = this->_activity->subjectName; this->_activityTags = this->_activity->activityTagsNames; this->_students=this->_activity->studentsNames; durationSpinBox->setMaximum(gt.rules.nHoursPerDay); durationSpinBox->setValue(this->_activity->duration); activeCheckBox->setChecked(this->_activity->active); nStudentsSpinBox->setMinimum(-1); nStudentsSpinBox->setMaximum(MAX_ROOM_CAPACITY); nStudentsSpinBox->setValue(-1); if(this->_activity->computeNTotalStudents==false) nStudentsSpinBox->setValue(this->_activity->nTotalStudents); updateStudentsListWidget(); updateTeachersListWidget(); updateSubjectsComboBox(); updateActivityTagsListWidget(); selectedStudentsListWidget->clear(); for(QStringList::Iterator it=this->_students.begin(); it!=this->_students.end(); it++) selectedStudentsListWidget->addItem(*it); okPushButton->setDefault(true); okPushButton->setFocus(); }
AddActivityForm::AddActivityForm(QWidget* parent, const QString& teacherName, const QString& studentsSetName, const QString& subjectName, const QString& activityTagName): QDialog(parent) { setupUi(this); allTeachersListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedTeachersListWidget->setSelectionMode(QAbstractItemView::SingleSelection); allStudentsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedStudentsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); allActivityTagsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedActivityTagsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); splitSpinBox->setMaximum(MAX_SPLIT_OF_AN_ACTIVITY); durList.clear(); durList.append(duration1SpinBox); durList.append(duration2SpinBox); durList.append(duration3SpinBox); durList.append(duration4SpinBox); durList.append(duration5SpinBox); durList.append(duration6SpinBox); durList.append(duration7SpinBox); durList.append(duration8SpinBox); durList.append(duration9SpinBox); durList.append(duration10SpinBox); durList.append(duration11SpinBox); durList.append(duration12SpinBox); durList.append(duration13SpinBox); durList.append(duration14SpinBox); durList.append(duration15SpinBox); durList.append(duration16SpinBox); durList.append(duration17SpinBox); durList.append(duration18SpinBox); durList.append(duration19SpinBox); durList.append(duration20SpinBox); durList.append(duration21SpinBox); durList.append(duration22SpinBox); durList.append(duration23SpinBox); durList.append(duration24SpinBox); durList.append(duration25SpinBox); durList.append(duration26SpinBox); durList.append(duration27SpinBox); durList.append(duration28SpinBox); durList.append(duration29SpinBox); durList.append(duration30SpinBox); durList.append(duration31SpinBox); durList.append(duration32SpinBox); durList.append(duration33SpinBox); durList.append(duration34SpinBox); durList.append(duration35SpinBox); for(int i=0; i<MAX_SPLIT_OF_AN_ACTIVITY; i++) dur(i)->setMaximum(gt.rules.nHoursPerDay); activList.clear(); activList.append(active1CheckBox); activList.append(active2CheckBox); activList.append(active3CheckBox); activList.append(active4CheckBox); activList.append(active5CheckBox); activList.append(active6CheckBox); activList.append(active7CheckBox); activList.append(active8CheckBox); activList.append(active9CheckBox); activList.append(active10CheckBox); activList.append(active11CheckBox); activList.append(active12CheckBox); activList.append(active13CheckBox); activList.append(active14CheckBox); activList.append(active15CheckBox); activList.append(active16CheckBox); activList.append(active17CheckBox); activList.append(active18CheckBox); activList.append(active19CheckBox); activList.append(active20CheckBox); activList.append(active21CheckBox); activList.append(active22CheckBox); activList.append(active23CheckBox); activList.append(active24CheckBox); activList.append(active25CheckBox); activList.append(active26CheckBox); activList.append(active27CheckBox); activList.append(active28CheckBox); activList.append(active29CheckBox); activList.append(active30CheckBox); activList.append(active31CheckBox); activList.append(active32CheckBox); activList.append(active33CheckBox); activList.append(active34CheckBox); activList.append(active35CheckBox); connect(subgroupsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showSubgroupsChanged())); connect(groupsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showGroupsChanged())); connect(yearsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showYearsChanged())); connect(splitSpinBox, SIGNAL(valueChanged(int)), this, SLOT(splitChanged())); connect(closePushButton, SIGNAL(clicked()), this, SLOT(close())); connect(addActivityPushButton, SIGNAL(clicked()), this, SLOT(addActivity())); connect(helpPushButton, SIGNAL(clicked()), this, SLOT(help())); connect(allTeachersListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addTeacher())); connect(selectedTeachersListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeTeacher())); connect(allStudentsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addStudents())); connect(selectedStudentsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeStudents())); connect(allActivityTagsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addActivityTag())); connect(selectedActivityTagsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeActivityTag())); connect(clearActivityTagPushButton, SIGNAL(clicked()), this, SLOT(clearActivityTags())); connect(clearStudentsPushButton, SIGNAL(clicked()), this, SLOT(clearStudents())); connect(clearTeacherPushButton, SIGNAL(clicked()), this, SLOT(clearTeachers())); connect(minDayDistanceSpinBox, SIGNAL(valueChanged(int)), this, SLOT(minDaysChanged())); centerWidgetOnScreen(this); restoreFETDialogGeometry(this); QSize tmp3=subjectsComboBox->minimumSizeHint(); Q_UNUSED(tmp3); selectedStudentsListWidget->clear(); updateStudentsListWidget(); updateTeachersListWidget(); updateSubjectsComboBox(); updateActivityTagsListWidget(); minDayDistanceSpinBox->setMaximum(gt.rules.nDaysPerWeek); minDayDistanceSpinBox->setMinimum(0); minDayDistanceSpinBox->setValue(1); int nSplit=splitSpinBox->value(); for(int i=0; i<MAX_SPLIT_OF_AN_ACTIVITY; i++){ if(i<nSplit) subactivitiesTabWidget->setTabEnabled(i, true); else subactivitiesTabWidget->setTabEnabled(i, false); } minDayDistanceTextLabel->setEnabled(nSplit>=2); minDayDistanceSpinBox->setEnabled(nSplit>=2); percentageTextLabel->setEnabled(nSplit>=2 && minDayDistanceSpinBox->value()>0); percentageLineEdit->setEnabled(nSplit>=2 && minDayDistanceSpinBox->value()>0); forceConsecutiveCheckBox->setEnabled(nSplit>=2 && minDayDistanceSpinBox->value()>0); subactivitiesTabWidget->setCurrentIndex(0); nStudentsSpinBox->setMinimum(-1); nStudentsSpinBox->setMaximum(MAX_ROOM_CAPACITY); nStudentsSpinBox->setValue(-1); addActivityPushButton->setDefault(true); addActivityPushButton->setFocus(); if(teacherName!="") selectedTeachersListWidget->addItem(teacherName); if(studentsSetName!="") selectedStudentsListWidget->addItem(studentsSetName); if(subjectName!=""){ int pos=-1; for(int i=0; i<subjectsComboBox->count(); i++){ if(subjectsComboBox->itemText(i)==subjectName){ pos=i; break; } } assert(pos>=0); subjectsComboBox->setCurrentIndex(pos); } else{ //begin trick to pass a Qt 4.6.0 bug: the first entry is not highlighted with mouse until you move to second entry and then back up if(subjectsComboBox->view()){ subjectsComboBox->view()->setCurrentIndex(QModelIndex()); } //end trick subjectsComboBox->setCurrentIndex(-1); } if(activityTagName!="") selectedActivityTagsListWidget->addItem(activityTagName); }
ModifyActivityForm::ModifyActivityForm(QWidget* parent, int id, int activityGroupId): QDialog(parent) { setupUi(this); durList.clear(); durList.append(duration1SpinBox); durList.append(duration2SpinBox); durList.append(duration3SpinBox); durList.append(duration4SpinBox); durList.append(duration5SpinBox); durList.append(duration6SpinBox); durList.append(duration7SpinBox); durList.append(duration8SpinBox); durList.append(duration9SpinBox); durList.append(duration10SpinBox); durList.append(duration11SpinBox); durList.append(duration12SpinBox); durList.append(duration13SpinBox); durList.append(duration14SpinBox); durList.append(duration15SpinBox); durList.append(duration16SpinBox); durList.append(duration17SpinBox); durList.append(duration18SpinBox); durList.append(duration19SpinBox); durList.append(duration20SpinBox); durList.append(duration21SpinBox); durList.append(duration22SpinBox); durList.append(duration23SpinBox); durList.append(duration24SpinBox); durList.append(duration25SpinBox); durList.append(duration26SpinBox); durList.append(duration27SpinBox); durList.append(duration28SpinBox); durList.append(duration29SpinBox); durList.append(duration30SpinBox); durList.append(duration31SpinBox); durList.append(duration32SpinBox); durList.append(duration33SpinBox); durList.append(duration34SpinBox); durList.append(duration35SpinBox); for(int i=0; i<MAX_SPLIT_OF_AN_ACTIVITY; i++) dur(i)->setMaximum(gt.rules.nHoursPerDay); activList.clear(); activList.append(active1CheckBox); activList.append(active2CheckBox); activList.append(active3CheckBox); activList.append(active4CheckBox); activList.append(active5CheckBox); activList.append(active6CheckBox); activList.append(active7CheckBox); activList.append(active8CheckBox); activList.append(active9CheckBox); activList.append(active10CheckBox); activList.append(active11CheckBox); activList.append(active12CheckBox); activList.append(active13CheckBox); activList.append(active14CheckBox); activList.append(active15CheckBox); activList.append(active16CheckBox); activList.append(active17CheckBox); activList.append(active18CheckBox); activList.append(active19CheckBox); activList.append(active20CheckBox); activList.append(active21CheckBox); activList.append(active22CheckBox); activList.append(active23CheckBox); activList.append(active24CheckBox); activList.append(active25CheckBox); activList.append(active26CheckBox); activList.append(active27CheckBox); activList.append(active28CheckBox); activList.append(active29CheckBox); activList.append(active30CheckBox); activList.append(active31CheckBox); activList.append(active32CheckBox); activList.append(active33CheckBox); activList.append(active34CheckBox); activList.append(active35CheckBox); allTeachersListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedTeachersListWidget->setSelectionMode(QAbstractItemView::SingleSelection); allStudentsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedStudentsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); allActivityTagsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedActivityTagsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); connect(cancelPushButton, SIGNAL(clicked()), this, SLOT(cancel())); connect(okPushButton, SIGNAL(clicked()), this, SLOT(ok())); connect(clearTeacherPushButton, SIGNAL(clicked()), this, SLOT(clearTeachers())); connect(clearStudentsPushButton, SIGNAL(clicked()), this, SLOT(clearStudents())); connect(allTeachersListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addTeacher())); connect(selectedTeachersListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeTeacher())); connect(allStudentsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addStudents())); connect(selectedStudentsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeStudents())); connect(clearActivityTagPushButton, SIGNAL(clicked()), this, SLOT(clearActivityTags())); connect(allActivityTagsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addActivityTag())); connect(selectedActivityTagsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeActivityTag())); connect(showYearsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showYearsChanged())); connect(showGroupsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showGroupsChanged())); connect(showSubgroupsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showSubgroupsChanged())); connect(helpPushButton, SIGNAL(clicked()), this, SLOT(help())); centerWidgetOnScreen(this); restoreFETDialogGeometry(this); QSize tmp3=subjectsComboBox->minimumSizeHint(); Q_UNUSED(tmp3); this->_id=id; this->_activityGroupId=activityGroupId; for(int i=0; i<gt.rules.activitiesList.size(); i++){ Activity* act=gt.rules.activitiesList[i]; if(act->activityGroupId==this->_activityGroupId && act->id==this->_id) this->_activity=act; } this->_teachers=this->_activity->teachersNames; this->_subject = this->_activity->subjectName; this->_activityTags = this->_activity->activityTagsNames; this->_students=this->_activity->studentsNames; int nSplit; if(this->_activityGroupId!=0){ nSplit=0; for(int i=0; i<gt.rules.activitiesList.size(); i++){ Activity* act=gt.rules.activitiesList[i]; if(act->activityGroupId==this->_activityGroupId){ if(nSplit>=MAX_SPLIT_OF_AN_ACTIVITY){ assert(0); } else{ if(this->_id==act->id) subactivitiesTabWidget->setCurrentIndex(nSplit); dur(nSplit)->setValue(act->duration); activ(nSplit)->setChecked(act->active); nSplit++; } } } } else{ nSplit=1; dur(0)->setValue(this->_activity->duration); activ(0)->setChecked(this->_activity->active); subactivitiesTabWidget->setCurrentIndex(0); } splitSpinBox->setMinimum(nSplit); splitSpinBox->setMaximum(nSplit); splitSpinBox->setValue(nSplit); nStudentsSpinBox->setMinimum(-1); nStudentsSpinBox->setMaximum(MAX_ROOM_CAPACITY); nStudentsSpinBox->setValue(-1); if(this->_activity->computeNTotalStudents==false) nStudentsSpinBox->setValue(this->_activity->nTotalStudents); updateStudentsListWidget(); updateTeachersListWidget(); updateSubjectsComboBox(); updateActivityTagsListWidget(); selectedStudentsListWidget->clear(); for(QStringList::Iterator it=this->_students.begin(); it!=this->_students.end(); it++) selectedStudentsListWidget->addItem(*it); for(int i=0; i<MAX_SPLIT_OF_AN_ACTIVITY; i++) if(i<nSplit) subactivitiesTabWidget->setTabEnabled(i, true); else subactivitiesTabWidget->setTabEnabled(i, false); okPushButton->setDefault(true); okPushButton->setFocus(); foreach(Teacher* tch, gt.rules.teachersList) teacherNamesSet.insert(tch->name); foreach(Subject* sbj, gt.rules.subjectsList) subjectNamesSet.insert(sbj->name); foreach(ActivityTag* at, gt.rules.activityTagsList) activityTagNamesSet.insert(at->name); /*foreach(StudentsYear* year, gt.rules.yearsList){ numberOfStudentsHash.insert(year->name, year->numberOfStudents); foreach(StudentsGroup* group, year->groupsList){ numberOfStudentsHash.insert(group->name, group->numberOfStudents); foreach(StudentsSubgroup* subgroup, group->subgroupsList){ numberOfStudentsHash.insert(subgroup->name, subgroup->numberOfStudents); } } }*/ }