1 /*************************************************************************** 2 ** ** 3 ** Polyphone, a soundfont editor ** 4 ** Copyright (C) 2013-2020 Davy Triponney ** 5 ** ** 6 ** This program is free software: you can redistribute it and/or modify ** 7 ** it under the terms of the GNU General Public License as published by ** 8 ** the Free Software Foundation, either version 3 of the License, or ** 9 ** (at your option) any later version. ** 10 ** ** 11 ** This program is distributed in the hope that it will be useful, ** 12 ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** 13 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** 14 ** GNU General Public License for more details. ** 15 ** ** 16 ** You should have received a copy of the GNU General Public License ** 17 ** along with this program. If not, see http://www.gnu.org/licenses/. ** 18 ** ** 19 **************************************************************************** 20 ** Author: Davy Triponney ** 21 ** Website/Contact: https://www.polyphone-soundfonts.com ** 22 ** Date: 01.01.2013 ** 23 ***************************************************************************/ 24 25 #ifndef TABLEHEADERVIEW_H 26 #define TABLEHEADERVIEW_H 27 28 #include <QHeaderView> 29 #include "basetypes.h" 30 class SoloManager; 31 32 class TableHeaderView: public QHeaderView 33 { 34 Q_OBJECT 35 36 public: 37 TableHeaderView(QWidget *parent = nullptr); 38 ~TableHeaderView(); 39 40 signals: 41 void rightClick(QPoint pos); 42 43 protected: 44 void mousePressEvent(QMouseEvent * e); 45 void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const; 46 QSize sizeHint() const; 47 48 private slots: 49 void mute(bool isMute); 50 void activateSolo(bool unused); 51 void unmuteAll(bool unused); 52 void soloOnSelection(bool isOn); 53 54 private: 55 QPixmap _muteIcon; 56 QMenu * _menu; 57 QAction * _muteAction; 58 QAction * _soloAction; 59 QAction * _clearAction; 60 QAction * _soloSelectionAction; 61 int _currentSection; 62 EltID _currentId; 63 int _height; 64 SoloManager * _solo; 65 66 static const int MARGIN; 67 }; 68 69 #endif // TABLEHEADERVIEW_H 70