summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews
diff options
context:
space:
mode:
authorThorbjørn Lund Martsum <tmartsum@gmail.com>2020-07-15 09:24:20 +0200
committerThorbjørn Lund Martsum <tmartsum@gmail.com>2020-07-31 14:58:54 +0200
commit24d60cb64d2d2d677612d8f517031b38c685ee7b (patch)
treeb453a9a0b1a5d47aef4ae13ea08291f4e13f65f5 /src/widgets/itemviews
parent9c0f448f5a4e2e96e9b801c751c0a145c0eb6dad (diff)
Make initStyleOption virtual for various classes
Often a simple change in the styleoptions is needed in e.g a paintEvent, but it was impossible without copying the whole paint-function which is not always trivial and also wouldn't be kept up-to-date if it was changed in Qt. The initStyleOption is similar to viewOptions in QAbstractTableView and it is handy that this function is virtual. Furthermore QStyledItemDelegate::initStyleOption is already virtual. This change only makes initStyleOption virtual for public classes. [ChangeLog][QtWidgets] InitStyleOption has been made virtual in public Qt classes to make override of stylebehavior more simple. Change-Id: I38974c6d4dd0793ca5976ecf3aa28892215a1579 Task-number: QTBUG-77642 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Diffstat (limited to 'src/widgets/itemviews')
-rw-r--r--src/widgets/itemviews/qheaderview.cpp8
-rw-r--r--src/widgets/itemviews/qheaderview.h4
2 files changed, 11 insertions, 1 deletions
diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp
index 3c5469f128..fcb74370c7 100644
--- a/src/widgets/itemviews/qheaderview.cpp
+++ b/src/widgets/itemviews/qheaderview.cpp
@@ -3385,6 +3385,14 @@ void QHeaderView::initStyleOption(QStyleOptionHeader *option) const
option->section = 0;
}
+void QHeaderView::initStyleOption(QStyleOptionFrame *option) const
+{
+ // The QFrame version is only here to avoid compiler warnings.
+ // If invoked (it can be invoked with QFrame *f = headerview; f->initStyleOption()),
+ // and here we just pass it on to the frame version.
+ QFrame::initStyleOption(option);
+}
+
bool QHeaderViewPrivate::isSectionSelected(int section) const
{
int i = section * 2;
diff --git a/src/widgets/itemviews/qheaderview.h b/src/widgets/itemviews/qheaderview.h
index 6cfa9a8bf0..6bbfb8449c 100644
--- a/src/widgets/itemviews/qheaderview.h
+++ b/src/widgets/itemviews/qheaderview.h
@@ -230,12 +230,14 @@ protected:
QModelIndex moveCursor(CursorAction, Qt::KeyboardModifiers) override;
void setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags flags) override;
QRegion visualRegionForSelection(const QItemSelection &selection) const override;
- void initStyleOption(QStyleOptionHeader *option) const;
+ virtual void initStyleOption(QStyleOptionHeader *option) const;
friend class QTableView;
friend class QTreeView;
private:
+ void initStyleOption(QStyleOptionFrame *option) const override;
+
// ### Qt6: make them protected slots in QHeaderViewPrivate
Q_PRIVATE_SLOT(d_func(), void _q_sectionsRemoved(const QModelIndex &parent, int logicalFirst, int logicalLast))
Q_PRIVATE_SLOT(d_func(), void _q_sectionsAboutToBeMoved(const QModelIndex &sourceParent, int logicalStart, int logicalEnd, const QModelIndex &destinationParent, int logicalDestination))