File indexing completed on 2024-06-23 04:26:18

0001 /*
0002  *  SPDX-FileCopyrightText: 2015 Jouni Pentikäinen <joupent@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef ONION_SKINS_DOCKER_H
0008 #define ONION_SKINS_DOCKER_H
0009 
0010 #include <QDockWidget>
0011 
0012 #include <kis_mainwindow_observer.h>
0013 #include "kis_signal_compressor.h"
0014 
0015 class KisAction;
0016 
0017 namespace Ui {
0018 class OnionSkinsDocker;
0019 }
0020 
0021 class KisEqualizerWidget;
0022 
0023 class KisOnionSkinsDocker : public QDockWidget, public KisMainwindowObserver
0024 {
0025     Q_OBJECT
0026 
0027 public:
0028     explicit KisOnionSkinsDocker(QWidget *parent = 0);
0029     ~KisOnionSkinsDocker() override;
0030 
0031     QString observerName() override { return "OnionSkinsDocker"; }
0032     void setCanvas(KoCanvasBase *canvas) override;
0033     void unsetCanvas() override;
0034     void setViewManager(KisViewManager *kisview) override;
0035 
0036 private:
0037     Ui::OnionSkinsDocker *ui;
0038 
0039     KisSignalCompressor m_updatesCompressor;
0040     KisEqualizerWidget *m_equalizerWidget;
0041     KisAction *m_toggleOnionSkinsAction;
0042 
0043     class KisColorLabelFilterGroup *m_filterButtonGroup;
0044     class KisColorLabelMouseDragFilter *m_dragFilter;
0045 
0046 private:
0047     void loadSettings();
0048     void initEqualizerSettings(bool useDefaults = false);
0049 
0050 private Q_SLOTS:
0051     void changed();
0052     void slotShowAdditionalSettings(bool value);
0053     void slotUpdateIcons();
0054     void slotToggleOnionSkins();
0055     void slotFilteredColorsChanged();
0056 };
0057 
0058 #endif // ONION_SKINS_DOCKER_H