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_