From 4827623acb5e239039e53f23dad39bd5bca21224 Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Wed, 18 Jun 2014 09:58:01 +0200 Subject: Address Book example: Fix QTableView column sorting Rearrange the code so that QTableView::setSortingEnabled() is called after setting up the sort filter. This ensures that new entries added to the model always follow the column header's sort order. Task-number: QTBUG-39585 Change-Id: Iaec8aa9342981817a019473ba12bad52cdbdfbb8 Reviewed-by: Mitch Curtis Reviewed-by: Friedemann Kleint --- examples/widgets/itemviews/addressbook/addresswidget.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'examples/widgets/itemviews') diff --git a/examples/widgets/itemviews/addressbook/addresswidget.cpp b/examples/widgets/itemviews/addressbook/addresswidget.cpp index cd6f4a5534..5db470a39b 100644 --- a/examples/widgets/itemviews/addressbook/addresswidget.cpp +++ b/examples/widgets/itemviews/addressbook/addresswidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. @@ -163,24 +163,23 @@ void AddressWidget::setupTabs() for (int i = 0; i < groups.size(); ++i) { QString str = groups.at(i); + QString regExp = QString("^[%1].*").arg(str); proxyModel = new QSortFilterProxyModel(this); proxyModel->setSourceModel(table); + proxyModel->setFilterRegExp(QRegExp(regExp, Qt::CaseInsensitive)); + proxyModel->setFilterKeyColumn(0); QTableView *tableView = new QTableView; tableView->setModel(proxyModel); - tableView->setSortingEnabled(true); + tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->horizontalHeader()->setStretchLastSection(true); tableView->verticalHeader()->hide(); tableView->setEditTriggers(QAbstractItemView::NoEditTriggers); tableView->setSelectionMode(QAbstractItemView::SingleSelection); - QString newStr = QString("^[%1].*").arg(str); - - proxyModel->setFilterRegExp(QRegExp(newStr, Qt::CaseInsensitive)); - proxyModel->setFilterKeyColumn(0); - proxyModel->sort(0, Qt::AscendingOrder); + tableView->setSortingEnabled(true); connect(tableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), -- cgit v1.2.3