diff options
Diffstat (limited to 'examples/tutorials/modelview/5_edit')
-rwxr-xr-x[-rw-r--r--] | examples/tutorials/modelview/5_edit/5_edit.pro | 12 | ||||
-rwxr-xr-x[-rw-r--r--] | examples/tutorials/modelview/5_edit/main.cpp | 4 | ||||
-rwxr-xr-x[-rw-r--r--] | examples/tutorials/modelview/5_edit/mainwindow.cpp (renamed from examples/tutorials/modelview/5_edit/modelview.cpp) | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | examples/tutorials/modelview/5_edit/mainwindow.h (renamed from examples/tutorials/modelview/5_edit/modelview.h) | 13 | ||||
-rwxr-xr-x[-rw-r--r--] | examples/tutorials/modelview/5_edit/mymodel.cpp | 40 | ||||
-rwxr-xr-x[-rw-r--r--] | examples/tutorials/modelview/5_edit/mymodel.h | 9 |
6 files changed, 48 insertions, 36 deletions
diff --git a/examples/tutorials/modelview/5_edit/5_edit.pro b/examples/tutorials/modelview/5_edit/5_edit.pro index e18c596..2ef343f 100644..100755 --- a/examples/tutorials/modelview/5_edit/5_edit.pro +++ b/examples/tutorials/modelview/5_edit/5_edit.pro @@ -3,8 +3,16 @@ TARGET = mv_edit TEMPLATE = app SOURCES += main.cpp \ - modelview.cpp \ + mainwindow.cpp \ mymodel.cpp -HEADERS += modelview.h \ +HEADERS += mainwindow.h \ mymodel.h + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/5_edit +sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS 5_edit.pro +sources.path = $$[QT_INSTALL_EXAMPLES]/tutorials/modelview/5_edit +INSTALLS += target sources + +symbian: include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) diff --git a/examples/tutorials/modelview/5_edit/main.cpp b/examples/tutorials/modelview/5_edit/main.cpp index 7be212e..59e82ef 100644..100755 --- a/examples/tutorials/modelview/5_edit/main.cpp +++ b/examples/tutorials/modelview/5_edit/main.cpp @@ -39,12 +39,12 @@ ****************************************************************************/ #include <QtGui/QApplication> -#include "modelview.h" +#include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); - ModelView w; + MainWindow w; w.show(); return a.exec(); } diff --git a/examples/tutorials/modelview/5_edit/modelview.cpp b/examples/tutorials/modelview/5_edit/mainwindow.cpp index a6c6ef5..542f3d6 100644..100755 --- a/examples/tutorials/modelview/5_edit/modelview.cpp +++ b/examples/tutorials/modelview/5_edit/mainwindow.cpp @@ -39,10 +39,10 @@ ****************************************************************************/ #include <QTableView> -#include "modelview.h" +#include "mainwindow.h" #include "mymodel.h" -ModelView::ModelView(QWidget *parent) +MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { tableView = new QTableView(this); @@ -54,7 +54,7 @@ ModelView::ModelView(QWidget *parent) connect(myModel, SIGNAL(editCompleted(const QString &)), this, SLOT(setWindowTitle(const QString &))); } -void ModelView::showWindowTitle(const QString & title) +void MainWindow::showWindowTitle(const QString & title) { setWindowTitle(title); } diff --git a/examples/tutorials/modelview/5_edit/modelview.h b/examples/tutorials/modelview/5_edit/mainwindow.h index 069107b..ac5b77b 100644..100755 --- a/examples/tutorials/modelview/5_edit/modelview.h +++ b/examples/tutorials/modelview/5_edit/mainwindow.h @@ -38,22 +38,21 @@ ** ****************************************************************************/ -#ifndef MODELVIEW_H -#define MODELVIEW_H +#ifndef MAINWINDOW_H +#define MAINWINDOW_H #include <QtGui/QMainWindow> +#include <QtGui/QTableView> -QT_FORWARD_DECLARE_CLASS(QTableView) - -class ModelView : public QMainWindow +class MainWindow : public QMainWindow { Q_OBJECT private: QTableView *tableView; public: - ModelView(QWidget *parent = 0); + MainWindow(QWidget *parent = 0); public slots: void showWindowTitle(const QString & title); }; -#endif // MODELVIEW_H +#endif // MAINWINDOW_H diff --git a/examples/tutorials/modelview/5_edit/mymodel.cpp b/examples/tutorials/modelview/5_edit/mymodel.cpp index 67181ca..e2fd391 100644..100755 --- a/examples/tutorials/modelview/5_edit/mymodel.cpp +++ b/examples/tutorials/modelview/5_edit/mymodel.cpp @@ -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] diff --git a/examples/tutorials/modelview/5_edit/mymodel.h b/examples/tutorials/modelview/5_edit/mymodel.h index 0d2a1b8..574808e 100644..100755 --- a/examples/tutorials/modelview/5_edit/mymodel.h +++ b/examples/tutorials/modelview/5_edit/mymodel.h @@ -44,7 +44,11 @@ //! [Quoting ModelView Tutorial] // mymodel.h #include <QAbstractTableModel> -#include <QStringList> +#include <QString> + +const int COLS= 3; +const int ROWS= 2; + class MyModel : public QAbstractTableModel { @@ -57,8 +61,7 @@ public: bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole); Qt::ItemFlags flags(const QModelIndex & index) const ; private: - QStringList m_gridData; //holds text entered into QTableView - int modelIndexToOffset(const QModelIndex & index) const; + QString m_gridData[ROWS][COLS]; //holds text entered into QTableView signals: void editCompleted(const QString &); }; |