File indexing completed on 2024-05-12 15:59:15

0001 /*
0002  *  SPDX-FileCopyrightText: 2008 Cyrille Berger <cberger@cberger.net>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #ifndef _KIS_META_DATA_FILTER_REGISTRY_MODEL_H_
0008 #define _KIS_META_DATA_FILTER_REGISTRY_MODEL_H_
0009 
0010 #include "kis_meta_data_filter_registry.h"
0011 
0012 #include <KoGenericRegistryModel.h>
0013 
0014 class QStringList;
0015 
0016 namespace KisMetaData
0017 {
0018 
0019 /**
0020  * Use this model to display a list of filters (KisMetaData::Filter) that can be
0021  * enabled or disabled.
0022  */
0023 class KRITAMETADATA_EXPORT FilterRegistryModel : public KoGenericRegistryModel<const Filter*>
0024 {
0025 public:
0026     FilterRegistryModel();
0027     ~FilterRegistryModel() override;
0028 public:
0029     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
0030     Qt::ItemFlags flags(const QModelIndex & index) const override;
0031     bool setData(const QModelIndex & index, const QVariant & value, int role = Qt::EditRole) override;
0032     /// @return a list of filters that are enabled
0033     QList<const Filter*> enabledFilters() const;
0034     /// enable the filters in the given list; others will be disabled.
0035     virtual void setEnabledFilters(const QStringList &enabledFilters);
0036 private:
0037     struct Private;
0038     Private* const d;
0039 };
0040 
0041 }
0042 
0043 #endif