diff edres.cpp @ 403:d34922e6a244

Even more work towards the editor.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 19 Oct 2012 21:52:16 +0300
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/edres.cpp	Fri Oct 19 21:52:16 2012 +0300
@@ -0,0 +1,74 @@
+#include "edres.h"
+#include "dmengine.h"
+
+
+QEDResourceModel::QEDResourceModel(QObject *parent)
+    : QAbstractTableModel(parent)
+{
+}
+
+
+int QEDResourceModel::rowCount(const QModelIndex &parent) const
+{
+    Q_UNUSED(parent);
+    return nengineEffects;
+}
+
+
+int QEDResourceModel::columnCount(const QModelIndex &parent) const
+{
+    Q_UNUSED(parent);
+    return 2;
+}
+
+
+QVariant QEDResourceModel::data(const QModelIndex &index, int role) const
+{
+    if (!index.isValid())
+        return QVariant();
+
+    if (index.row() >= nengineEffects || index.row() < 0)
+        return QVariant();
+
+    if (role == Qt::DisplayRole)
+    {
+        DMEffect *ef = &engineEffects[index.row()];
+        switch (index.column())
+        {
+            case 0:
+                return QString(ef->name);
+
+            case 1:
+                return QVariant(ef->nparams);
+        }
+    }
+    return QVariant();
+}
+
+
+QVariant QEDResourceModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+    if (role != Qt::DisplayRole)
+        return QVariant();
+
+    if (orientation == Qt::Horizontal)
+    {
+        switch (section) {
+            case 0:
+                return "Name";
+
+            case 1:
+                return "# params";
+        }
+    }
+    return QVariant();
+}
+
+
+Qt::ItemFlags QEDResourceModel::flags(const QModelIndex &index) const
+{
+    if (!index.isValid())
+        return Qt::ItemIsEnabled;
+
+    return QAbstractTableModel::flags(index); // | Qt::ItemIsEditable;
+}