File indexing completed on 2024-05-12 04:51:51
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 _K3B_K3BVIDEODVDAUDIOMODEL_H_ 0009 #define _K3B_K3BVIDEODVDAUDIOMODEL_H_ 0010 0011 #include <KIO/Global> 0012 0013 #include <QAbstractItemModel> 0014 #include <QList> 0015 0016 0017 namespace K3b { 0018 0019 namespace VideoDVD { 0020 class AudioStream; 0021 class Title; 0022 class VideoDVD; 0023 } 0024 0025 class VideoDVDAudioModel : public QAbstractItemModel 0026 { 0027 Q_OBJECT 0028 0029 public: 0030 enum Columns { 0031 TitleColumn, 0032 VideoSizeColumn, 0033 FileSizeColumn, 0034 FileNameColumn, 0035 NumColumns 0036 }; 0037 0038 public: 0039 VideoDVDAudioModel( const VideoDVD::VideoDVD& dvd, const QList<int>& titles, QObject* parent = 0 ); 0040 ~VideoDVDAudioModel() override; 0041 0042 const VideoDVD::Title* titleForIndex( const QModelIndex& index ) const; 0043 QModelIndex indexForTitle( const VideoDVD::Title& title, int column = TitleColumn ) const; 0044 0045 const VideoDVD::AudioStream* audioForIndex( const QModelIndex& index ) const; 0046 QModelIndex indexForAudio( const VideoDVD::AudioStream& audio, int column = TitleColumn ) const; 0047 0048 void setVideoSize( const VideoDVD::Title& title, const QSize& videoSize ); 0049 void setFileSize( const VideoDVD::Title& title, KIO::filesize_t fileSize ); 0050 void setFileName( const VideoDVD::Title& title, const QString& fileName ); 0051 0052 int chosenAudio( const VideoDVD::Title& title ) const; 0053 0054 QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const override; 0055 int columnCount( const QModelIndex& parent = QModelIndex() ) const override; 0056 int rowCount( const QModelIndex& parent = QModelIndex() ) const override; 0057 QModelIndex parent( const QModelIndex& child ) const override; 0058 QModelIndex index( int row, int column, const QModelIndex& parent = QModelIndex() ) const override; 0059 QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; 0060 bool setData( const QModelIndex& index, const QVariant& value, int role = Qt::EditRole ) override; 0061 Qt::ItemFlags flags( const QModelIndex& index ) const override; 0062 0063 private: 0064 class Private; 0065 Private* const d; 0066 }; 0067 0068 } 0069 0070 #endif // _K3B_K3BVIDEODVDAUDIOMODEL_H_