summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2013-12-27 11:00:07 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-06 13:50:20 +0100
commit48fb35c781c8f981e7290299df748438bf1afcd2 (patch)
tree5709d450a833271b9e3229bf9d434fe06fdfd851
parent905105b711787eba00a7279f5d6cc15942de54e3 (diff)
downloadqtenginio-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>
-rw-r--r--examples/enginio/widgets/cloudaddressbook/mainwindow.cpp9
-rw-r--r--examples/enginio/widgets/cloudaddressbook/mainwindow.h3
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