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

0001 /*
0002  *  SPDX-FileCopyrightText: 2018 Boudewijn Rempt <boud@valdyas.org>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KISRESOURCEMODELPROVIDER_H
0007 #define KISRESOURCEMODELPROVIDER_H
0008 
0009 #include <qglobal.h>
0010 
0011 #include "kritaresources_export.h"
0012 
0013 class KisAllResourcesModel;
0014 class KisAllTagsModel;
0015 class KisAllTagResourceModel;
0016 
0017 /**
0018  * KisResourceModelProvider should be used to retrieve resource models.
0019  * For every resource type, there is only one instance of the resource model,
0020  * so all views on these models show the same state.
0021  */ 
0022 class KRITARESOURCES_EXPORT KisResourceModelProvider
0023 {
0024 public:
0025     KisResourceModelProvider();
0026     ~KisResourceModelProvider();
0027 
0028     static KisAllResourcesModel *resourceModel(const QString &resourceType);
0029     static KisAllTagsModel *tagModel(const QString& resourceType);
0030     static KisAllTagResourceModel *tagResourceModel(const QString& resourceType);
0031 
0032     static void testingResetAllModels();
0033 
0034 private:
0035 
0036     struct Private;
0037     Private *const d;
0038 
0039     Q_DISABLE_COPY(KisResourceModelProvider)
0040 };
0041 
0042 #endif // KISRESOURCEMODELPROVIDER_H