]> Some of my projects - graph.git/commitdiff
Add color decoration to Edge model node and color columns.
authorAPTX <marek321@gmail.com>
Tue, 13 Dec 2011 13:55:49 +0000 (14:55 +0100)
committerAPTX <marek321@gmail.com>
Tue, 13 Dec 2011 13:55:49 +0000 (14:55 +0100)
edgemodel.cpp
nodemodel.cpp

index 974a9dea5ca209b8afe7ad27e73f15c4365cc3b2..6736c6a2059865aa9e1be1ba100a9b85b8fa12ff 100644 (file)
@@ -51,10 +51,27 @@ int EdgeModel::columnCount(const QModelIndex &) const
 
 QVariant EdgeModel::data(const QModelIndex &index, int role) const
 {
+       Edge *e = g->m_edgeList[index.row()];
+
+       if (role == Qt::DecorationRole)
+       {
+               switch (index.column())
+               {
+                       case 0:
+                               return e->startNode()->color();
+                       case 1:
+                               return e->endNode()->color();
+                       case 3:
+                               return e->color();
+                       default:
+                       break;
+               }
+               return QVariant();
+       }
+
        if (role != Qt::DisplayRole && role != Qt::EditRole)
                return QVariant();
 
-       Edge *e = g->m_edgeList[index.row()];
        switch (index.column())
        {
                case 0:
index b2a2596364ec7abfab9c7e90452461b89b9814be..10a7d77973cef33479ed0f0394ce359302c08f76 100644 (file)
@@ -90,6 +90,7 @@ bool NodeModel::setData(const QModelIndex &index, const QVariant &value, int rol
                case 1:
                        n->setColor(value.value<QColor>());
                        n->update();
+                       g->labelChanged();
                        return true;
                case 2:
                        r = value.toReal(&ok);