File indexing completed on 2024-06-09 04:27:02

0001 /*
0002  *  SPDX-FileCopyrightText: 2013 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef DLG_CLONESARRAY
0008 #define DLG_CLONESARRAY
0009 
0010 #include <KoDialog.h>
0011 #include <kis_global.h>
0012 #include <QPointer>
0013 
0014 #include "kis_types.h"
0015 #include "ui_wdg_clonesarray.h"
0016 
0017 class KisViewManager;
0018 class KisProcessingApplicator;
0019 
0020 
0021 class WdgClonesArray : public QWidget, public Ui::WdgClonesArray
0022 {
0023     Q_OBJECT
0024 
0025 public:
0026     WdgClonesArray(QWidget *parent) : QWidget(parent) {
0027         setupUi(this);
0028     }
0029 };
0030 
0031 class DlgClonesArray: public KoDialog
0032 {
0033 
0034     Q_OBJECT
0035 
0036 public:
0037     DlgClonesArray(KisViewManager *viewManager, QWidget * parent = 0);
0038     ~DlgClonesArray() override;
0039 
0040 private Q_SLOTS:
0041     void okClicked();
0042     void applyClicked();
0043     void cancelClicked();
0044 
0045     void syncOrthogonalToAngular();
0046     void syncAngularToOrthogonal();
0047 
0048     void setDirty();
0049     void updateCheckboxAvailability();
0050 
0051 private:
0052     void setOrthogonalSignalsEnabled(bool value);
0053     void setAngularSignalsEnabled(bool value);
0054 
0055     void initializeValues();
0056     void reapplyClones();
0057 
0058     void setClean();
0059 
0060 private:
0061     WdgClonesArray *m_page;
0062     QPointer<KisViewManager> m_viewManager;
0063     KisProcessingApplicator *m_applicator;
0064     KisLayerSP m_baseLayer;
0065     bool m_isDirty {false};
0066 };
0067 
0068 #endif // DLG_CLONESARRAY