File indexing completed on 2025-02-23 04:08:59

0001 /*
0002  * This file is part of Krita
0003  *
0004  *  SPDX-FileCopyrightText: 2006 Cyrille Berger <cberger@cberger.net>
0005  *
0006  *  SPDX-License-Identifier: GPL-2.0-or-later
0007  */
0008 
0009 #ifndef KIS_GRID_MANAGER_H
0010 #define KIS_GRID_MANAGER_H
0011 
0012 #include <QPainter>
0013 
0014 #include "kis_types.h"
0015 #include <kritaui_export.h>
0016 #include "kis_action_manager.h"
0017 #include "kis_action.h"
0018 
0019 class KisGridDecoration;
0020 class KisViewManager;
0021 class KisGridConfig;
0022 
0023 
0024 class KRITAUI_EXPORT KisGridManager : public QObject
0025 {
0026     Q_OBJECT
0027 public:
0028     KisGridManager(KisViewManager * parent);
0029     ~KisGridManager() override;
0030 public:
0031 
0032     void setup(KisActionManager * actionManager);
0033     void setView(QPointer<KisView>imageView);
0034 
0035     void setGridConfig(const KisGridConfig &config);
0036 
0037 Q_SIGNALS:
0038     void sigRequestUpdateGridConfig(const KisGridConfig &config);
0039 
0040 public Q_SLOTS:
0041 
0042     void updateGUI();
0043 
0044 private Q_SLOTS:
0045 
0046     void slotChangeGridVisibilityTriggered(bool value);
0047     void slotSnapToGridTriggered(bool value);
0048 
0049 private:
0050     void setGridConfigImpl(const KisGridConfig &config, bool emitModified);
0051 
0052 private:
0053     void setFastConfig(int size);
0054 
0055 private:
0056     struct Private;
0057     QScopedPointer<Private> m_d;
0058 };
0059 
0060 #endif