File indexing completed on 2024-05-05 04:51:49
0001 /* 0002 SPDX-FileCopyrightText: 2010 Michal Malek <michalm@jabster.pl> 0003 SPDX-FileCopyrightText: 1998-2010 Sebastian Trueg <trueg@k3b.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef K3BVCDTRACKKEYSMODEL_H 0009 #define K3BVCDTRACKKEYSMODEL_H 0010 0011 #include <QAbstractTableModel> 0012 #include <QMap> 0013 0014 0015 namespace K3b { 0016 0017 class VcdTrack; 0018 0019 class VcdTrackKeysModel : public QAbstractTableModel 0020 { 0021 public: 0022 enum Columns { 0023 KeyColumn, 0024 PlayingColumn, 0025 ColumnCount 0026 }; 0027 0028 enum Roles { 0029 TrackRole = Qt::UserRole 0030 }; 0031 0032 typedef QMap<int, VcdTrack*> Key2Track; 0033 0034 public: 0035 explicit VcdTrackKeysModel( int keyCount, QObject* parent = 0 ); 0036 ~VcdTrackKeysModel() override; 0037 0038 int keyCount() const; 0039 void setKeys( const Key2Track& keys ); 0040 const Key2Track& keys() const; 0041 0042 Qt::ItemFlags flags( const QModelIndex& index ) const override; 0043 QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const override; 0044 bool setData( const QModelIndex& index, const QVariant& value, int role = Qt::EditRole ) override; 0045 int columnCount( const QModelIndex& parent = QModelIndex() ) const override; 0046 int rowCount( const QModelIndex& parent = QModelIndex() ) const override; 0047 QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; 0048 QModelIndex buddy( const QModelIndex& index ) const override; 0049 0050 static QString trackName( VcdTrack* track ); 0051 static QIcon trackIcon( VcdTrack* track ); 0052 0053 private: 0054 class Private; 0055 Private* const d; 0056 }; 0057 0058 } 0059 0060 #endif // K3BVCDTRACKKEYSMODEL_H