Fix painting issues when scrolling with pinned columns

This commit is contained in:
baldurk
2021-01-25 16:14:03 +00:00
parent 5aadf1d649
commit 1c37bfa02e
3 changed files with 12 additions and 2 deletions
@@ -23,11 +23,13 @@
******************************************************************************/
#include "RDHeaderView.h"
#include <QAbstractScrollArea>
#include <QLabel>
#include <QMouseEvent>
#include <QPainter>
#include <QPixmap>
#include <QPointer>
#include <QScrollBar>
#include <QTreeView>
#include "Code/QRDUtils.h"
@@ -497,6 +499,13 @@ void RDHeaderView::setColumnStretchHints(const QList<int> &hints)
resizeSectionsWithHints();
}
void RDHeaderView::setPinnedColumns(int numColumns, QAbstractScrollArea *scroll)
{
m_pinnedColumns = numColumns;
QObject::connect(scroll->horizontalScrollBar(), &QScrollBar::valueChanged,
[this]() { viewport()->update(); });
}
void RDHeaderView::setRootIndex(const QModelIndex &index)
{
QHeaderView::setRootIndex(index);
+2 -1
View File
@@ -27,6 +27,7 @@
#include <QHeaderView>
class QLabel;
class QAbstractScrollArea;
class RDHeaderView : public QHeaderView
{
@@ -62,7 +63,7 @@ public:
void setColumnGroupRole(int role) { m_columnGroupRole = role; }
int columnGroupRole() const { return m_columnGroupRole; }
void setPinnedColumns(int numColumns) { m_pinnedColumns = numColumns; }
void setPinnedColumns(int numColumns, QAbstractScrollArea *scroll);
int pinnedColumns() const { return m_pinnedColumns; }
void setCustomSizing(bool sizing) { m_customSizing = sizing; }
bool customSizing() const { return m_customSizing; }
+1 -1
View File
@@ -150,7 +150,7 @@ void RDTableView::setColumnGroupRole(int role)
void RDTableView::setPinnedColumns(int numColumns)
{
m_pinnedColumns = numColumns;
m_horizontalHeader->setPinnedColumns(numColumns);
m_horizontalHeader->setPinnedColumns(numColumns, this);
}
void RDTableView::keyPressEvent(QKeyEvent *e)