File indexing completed on 2024-05-05 04:51:37
0001 /* 0002 SPDX-FileCopyrightText: 2010 Michal Malek <michalm@jabster.pl> 0003 SPDX-FileCopyrightText: 1998-2010 Sebastian Trueg <trueg@k3b.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef K3B_EXTERNALBINPARAMSMODEL_H 0009 #define K3B_EXTERNALBINPARAMSMODEL_H 0010 0011 #include <QAbstractItemModel> 0012 0013 namespace K3b { 0014 0015 class DataDoc; 0016 class ExternalProgram; 0017 class ExternalBinManager; 0018 0019 class ExternalBinParamsModel : public QAbstractTableModel 0020 { 0021 Q_OBJECT 0022 0023 public: 0024 enum Columns { 0025 ProgramColumn, 0026 ParametersColumn, 0027 NumColumns 0028 }; 0029 0030 public: 0031 explicit ExternalBinParamsModel( ExternalBinManager* manager, QObject* parent = 0 ); 0032 ~ExternalBinParamsModel() override; 0033 0034 /** 0035 * Reloads programs from ExternalBinManager and updates the model 0036 */ 0037 void reload(); 0038 0039 /** 0040 * Saves all changes made in model to ExternalBinManager 0041 */ 0042 void save(); 0043 0044 ExternalProgram* programForIndex( const QModelIndex& index ) const; 0045 QModelIndex indexForProgram( ExternalProgram* program, int column = ProgramColumn ) const; 0046 0047 Qt::ItemFlags flags( const QModelIndex& index ) const override; 0048 QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const override; 0049 bool setData( const QModelIndex& index, const QVariant& value, int role = Qt::EditRole ) override; 0050 int columnCount( const QModelIndex& parent = QModelIndex() ) const override; 0051 int rowCount( const QModelIndex& parent = QModelIndex() ) const override; 0052 QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; 0053 QModelIndex buddy( const QModelIndex& index ) const override; 0054 0055 private: 0056 class Private; 0057 Private* d; 0058 }; 0059 0060 } 0061 0062 #endif // K3B_EXTERNALBINPARAMSMODEL_H