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

0001 /*
0002  *  SPDX-FileCopyrightText: 2020 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KISLOCALSTROKERESOURCES_H
0007 #define KISLOCALSTROKERESOURCES_H
0008 
0009 #include <KisResourcesInterface.h>
0010 
0011 class KisLocalStrokeResourcesPrivate;
0012 
0013 
0014 /**
0015  * @brief a KisResourcesInterface-like resources storage for preloaded resources
0016  *
0017  * KisLocalStrokeResources stores preloaded resources and dispatches them
0018  * to the consumers as a resources source.
0019  *
0020  * It is used by the strokes to avoid accessing global resource storage
0021  * from non-gui threads.
0022  */
0023 class KRITARESOURCES_EXPORT KisLocalStrokeResources : public KisResourcesInterface
0024 {
0025 public:
0026     KisLocalStrokeResources();
0027     KisLocalStrokeResources(const QList<KoResourceSP> &localResources);
0028 
0029     void addResource(KoResourceSP resource);
0030     void removeResource(KoResourceSP resource);
0031 
0032     KisLocalStrokeResources* clone() const;
0033 
0034 protected:
0035     ResourceSourceAdapter* createSourceImpl(const QString &type) const override;
0036 
0037 private:
0038     Q_DECLARE_PRIVATE(KisLocalStrokeResources);
0039 };
0040 
0041 #endif // KISLOCALSTROKERESOURCES_H