File indexing completed on 2024-05-12 03:48:26
0001 /* 0002 File : SpreadsheetHeaderView.h 0003 Project : LabPlot 0004 Description : Horizontal header for SpreadsheetView displaying comments in a second header 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2016 Alexander Semke <alexander.semke@web.de> 0007 SPDX-FileCopyrightText: 2007 Tilman Benkert <thzs@gmx.net> 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 0011 #ifndef SPREADSHEETHEADERVIEW_H 0012 #define SPREADSHEETHEADERVIEW_H 0013 0014 #include <QHeaderView> 0015 0016 class SpreadsheetCommentsHeaderView : public QHeaderView { 0017 Q_OBJECT 0018 0019 public: 0020 explicit SpreadsheetCommentsHeaderView(QWidget* parent = nullptr); 0021 ~SpreadsheetCommentsHeaderView() override; 0022 0023 void setModel(QAbstractItemModel*) override; 0024 friend class SpreadsheetHeaderView; // access to paintSection (protected) 0025 }; 0026 0027 class SpreadsheetHeaderView : public QHeaderView { 0028 Q_OBJECT 0029 0030 public: 0031 explicit SpreadsheetHeaderView(QWidget* parent = nullptr); 0032 ~SpreadsheetHeaderView() override; 0033 0034 void setModel(QAbstractItemModel*) override; 0035 QSize sizeHint() const override; 0036 0037 void showComments(bool on = true); 0038 bool areCommentsShown() const; 0039 0040 private: 0041 SpreadsheetCommentsHeaderView* m_slave; 0042 bool m_showComments; 0043 0044 private Q_SLOTS: 0045 void refresh(); 0046 void headerDataChanged(Qt::Orientation, int logicalFirst, int logicalLast); 0047 0048 protected: 0049 void paintSection(QPainter*, const QRect&, int logicalIndex) const override; 0050 }; 0051 0052 #endif