File indexing completed on 2024-04-28 04:50:21
0001 /* 0002 SPDX-FileCopyrightText: 2011 Michal Malek <michalm@jabster.pl> 0003 SPDX-FileCopyrightText: 1998-2008 Sebastian Trueg <trueg@k3b.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef _K3B_AUDIO_TRACK_MODEL_H_ 0009 #define _K3B_AUDIO_TRACK_MODEL_H_ 0010 0011 #include <QAbstractItemModel> 0012 0013 namespace KCDDB { 0014 class CDInfo; 0015 } 0016 0017 namespace K3b { 0018 class Medium; 0019 0020 class AudioTrackModel : public QAbstractItemModel 0021 { 0022 Q_OBJECT 0023 0024 public: 0025 explicit AudioTrackModel( QObject* parent = 0 ); 0026 ~AudioTrackModel() override; 0027 0028 enum Columns { 0029 TrackNumberColumn = 0, 0030 TitleColumn, 0031 ArtistColumn, 0032 LengthColumn, 0033 NumColumns 0034 }; 0035 0036 enum Roles { 0037 MediumRole = 6000, 0038 TrackNumberRole, 0039 ArtistRole, 0040 TitleRole, 0041 CommentRole, 0042 LengthRole 0043 }; 0044 0045 void setMedium( const Medium& medium ); 0046 Medium medium() const; 0047 0048 void setCddbInfo( const KCDDB::CDInfo& data ); 0049 KCDDB::CDInfo cddbInfo() const; 0050 0051 void setTrackChecked( int track, bool checked ); 0052 bool trackChecked( int trackIndex ) const; 0053 QList<int> checkedTrackIndices() const; 0054 0055 int columnCount( const QModelIndex& parent = QModelIndex() ) const override; 0056 QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const override; 0057 QVariant headerData ( int section, Qt::Orientation orientation, int role ) const override; 0058 Qt::ItemFlags flags( const QModelIndex& index ) const override; 0059 QModelIndex index( int row, int column, const QModelIndex& parent = QModelIndex() ) const override; 0060 QModelIndex parent( const QModelIndex& index ) const override; 0061 int rowCount( const QModelIndex& parent = QModelIndex() ) const override; 0062 bool setData( const QModelIndex& index, const QVariant& value, int role = Qt::EditRole ) override; 0063 QMimeData* mimeData( const QModelIndexList& indexes ) const override; 0064 QStringList mimeTypes() const override; 0065 0066 public Q_SLOTS: 0067 void checkAll(); 0068 void uncheckAll(); 0069 0070 private: 0071 class Private; 0072 Private* const d; 0073 }; 0074 } 0075 0076 #endif