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