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 }