![]() |
Mixxx
|
00001 // wtracktableviewheader.h 00002 // Created 1/2/2010 by RJ Ryan (rryan@mit.edu) 00003 00004 #ifndef WTRACKTABLEVIEWHEADER_H 00005 #define WTRACKTABLEVIEWHEADER_H 00006 00007 #include <QAction> 00008 #include <QHeaderView> 00009 #include <QMap> 00010 #include <QMenu> 00011 #include <QSignalMapper> 00012 #include <QWidget> 00013 #include <QContextMenuEvent> 00014 00015 class TrackModel; 00016 00017 class WTrackTableViewHeader : public QHeaderView { 00018 Q_OBJECT 00019 public: 00020 WTrackTableViewHeader(Qt::Orientation orientation, QWidget* parent = 0); 00021 virtual ~WTrackTableViewHeader(); 00022 00023 void contextMenuEvent(QContextMenuEvent* event); 00024 virtual void setModel(QAbstractItemModel* model); 00025 00026 void saveHeaderState(); 00027 void restoreHeaderState(); 00029 bool hasPersistedHeaderState(); 00030 00031 private slots: 00032 void showOrHideColumn(int); 00033 00034 private: 00035 int hiddenCount(); 00036 void clearActions(); 00037 TrackModel* getTrackModel(); 00038 00039 QMenu m_menu; 00040 QMap<int, QAction*> m_columnActions; 00041 QSignalMapper m_signalMapper; 00042 }; 00043 00044 #endif /* WTRACKTABLEVIEWHEADER_H */