]> git.sven.stormbind.net Git - sven/vym.git/blobdiff - taskmodel.cpp
New upstream version 2.9.22
[sven/vym.git] / taskmodel.cpp
diff --git a/taskmodel.cpp b/taskmodel.cpp
deleted file mode 100644 (file)
index 65b2f27..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-#include "taskmodel.h"
-
-#include <QDebug>
-
-#include "branchitem.h"
-#include "branchobj.h"
-#include "task.h"
-#include "vymmodel.h"
-
-TaskModel::TaskModel(QObject *parent)
-    : QAbstractTableModel(parent)
-{
-    showParentsLevel = 0;
-}
-
-QModelIndex TaskModel::index (Task* t)
-{
-    int n=tasks.indexOf (t);
-    if (n<0)
-       return QModelIndex();
-    else    
-       return createIndex (n,0,t);
-}
-
-QModelIndex TaskModel::indexRowEnd (Task* t)
-{
-    int n=tasks.indexOf (t);
-    if (n<0)
-       return QModelIndex();
-    else    
-       return createIndex (n,6,t);
-}
-
-Task* TaskModel::getTask (const QModelIndex &ix) const
-{
-    if (ix.isValid() )
-       return tasks.at (ix.row() );
-    else
-       return NULL;
-}
-
-int TaskModel::rowCount(const QModelIndex &parent) const
-{
-    Q_UNUSED(parent);
-    return tasks.size();
-}
-
-int TaskModel::columnCount(const QModelIndex &parent) const
-{
-    Q_UNUSED(parent);
-    return 7;
-}
-
-QVariant TaskModel::data(const QModelIndex &index, int role) const
-{
-    if (!index.isValid())
-        return QVariant();
-    
-    if (index.row() >= tasks.size() || index.row() < 0)
-        return QVariant();
-
-    BranchItem *bi=tasks.at(index.row())->getBranch();
-    Task *t=tasks.at(index.row() );
-
-    if (role == Qt::DisplayRole) 
-    {
-        if (index.column() == 0)
-            return t->getPriority();
-        else if (index.column() == 1)
-            return t->getStatusString() + " - " +t->getAwakeString();
-        else if (index.column() == 2)
-            return t->getAgeCreation();
-        else if (index.column() == 3)
-            return t->getAgeModified();
-        else if (index.column() == 4)
-            return t->getDaysSleep();
-        else if (index.column() == 5)
-        {
-            QString s = bi->getModel()->getMapName();
-            if (s.isEmpty() )
-                return "-";    
-            else
-                return bi->getModel()->getMapName();
-        }
-        else if (index.column() == 6)
-        {
-            BranchItem *bi = tasks.at(index.row())->getBranch();
-            return bi->getHeadingPlainWithParents( showParentsLevel );
-        }
-    } else if (role == Qt::DecorationRole && index.column() == 1)
-    {
-        return QIcon(":/flag-" + t->getIconString() + ".png");
-    }
-    else // role != Qt::DisplayRole
-    {
-       if (role == Qt::ForegroundRole && bi ) 
-           return bi->getHeadingColor();
-       if (role == Qt::BackgroundRole && bi ) 
-        {
-            BranchItem *frameBI=bi->getFramedParentBranch(bi);
-            if (frameBI && index.column() != 5)
-            {
-                BranchObj *bo=frameBI->getBranchObj();
-                if (bo) 
-                    // Return frame background
-                    return bo->getFrameBrushColor();
-            }
-            else
-            {
-                // Return map background
-                return bi->getModel()->getMapBackgroundColor();
-            }
-        }
-    }  
-
-    return QVariant();
-}
-
-QVariant TaskModel::headerData(int section, Qt::Orientation orientation, int role) const
-{
-    if (role != Qt::DisplayRole)
-        return QVariant();
-
-    if (orientation == Qt::Horizontal) {
-        switch (section) {
-            case 0:
-                return tr("Prio","TaskEditor");
-            case 1:
-                return tr("Status","TaskEditor");
-            case 2:
-                return tr("Age total","TaskEditor");
-            case 3:
-                return tr("Age mod.","TaskEditor");
-            case 4:
-                return tr("Sleep","TaskEditor");
-            case 5:
-                return tr("Map","TaskEditor");
-            case 6:
-                return tr("Task","TaskEditor");
-            default:
-                return QVariant();
-        }
-    }
-    return QVariant();
-}
-
-bool TaskModel::insertRows(int position, int rows, const QModelIndex &index, Task* t)
-{
-    Q_UNUSED(index);
-    beginInsertRows(QModelIndex(), position, position+rows-1);
-
-    for (int row=0; row < rows; row++) 
-        tasks.insert(position, t);
-
-    endInsertRows();
-    return true;
-}
-
-bool TaskModel::removeRows(int position, int rows, const QModelIndex &index)
-{
-    Q_UNUSED(index);
-    beginRemoveRows(QModelIndex(), position, position+rows-1);
-
-    for (int row=0; row < rows; ++row) 
-        delete (tasks.takeAt(position)) ;
-
-    endRemoveRows();
-    return true;
-}
-
-bool TaskModel::setData(const QModelIndex &index, Task* t, int role)
-{
-    if (index.isValid() && role == Qt::EditRole) 
-    {
-        int row = index.row();
-
-        tasks.replace(row, t);
-        emit(dataChanged(index, index));
-
-        return true;
-    }
-
-    return false;
-}
-
-void TaskModel::emitDataChanged (Task* t)
-{
-    QModelIndex ix=index (t);
-    if (ix.isValid() )
-    {
-       int row=ix.row();
-       int col=0;
-       while (col<columnCount(QModelIndex() ) )
-       {
-           ix=createIndex (row, col, t);
-           if (ix.isValid() ) emit(dataChanged(ix,ix) );
-           col++;  
-       }    
-    }
-}
-
-Qt::ItemFlags TaskModel::flags(const QModelIndex &index) const
-{
-    if (!index.isValid())
-        return Qt::ItemIsEnabled;
-
-    return QAbstractTableModel::flags(index) | Qt::ItemIsEditable;
-}
-
-int TaskModel::count (VymModel *model)
-{
-    if (!model) return tasks.size();
-    int n=0;
-    foreach (Task *t,tasks) if (t->getBranch()->getModel()==model) n++;
-    return n;
-}
-
-Task* TaskModel::createTask (BranchItem *bi)
-{
-    if (bi)
-    {
-       foreach (Task* t, tasks)
-       {
-           if (t->getBranch()==bi)
-           {
-               qWarning()<<"TaskModel::createTask Branch exists already!";
-               return NULL;
-           }
-       }
-       Task* task=new Task(this);
-       task->setBranch (bi);
-        task->setAwake(Task::Morning);
-        insertRows(tasks.count(), 1, QModelIndex(),task);
-
-       bi->setTask (task);
-
-       return task;
-    }
-    qWarning()<<"TaskEditor::addItem - item exists";
-    return NULL;
-}
-
-void TaskModel::deleteTask (Task* t)
-{
-    int pos=tasks.indexOf(t);
-    if (pos>=0)
-       removeRows(pos, 1,QModelIndex() );
-}
-
-void TaskModel::recalcPriorities() 
-{
-    emit (layoutAboutToBeChanged() );
-    int minPrio=1000000;
-    foreach (Task *t,tasks)
-    {   
-       int p=0;
-       BranchItem *bi=t->getBranch();
-
-       // Status
-       switch (t->getStatus() )
-       {
-           case Task::NotStarted: break;
-           case Task::WIP: p+=10; break;
-           case Task::Finished: p+=2000; break;
-       }
-
-       // Awake and sleeping
-       switch (t->getAwake() )
-       {
-           case Task::Morning: p-=1000; break;
-           case Task::WideAwake: break;
-           case Task::Sleeping: p+=1000 + t->getDaysSleep(); break;
-       }
-
-       // Color (importance)
-       QColor c = bi->getHeadingColor();
-
-        // light blueish green
-       if (c == QColor ("#00aa7f") ) p -= 20;
-
-        // green (e.g. from vym < 2.6.3 with #005500)
-       if (c.red() == 0 && c.blue() == 0 && c.green() < 160) p -= 40;
-
-        // orange
-       if (c == QColor ("#d95100") ) p -= 60;
-
-        // red
-       if (c == QColor ("#ff0000") ) p -= 80;
-
-       // Flags
-       if (bi->hasActiveStandardFlag ("stopsign") ) p-=800;
-
-       // Age
-       p-=t->getAgeModified();
-       p-=t->getAgeCreation() * 1.0 / 365 * 80; // After a year, this is as important as "red"
-
-        // Position in subtree
-        p += bi->num();
-
-       t->setPriority (p);
-       if (p<minPrio) minPrio=p;
-    }
-    // Normalize, so that most important task has prio 1
-    foreach (Task *t,tasks)
-    {   
-       t->setPriority (1-  minPrio + t->getPriority() );
-       //emitDataChanged (t);
-    }
-
-    emit (layoutChanged() );
-}
-
-void TaskModel::setShowParentsLevel(uint i)
-{
-    showParentsLevel = i;
-    recalcPriorities(); // Triggers update of view
-}
-
-uint TaskModel::getShowParentsLevel()
-{
-    return showParentsLevel;
-}
-