File indexing completed on 2024-05-05 04:51:37
0001 /* 0002 SPDX-FileCopyrightText: 2003-2009 Sebastian Trueg <trueg@k3b.org> 0003 SPDX-FileCopyrightText: 2009 Michal Malek <michalm@jabster.pl> 0004 SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org> 0005 SPDX-FileCopyrightText: 2009 Michal Malek <michalm@jabster.pl> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #ifndef K3BEXTERNALBINPERMISSIONMODEL_H 0011 #define K3BEXTERNALBINPERMISSIONMODEL_H 0012 0013 #include "k3bhelperprogramitem.h" 0014 #include "config-k3b.h" 0015 #include <QAbstractItemModel> 0016 #include <QList> 0017 #include <QStringList> 0018 0019 namespace K3b { 0020 0021 class ExternalBin; 0022 class ExternalBinManager; 0023 0024 class ExternalBinPermissionModel : public QAbstractItemModel 0025 { 0026 Q_OBJECT 0027 0028 public: 0029 enum Columns { 0030 ProgramColumn, 0031 PermissionsColumn, 0032 NewPermissionsColumn, 0033 NumColumns 0034 }; 0035 0036 public: 0037 explicit ExternalBinPermissionModel(ExternalBinManager const& externalBinManager, QObject* parent = 0); 0038 ~ExternalBinPermissionModel() override; 0039 0040 QList<HelperProgramItem> selectedPrograms() const; 0041 bool changesNeeded() const; 0042 QStringList searchPaths() const; 0043 const QString& burningGroup() const; 0044 0045 const ExternalBin* programForIndex( const QModelIndex& index ) const; 0046 QModelIndex indexForProgram( const ExternalBin* program ) const; 0047 0048 QVariant data( const QModelIndex& index, int role ) const override; 0049 bool setData( const QModelIndex& index, const QVariant& value, int role ) override; 0050 Qt::ItemFlags flags( const QModelIndex& index ) const override; 0051 QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; 0052 QModelIndex index( int row, int column, const QModelIndex& parent = QModelIndex() ) const override; 0053 QModelIndex parent( const QModelIndex& index ) const override; 0054 int rowCount( const QModelIndex& parent = QModelIndex() ) const override; 0055 int columnCount( const QModelIndex& parent = QModelIndex() ) const override; 0056 QModelIndex buddy( const QModelIndex& index ) const override; 0057 0058 public Q_SLOTS: 0059 void setBurningGroup( const QString& burningGroup ); 0060 void update(); 0061 0062 private: 0063 class Private; 0064 Private* d; 0065 }; 0066 0067 } // namespace K3b 0068 0069 #endif // K3BEXTERNALBINPERMISSIONMODEL_H