diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-12-27 11:00:07 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-01-06 13:50:20 +0100 |
commit | 48fb35c781c8f981e7290299df748438bf1afcd2 (patch) | |
tree | 5709d450a833271b9e3229bf9d434fe06fdfd851 /examples | |
parent | 905105b711787eba00a7279f5d6cc15942de54e3 (diff) | |
download | qtenginio-48fb35c781c8f981e7290299df748438bf1afcd2.tar.gz |
Fix row removal after sorting in addressbook example
Task-number: QTBUG-35712
Change-Id: Iaae9c9cc184860c67a66040378a35c2a585004a7
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/enginio/widgets/cloudaddressbook/mainwindow.cpp | 9 | ||||
-rw-r--r-- | examples/enginio/widgets/cloudaddressbook/mainwindow.h | 3 |
2 files changed, 8 insertions, 4 deletions
diff --git a/examples/enginio/widgets/cloudaddressbook/mainwindow.cpp b/examples/enginio/widgets/cloudaddressbook/mainwindow.cpp index 32352e7..f54ff2e 100644 --- a/examples/enginio/widgets/cloudaddressbook/mainwindow.cpp +++ b/examples/enginio/widgets/cloudaddressbook/mainwindow.cpp @@ -85,10 +85,10 @@ MainWindow::MainWindow(QWidget *parent) tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); //![assignProxyModel] - QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this); - proxyModel->setSourceModel(model); + sortFilterProxyModel = new QSortFilterProxyModel(this); + sortFilterProxyModel->setSourceModel(model); tableView->setSortingEnabled(true); - tableView->setModel(proxyModel); + tableView->setModel(sortFilterProxyModel); //![assignProxyModel] // create the full text search based on searchEdit text value @@ -135,7 +135,8 @@ void MainWindow::onSelectionChanged() void MainWindow::onRemoveRow() { foreach (const QModelIndex &index, tableView->selectionModel()->selectedRows()) { - EnginioReply *reply = model->remove(index.row()); + QModelIndex sourceIndex = sortFilterProxyModel->mapToSource(index); + EnginioReply *reply = model->remove(sourceIndex.row()); QObject::connect(reply, &EnginioReply::finished, reply, &EnginioReply::deleteLater); } } diff --git a/examples/enginio/widgets/cloudaddressbook/mainwindow.h b/examples/enginio/widgets/cloudaddressbook/mainwindow.h index 7161792..979b08c 100644 --- a/examples/enginio/widgets/cloudaddressbook/mainwindow.h +++ b/examples/enginio/widgets/cloudaddressbook/mainwindow.h @@ -47,12 +47,14 @@ QT_BEGIN_NAMESPACE class EnginioClient; class EnginioReply; +class QSortFilterProxyModel; QT_END_NAMESPACE QT_USE_NAMESPACE class AddressBookModel; + class MainWindow : public QMainWindow, Ui_MainWindow { Q_OBJECT @@ -74,6 +76,7 @@ private: // Enginio object model containing addresses AddressBookModel *model; + QSortFilterProxyModel *sortFilterProxyModel; }; #endif // MAINWINDOW_H |