File indexing completed on 2025-02-02 04:20:46

0001 /*
0002  *  SPDX-FileCopyrightText: 2016 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 #ifndef GRID_CONFIG_WIDGET_H
0008 #define GRID_CONFIG_WIDGET_H
0009 
0010 #include <QWidget>
0011 #include <QScopedPointer>
0012 
0013 namespace Ui {
0014 class GridConfigWidget;
0015 }
0016 
0017 class KisGridConfig;
0018 class KisGuidesConfig;
0019 
0020 class GridConfigWidget : public QWidget
0021 {
0022     Q_OBJECT
0023 
0024 public:
0025     explicit GridConfigWidget(QWidget *parent = 0);
0026     ~GridConfigWidget() override;
0027 
0028     void setGridConfig(const KisGridConfig &value);
0029     KisGridConfig gridConfig() const;
0030 
0031     void setGuidesConfig(const KisGuidesConfig &value);
0032     KisGuidesConfig guidesConfig() const;
0033 
0034     bool showRulers() const;
0035 
0036     void enableIsometricGrid(bool value);
0037 
0038 public Q_SLOTS:
0039     void setShowRulers(bool value);
0040 
0041 private Q_SLOTS:
0042     void slotGridGuiChanged();
0043     void slotGuidesGuiChanged();
0044     void slotGridTypeChanged();
0045     void slotPreferencesUpdated();
0046 
0047 Q_SIGNALS:
0048     void gridValueChanged();
0049     void guidesValueChanged();
0050     void showRulersChanged(bool);
0051 
0052 private:
0053     KisGridConfig fetchGuiGridConfig() const;
0054     void setGridConfigImpl(const KisGridConfig &value);
0055 
0056     KisGuidesConfig fetchGuiGuidesConfig() const;
0057     void setGuidesConfigImpl(const KisGuidesConfig &value);
0058 
0059 
0060 private:
0061     Ui::GridConfigWidget *ui;
0062 
0063     struct Private;
0064     const QScopedPointer<Private> m_d;
0065     bool m_isGridEnabled {false};
0066 
0067     bool m_isIsometricGridEnabled {true};
0068 };
0069 
0070 #endif // GRID_CONFIG_WIDGET_H