File indexing completed on 2024-05-05 04:51:46
0001 /* 0002 SPDX-FileCopyrightText: 2008 Sebastian Trueg <trueg@k3b.org> 0003 SPDX-FileCopyrightText: 2009 Arthur Renato Mello <arthur@mandriva.com> 0004 SPDX-FileCopyrightText: 2009 Gustavo Pichorim Boiko <gustavo.boiko@kdemail.net> 0005 SPDX-FileCopyrightText: 2010 Michal Malek <michalm@jabster.pl> 0006 SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org> 0007 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 0011 #ifndef _K3B_MOVIX_PROJECT_MODEL_H_ 0012 #define _K3B_MOVIX_PROJECT_MODEL_H_ 0013 0014 #include <QAbstractItemModel> 0015 0016 namespace K3b { 0017 class MovixDoc; 0018 class MovixFileItem; 0019 class MovixSubtitleItem; 0020 0021 class MovixProjectModel : public QAbstractItemModel 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 MovixProjectModel( MovixDoc* doc, QObject* parent ); 0027 ~MovixProjectModel() override; 0028 0029 enum Columns { 0030 NoColumn = 0, 0031 TitleColumn, 0032 TypeColumn, 0033 SizeColumn, 0034 LocalPathColumn, 0035 LinkColumn, 0036 NumColumns 0037 }; 0038 0039 MovixDoc* project() const; 0040 0041 MovixFileItem* itemForIndex( const QModelIndex& index ) const; 0042 QModelIndex indexForItem( MovixFileItem* track ) const; 0043 0044 MovixSubtitleItem* subtitleForIndex( const QModelIndex& index ) const; 0045 QModelIndex indexForSubtitle( MovixSubtitleItem* item ) const; 0046 0047 QModelIndex index( int row, int column, const QModelIndex& parent = QModelIndex() ) const override; 0048 QModelIndex parent( const QModelIndex& index ) const override; 0049 int rowCount( const QModelIndex& parent = QModelIndex() ) const override; 0050 int columnCount( const QModelIndex& parent = QModelIndex() ) const override; 0051 QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const override; 0052 bool setData( const QModelIndex& index, const QVariant& value, int role = Qt::EditRole ) override; 0053 QVariant headerData( int section, Qt::Orientation orientation, int role ) const override; 0054 Qt::ItemFlags flags( const QModelIndex& index ) const override; 0055 Qt::DropActions supportedDropActions() const override; 0056 QMimeData* mimeData( const QModelIndexList& indexes ) const override; 0057 QStringList mimeTypes() const override; 0058 bool dropMimeData( const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent ) override; 0059 bool removeRows( int row, int count, const QModelIndex& parent = QModelIndex() ) override; 0060 0061 private: 0062 class Private; 0063 Private* const d; 0064 0065 Q_PRIVATE_SLOT( d, void _k_itemsAboutToBeInserted(int, int) ) 0066 Q_PRIVATE_SLOT( d, void _k_itemsInserted() ) 0067 Q_PRIVATE_SLOT( d, void _k_itemsAboutToBeRemoved(int, int) ) 0068 Q_PRIVATE_SLOT( d, void _k_itemsRemoved() ) 0069 Q_PRIVATE_SLOT( d, void _k_subTitleAboutToBeInserted(K3b::MovixFileItem*) ) 0070 Q_PRIVATE_SLOT( d, void _k_subTitleInserted() ) 0071 Q_PRIVATE_SLOT( d, void _k_subTitleAboutToBeRemoved(K3b::MovixFileItem*) ) 0072 Q_PRIVATE_SLOT( d, void _k_subTitleRemoved() ) 0073 }; 0074 } 0075 0076 #endif