|
From: <cn...@us...> - 2024-08-21 19:56:51
|
Revision: 1514
http://sourceforge.net/p/seq/svn/1514
Author: cn187
Date: 2024-08-21 19:56:50 +0000 (Wed, 21 Aug 2024)
Log Message:
-----------
Improvements to column sort/reorder/hide behavior
Modified Paths:
--------------
showeq/trunk/src/seqlistview.cpp
showeq/trunk/src/seqlistview.h
Modified: showeq/trunk/src/seqlistview.cpp
===================================================================
--- showeq/trunk/src/seqlistview.cpp 2024-08-19 01:31:27 UTC (rev 1513)
+++ showeq/trunk/src/seqlistview.cpp 2024-08-21 19:56:50 UTC (rev 1514)
@@ -51,8 +51,11 @@
setSelectionMode(QAbstractItemView::SingleSelection);
setSelectionBehavior(QAbstractItemView::SelectRows);
- // don't stretch the last column, otherwise we can't hide it
- header()->setStretchLastSection(false);
+#if (QT_VERSION >= QT_VERSION_CHECK(5,11,0))
+ header()->setFirstSectionMovable(true);
+ connect(header(), SIGNAL(sortIndicatorChanged(int, Qt::SortOrder)), this, SLOT(setSorting(int, Qt::SortOrder)));
+#endif
+
}
SEQListView::~SEQListView()
@@ -119,6 +122,13 @@
sortByColumn(column, increasing ? Qt::AscendingOrder : Qt::DescendingOrder);
}
+void SEQListView::setSorting(int column, Qt::SortOrder order)
+{
+ m_sortColumn = column;
+ m_sortIncreasing = (order == Qt::AscendingOrder) ? true : false;
+ sortByColumn(column, order);
+}
+
void SEQListView::savePrefs()
{
// only save the preferences if visible
@@ -134,7 +144,7 @@
{
columnName = columnPreferenceName(i);
width = columnWidth(i);
- if (width != 0)
+ if (!header()->isSectionHidden(i) && width != 0)
{
pSEQPrefs->setPrefInt(columnName + "Width", preferenceName(), width);
pSEQPrefs->setPrefBool(show + columnName, preferenceName(), true);
@@ -202,6 +212,7 @@
#endif
header()->resizeSection(i, width);
setColumnWidth(i, width);
+ header()->setSectionHidden(i, false);
}
else
{
@@ -213,6 +224,7 @@
#endif
header()->resizeSection(i, 0);
setColumnWidth(i, 0);
+ header()->setSectionHidden(i, true);
}
}
@@ -274,6 +286,9 @@
header()->resizeSection(column, width);
setColumnWidth(column, width);
+ header()->setSectionHidden(column, !visible);
+
+
// set the the preferences as to if the column is shown
pSEQPrefs->setPrefBool(QString("Show") + columnName, preferenceName(),
(width != 0));
Modified: showeq/trunk/src/seqlistview.h
===================================================================
--- showeq/trunk/src/seqlistview.h 2024-08-19 01:31:27 UTC (rev 1513)
+++ showeq/trunk/src/seqlistview.h 2024-08-21 19:56:50 UTC (rev 1514)
@@ -69,6 +69,7 @@
virtual void restoreColumns(void);
virtual void savePrefs(void);
void setColumnVisible(int column, bool visible);
+ virtual void setSorting(int column, Qt::SortOrder order);
void mousePressEvent(QMouseEvent* event);
signals:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|