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

0001 /*
0002  *  SPDX-FileCopyrightText: 2017 Boudewijn Rempt <boud@valdyas.org>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 #ifndef PRESETCHOOSER_H
0007 #define PRESETCHOOSER_H
0008 
0009 #include <QObject>
0010 #include <QWidget>
0011 
0012 #include <kis_preset_chooser.h>
0013 
0014 #include "kritalibkis_export.h"
0015 #include "libkis.h"
0016 
0017 class Resource;
0018 
0019 /**
0020  * @brief The PresetChooser widget wraps the KisPresetChooser widget.
0021  * The widget provides for selecting brush presets. It has a tagging
0022  * bar and a filter field. It is not automatically synchronized with 
0023  * the currently selected preset in the current Windows.
0024  */
0025 class KRITALIBKIS_EXPORT PresetChooser : public KisPresetChooser
0026 {
0027     Q_OBJECT
0028 public:
0029     PresetChooser(QWidget *parent = 0);
0030     ~PresetChooser() override {}
0031 
0032 public Q_SLOTS:
0033 
0034     /**
0035      * Make the given preset active.
0036      */
0037     void setCurrentPreset(Resource *resource);
0038     
0039     /**
0040      * @return a Resource wrapper around the currently selected
0041      * preset. 
0042      */
0043     Resource *currentPreset() const;
0044 
0045 Q_SIGNALS:
0046 
0047     /**
0048      * Emitted whenever a user selects the given preset.
0049      */
0050     void presetSelected(Resource resource);
0051     
0052     /**
0053      * Emitted whenever a user clicks on the given preset.
0054      */
0055     void presetClicked(Resource resource);
0056 
0057 private Q_SLOTS:
0058 
0059     void slotResourceSelected(KoResourceSP resource);
0060     void slotResourceClicked(KoResourceSP resource);
0061 };
0062 
0063 #endif // PRESETCHOOSER_H