1 #include "taskfiltermodel.h"
4 #include <QSortFilterProxyModel>
6 #include "branchitem.h"
8 extern TaskModel *taskModel;
10 void TaskFilterModel::setFilter(bool b) { useFilter = b; }
12 void TaskFilterModel::setMapFilter(const QString &s) { mapFilter = s; }
14 void TaskFilterModel::setFilterNew(bool b) { filterNew = b; }
16 void TaskFilterModel::setFilterBlocker(bool b) { filterBlocker = b; }
18 void TaskFilterModel::setFilterFlags1(bool b) { filterFlags1 = b; }
20 void TaskFilterModel::setFilterFlags2(bool b) { filterFlags2 = b; }
22 void TaskFilterModel::setFilterFlags3(bool b) { filterFlags3 = b; }
24 bool TaskFilterModel::taskVisible(Task* task) const
27 QString mapname = task->getMapName();
28 if (mapname.isEmpty())
29 mapname = "justSomePseudoMapNameForFiltering";
30 if (!mapFilter.isEmpty() && mapname != mapFilter)
34 if (filterNew && task->getAwake() != Task::Morning)
37 BranchItem *bi = task->getBranch();
39 // Filter blocker tasks (stopsign)
40 if (filterBlocker && !bi->hasActiveFlag("stopsign") )
43 // Filter active tasks
44 if (useFilter && ((task->getSecsSleep() > 0) ||
45 (task->getStatus() == Task::Finished)))
49 if (filterFlags1 && filterFlags2) {
50 if (bi->hasActiveFlag("arrow-up") ||
51 bi->hasActiveFlag("2arrow-up"))
58 !bi->hasActiveFlag("arrow-up"))
62 !bi->hasActiveFlag("2arrow-up"))
65 // Filter flags: Flags, which have neither arrow-up nor 2arrow-up
67 (bi->hasActiveFlag("arrow-up") ||
68 bi->hasActiveFlag("2arrow-up")))
73 bool TaskFilterModel::filterAcceptsRow(int sourceRow,
74 const QModelIndex &sourceParent) const
76 QModelIndex ix = sourceModel()->index(sourceRow, 0, sourceParent);
78 return taskVisible(taskModel->getTask(ix));