File indexing completed on 2024-05-05 04:51:48

0001 /*
0002     SPDX-FileCopyrightText: 2009 Arthur Mello <arthur@mandriva.com>
0003     SPDX-FileCopyrightText: 2010 Michal Malek <michalm@jabster.pl>
0004     SPDX-FileCopyrightText: 1998-2008 Sebastian Trueg <trueg@k3b.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #ifndef _K3B_VCD_PROJECT_MODEL_H_
0010 #define _K3B_VCD_PROJECT_MODEL_H_
0011 
0012 #include <QAbstractTableModel>
0013 
0014 namespace K3b {
0015     class VcdDoc;
0016     class VcdTrack;
0017     
0018     class VcdProjectModel : public QAbstractTableModel
0019     {
0020         Q_OBJECT
0021 
0022     public:
0023         explicit VcdProjectModel( VcdDoc* doc, QObject* parent = 0 );
0024         ~VcdProjectModel() override;
0025 
0026         enum Columns {
0027             NoColumn = 0,
0028             TitleColumn,
0029             TypeColumn,
0030             ResolutionColumn,
0031             HighResolutionColumn,
0032             FrameRateColumn,
0033             MuxRateColumn,
0034             DurationColumn,
0035             SizeColumn,
0036             FilenameColumn,
0037             NumColumns
0038         };
0039 
0040         VcdDoc* doc() const;
0041 
0042         VcdTrack* trackForIndex( const QModelIndex& index ) const;
0043         QModelIndex indexForTrack( VcdTrack* track, int column = NoColumn ) const;
0044 
0045         int rowCount(const QModelIndex& parent = QModelIndex()) const override;
0046         int columnCount(const QModelIndex& parent = QModelIndex()) const override;
0047         QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
0048         bool setData( const QModelIndex& index, const QVariant& value, int role = Qt::EditRole ) override;
0049         QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
0050         Qt::ItemFlags flags( const QModelIndex& index ) const override;
0051         Qt::DropActions supportedDragActions() const override;
0052         Qt::DropActions supportedDropActions() const override;
0053         QMimeData* mimeData( const QModelIndexList& indexes ) const override;
0054         QStringList mimeTypes() const override;
0055         bool dropMimeData( const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent ) override;
0056         bool removeRows( int row, int count, const QModelIndex& parent = QModelIndex() ) override;
0057 
0058     private:
0059         class Private;
0060         Private* const d;
0061 
0062         Q_PRIVATE_SLOT( d, void _k_aboutToAddRows(int, int))
0063         Q_PRIVATE_SLOT( d, void _k_addedRows())
0064         Q_PRIVATE_SLOT( d, void _k_aboutToRemoveRows(int, int))
0065         Q_PRIVATE_SLOT( d, void _k_removedRows())
0066     };
0067 }
0068 
0069 #endif