Visual sort indicators for multi-column sorting (#1810)

This adds visual sort indicators to the already working multi-column
sorting. Qt sort indicator is disabled, so only one indicator per column
is visible.

Unicode characters are used to indicate direction (triangles) and sort
column order (superscript numbers).

See issue #1761
This commit is contained in:
Manuel
2019-03-28 05:05:27 +01:00
committed by Justin Clift
parent 564d54ec5e
commit ea2aa495b3
4 changed files with 32 additions and 19 deletions

View File

@@ -749,9 +749,6 @@ void MainWindow::populateTable()
for(int i=1;i<m_browseTableModel->columnCount();i++)
ui->dataTable->setColumnWidth(i, ui->dataTable->horizontalHeader()->defaultSectionSize());
// Sorting
ui->dataTable->filterHeader()->setSortIndicator(0, Qt::AscendingOrder);
// Encoding
m_browseTableModel->setEncoding(defaultBrowseTableEncoding);
@@ -849,15 +846,6 @@ void MainWindow::applyBrowseTableSettings(BrowseDataTableSettings storedData, bo
for(auto widthIt=storedData.columnWidths.constBegin();widthIt!=storedData.columnWidths.constEnd();++widthIt)
ui->dataTable->setColumnWidth(widthIt.key(), widthIt.value());
// Sorting
// For now just use the first sort column for the sort indicator
if(storedData.query.orderBy().size())
{
ui->dataTable->filterHeader()->setSortIndicator(
storedData.query.orderBy().front().column,
storedData.query.orderBy().front().direction == sqlb::Ascending ? Qt::AscendingOrder : Qt::DescendingOrder);
}
// Filters
if(!skipFilters)
{