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