File indexing completed on 2024-06-16 04:16:12

0001 /*
0002  *  SPDX-FileCopyrightText: 2016 Eugene Ingerman <geneing at gmail dot com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 
0008 #ifndef HISTOGRAMDOCKERWIDGET_H
0009 #define HISTOGRAMDOCKERWIDGET_H
0010 
0011 #include <QObject>
0012 #include <QWidget>
0013 #include <QLabel>
0014 #include <QThread>
0015 #include "HistogramComputationStrokeStrategy.h"
0016 #include "KisWidgetWithIdleTask.h"
0017 
0018 class KoColorSpace;
0019 
0020 class HistogramDockerWidget : public KisWidgetWithIdleTask<QLabel>
0021 {
0022     Q_OBJECT
0023 
0024 public:
0025     HistogramDockerWidget(QWidget *parent = 0, const char *name = 0, Qt::WindowFlags f = Qt::WindowFlags());
0026     ~HistogramDockerWidget() override;
0027     void paintEvent(QPaintEvent *event) override;
0028 
0029 public Q_SLOTS:
0030     void receiveNewHistogram(HistogramData data);
0031 
0032 private:
0033     KisIdleTasksManager::TaskGuard registerIdleTask(KisCanvas2 *canvas) override;
0034     void clearCachedState() override;
0035 
0036 private:
0037     HistVector m_histogramData;
0038     const KoColorSpace* m_colorSpace {0};
0039     bool m_smoothHistogram {false};
0040 };
0041 
0042 #endif // HISTOGRAMDOCKERWIDGET_H