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