1 /* 2 SPDX-FileCopyrightText: 2010 Michal Malek <michalm@jabster.pl> 3 SPDX-FileCopyrightText: 1998-2010 Sebastian Trueg <trueg@k3b.org> 4 5 SPDX-License-Identifier: GPL-2.0-or-later 6 */ 7 8 #ifndef K3BVCDTRACKKEYSMODEL_H 9 #define K3BVCDTRACKKEYSMODEL_H 10 11 #include <QAbstractTableModel> 12 #include <QMap> 13 14 15 namespace K3b { 16 17 class VcdTrack; 18 19 class VcdTrackKeysModel : public QAbstractTableModel 20 { 21 public: 22 enum Columns { 23 KeyColumn, 24 PlayingColumn, 25 ColumnCount 26 }; 27 28 enum Roles { 29 TrackRole = Qt::UserRole 30 }; 31 32 typedef QMap<int, VcdTrack*> Key2Track; 33 34 public: 35 explicit VcdTrackKeysModel( int keyCount, QObject* parent = 0 ); 36 ~VcdTrackKeysModel() override; 37 38 int keyCount() const; 39 void setKeys( const Key2Track& keys ); 40 const Key2Track& keys() const; 41 42 Qt::ItemFlags flags( const QModelIndex& index ) const override; 43 QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const override; 44 bool setData( const QModelIndex& index, const QVariant& value, int role = Qt::EditRole ) override; 45 int columnCount( const QModelIndex& parent = QModelIndex() ) const override; 46 int rowCount( const QModelIndex& parent = QModelIndex() ) const override; 47 QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; 48 QModelIndex buddy( const QModelIndex& index ) const override; 49 50 static QString trackName( VcdTrack* track ); 51 static QIcon trackIcon( VcdTrack* track ); 52 53 private: 54 class Private; 55 Private* const d; 56 }; 57 58 } 59 60 #endif // K3BVCDTRACKKEYSMODEL_H 61