File indexing completed on 2025-01-05 03:51:41

0001 /* ============================================================
0002  *
0003  * This file is a part of digiKam project
0004  * https://www.digikam.org
0005  *
0006  * Date        : 2005-03-27
0007  * Description : a digiKam image tool for fixing dots produced by
0008  *               hot/stuck/dead pixels from a CCD.
0009  *
0010  * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0011  * SPDX-FileCopyrightText: 2005-2006 by Unai Garro <ugarro at users dot sourceforge dot net>
0012  *
0013  * SPDX-License-Identifier: GPL-2.0-or-later
0014  *
0015  * ============================================================ */
0016 
0017 #ifndef DIGIKAM_EDITOR_HOT_PIXELS_TOOL_H
0018 #define DIGIKAM_EDITOR_HOT_PIXELS_TOOL_H
0019 
0020 // Qt includes
0021 
0022 #include <QList>
0023 #include <QPolygon>
0024 
0025 // Local includes
0026 
0027 #include "editortool.h"
0028 #include "hotpixelprops.h"
0029 
0030 class QUrl;
0031 
0032 using namespace Digikam;
0033 
0034 namespace DigikamEditorHotPixelsToolPlugin
0035 {
0036 
0037 class HotPixelsTool : public Digikam::EditorToolThreaded
0038 {
0039     Q_OBJECT
0040 
0041 public:
0042 
0043     explicit HotPixelsTool(QObject* const parent);
0044     ~HotPixelsTool()            override;
0045 
0046     static void registerFilter();
0047 
0048 private Q_SLOTS:
0049 
0050     void slotHotPixels(const QPolygon&);
0051     void slotResetSettings()    override;
0052 
0053 private:
0054 
0055     void readSettings()         override;
0056     void writeSettings()        override;
0057     void preparePreview()       override;
0058     void prepareFinal()         override;
0059     void setPreviewImage()      override;
0060     void setFinalImage()        override;
0061 
0062 private:
0063 
0064     class Private;
0065     Private* const d;
0066 };
0067 
0068 } // namespace DigikamEditorHotPixelsToolPlugin
0069 
0070 #endif // DIGIKAM_EDITOR_HOT_PIXELS_TOOL_H