00001 #include "pupilactions.h" 00002 00003 PupilActions::PupilActions(QWidget *parent) : QWidget(parent) 00004 { 00005 setupUi(this); 00006 filter = new ExerciseFilterModel(); 00007 createActions(); 00008 } 00009 00010 void PupilActions::createActions() 00011 { 00012 connect(filterText, SIGNAL(textChanged(QString)), filter, SLOT(setFilterFixedString(QString))); 00013 connect(exerciseSelectionView, SIGNAL(clicked(QModelIndex)), this, SIGNAL(createTree(QModelIndex))); 00014 } 00015 00016 void PupilActions::readExercise(DataProject *project) 00017 { 00018 this->project = project; 00019 00020 model = new ExerciseModel(true, project); 00021 connect(model, SIGNAL(resetView()), exerciseSelectionView, SLOT(resetView())); 00022 connect(model, SIGNAL(resetView()), exerciseCompletionPieChart, SLOT(reset())); 00023 00024 filter->setSourceModel(model); 00025 filter->setDynamicSortFilter(true); 00026 filter->setFilterCaseSensitivity(Qt::CaseInsensitive); 00027 exerciseSelectionView->setModel(filter); 00028 exerciseSelectionView->expandAll(); 00029 00030 groupResult->show(); 00031 } 00032 00033 void PupilActions::readTask(DataProject *project) 00034 { 00035 this->project = project; 00036 00037 model = new ExerciseModel(false, project); 00038 connect(model, SIGNAL(resetView()), exerciseSelectionView, SLOT(resetView())); 00039 connect(model, SIGNAL(resetView()), exerciseCompletionPieChart, SLOT(reset())); 00040 00041 filter->setSourceModel(model); 00042 filter->setDynamicSortFilter(true); 00043 filter->setFilterCaseSensitivity(Qt::CaseInsensitive); 00044 exerciseSelectionView->setModel(filter); 00045 exerciseSelectionView->expandAll(); 00046 00047 groupResult->hide(); 00048 } 00049 00050 void PupilActions::changeStateInModel(QString exercise, int exerciseId, DataExerciseStatus state) 00051 { 00052 connect(model, SIGNAL(setSelection(uint,int)), this, SLOT(changeSelection(uint, int))); 00053 model->editState(exercise, exerciseId, state); 00054 } 00055 00056 void PupilActions::changeSelection(uint chapterId, int exerciseId) 00057 { 00058 QModelIndex index = model->index(chapterId, 0); 00059 QModelIndex exercise = model->index(exerciseId, 0, index); 00060 qDebug()<<"BUG: selectionView doesn't set current index to RIGHT index"; 00061 exerciseSelectionView->setCurrentIndex(exercise); 00062 exerciseSelectionView->scrollTo(exercise, QAbstractItemView::PositionAtCenter); 00063 }