examples/tutorials/modelview/5_edit/mymodel.cpp
changeset 37 758a864f9613
parent 33 3e2da88830cd
--- a/examples/tutorials/modelview/5_edit/mymodel.cpp	Fri Sep 17 08:34:18 2010 +0300
+++ b/examples/tutorials/modelview/5_edit/mymodel.cpp	Mon Oct 04 01:19:32 2010 +0300
@@ -38,62 +38,64 @@
 **
 ****************************************************************************/
 
-//! [quoting mymodel_d]
+
 #include "mymodel.h"
 
-const int COLS= 3;
-const int ROWS= 2;
 
 MyModel::MyModel(QObject *parent)
     :QAbstractTableModel(parent)
 {
-    //gridData needs to have 6 element, one for each table cell
-    m_gridData << "1/1" << "1/2" << "1/3" << "2/1" << "2/2" << "2/3" ;
 }
-//! [quoting mymodel_d]
 
-//! [quoting mymodel_e]
+//-----------------------------------------------------------------
 int MyModel::rowCount(const QModelIndex & /*parent*/) const
 {
     return ROWS;
 }
 
+//-----------------------------------------------------------------
 int MyModel::columnCount(const QModelIndex & /*parent*/) const
 {
     return COLS;
 }
 
+//-----------------------------------------------------------------
 QVariant MyModel::data(const QModelIndex &index, int role) const
 {
     if (role == Qt::DisplayRole)
     {
-        return m_gridData[modelIndexToOffset(index)];
+        return m_gridData[index.row()][index.column()];
     }
     return QVariant();
 }
-//! [quoting mymodel_e]
 
 //-----------------------------------------------------------------
-
-//! [quoting mymodel_f]
+//! [quoting mymodel_e]
 bool MyModel::setData(const QModelIndex & index, const QVariant & value, int role)
 {
     if (role == Qt::EditRole)
     {
-        m_gridData[modelIndexToOffset(index)] = value.toString();
-        emit editCompleted(m_gridData.join(" | "));
+        //save value from editor to member m_gridData
+        m_gridData[index.row()][index.column()] = value.toString();
+	//for presentation purposes only: build and emit a joined string
+	QString result; 
+	for(int row= 0; row < ROWS; row++)
+	{
+            for(int col= 0; col < COLS; col++)
+	    {
+	        result += m_gridData[row][col] + " ";
+	    }
+        }
+        emit editCompleted( result );
     }
     return true;
 }
+//! [quoting mymodel_e]
 
+//-----------------------------------------------------------------
+//! [quoting mymodel_f]
 Qt::ItemFlags MyModel::flags(const QModelIndex & /*index*/) const
 {
     return Qt::ItemIsSelectable |  Qt::ItemIsEditable | Qt::ItemIsEnabled ;
 }
-
-//convert row and column information to array offset
-int MyModel::modelIndexToOffset(const QModelIndex & index) const
-{
-    return index.row()*COLS + index.column();
-}
 //! [quoting mymodel_f]