File indexing completed on 2024-05-12 16:01:31
0001 /* 0002 * SPDX-FileCopyrightText: 2005 Boudewijn Rempt <boud@valdyas.org> 0003 * SPDX-FileCopyrightText: 2007 Cyrille Berger <cberger@cberger.net> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef _KIS_FILTER_MANAGER_ 0009 #define _KIS_FILTER_MANAGER_ 0010 0011 #include <QObject> 0012 #include <kritaui_export.h> 0013 #include <kis_types.h> 0014 0015 class KisViewManager; 0016 class KisKActionCollection; 0017 class KisActionManager; 0018 class KisView; 0019 0020 /** 0021 * Create all the filter actions for the specified view and implement re-apply filter 0022 */ 0023 class KRITAUI_EXPORT KisFilterManager : public QObject 0024 { 0025 0026 Q_OBJECT 0027 0028 public: 0029 0030 KisFilterManager(KisViewManager * parent); 0031 ~KisFilterManager() override; 0032 void setView(QPointer<KisView>imageView); 0033 0034 void setup(KisKActionCollection * ac, KisActionManager *actionManager); 0035 void updateGUI(); 0036 0037 void apply(KisFilterConfigurationSP filterConfig); 0038 void finish(); 0039 //! Cancel current running stroke 0040 void cancelRunningStroke(); 0041 //! Call `cancelRunningStroke()` and then delete dialog `d` 0042 void cancelDialog(); 0043 bool isStrokeRunning() const; 0044 0045 bool isIdle() const; 0046 0047 void setFilterAllSelectedFrames(bool filterAllSelectedFrames); 0048 bool filterAllSelectedFrames(); 0049 0050 private Q_SLOTS: 0051 0052 void insertFilter(const QString &name); 0053 void showFilterDialog(const QString &filterId, KisFilterConfigurationSP overrideDefaultConfig = nullptr); 0054 void reapplyLastFilter(); 0055 void reapplyLastFilterReprompt(); 0056 0057 void slotStrokeEndRequested(); 0058 void slotStrokeCancelRequested(); 0059 0060 //! Clean up after filter dialog has been accepted / rejected / closed 0061 void filterDialogHasFinished(int); 0062 0063 private: 0064 struct Private; 0065 QScopedPointer<Private> d; 0066 }; 0067 0068 #endif