Krita Source Code Documentation
Loading...
Searching...
No Matches
griddocker_dock.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#include "griddocker_dock.h"
8//#include "gridwidget.h"
9
10// #include <QVBoxLayout>
11#include <QStatusBar>
12#include <klocalizedstring.h>
13
14#include <kis_canvas2.h>
15#include <KisViewManager.h>
16#include <kis_zoom_manager.h>
17#include <kis_image.h>
18#include <kis_paint_device.h>
20#include <kis_grid_manager.h>
21#include <kis_grid_config.h>
22#include <kis_guides_manager.h>
23#include <kis_guides_config.h>
24#include <kis_action.h>
25#include <KisDocument.h>
26
27#include "grid_config_widget.h"
28
29
31 : QDockWidget(i18n("Grid and Guides"))
32 , m_canvas(0)
33{
35 connect(m_configWidget, SIGNAL(gridValueChanged()), SLOT(slotGuiGridConfigChanged()));
36 connect(m_configWidget, SIGNAL(guidesValueChanged()), SLOT(slotGuiGuidesConfigChanged()));
37 setWidget(m_configWidget);
38 setEnabled(m_canvas);
39}
40
44
46{
47 if(canvas && m_canvas == canvas)
48 return;
49
50 if (m_canvas) {
52 m_canvas->disconnectCanvasObserver(this);
53 m_canvas->image()->disconnect(this);
54 }
55
56 m_canvas = canvas ? dynamic_cast<KisCanvas2*>(canvas) : 0;
57 setEnabled(m_canvas);
58
59 if (m_canvas && m_canvas->viewManager() && m_canvas->viewManager()->document()) {
61 m_canvas->viewManager()->gridManager(),
62 SIGNAL(sigRequestUpdateGridConfig(KisGridConfig)),
63 this,
65
66 slotGridConfigUpdateRequested(m_canvas->viewManager()->document()->gridConfig());
67
68 KisAction* action = m_canvas->viewManager()->actionManager()->actionByName("view_ruler");
69
70 m_canvasConnections.addConnection(m_configWidget,SIGNAL(showRulersChanged(bool)),action,SLOT(setChecked(bool)));
71 m_canvasConnections.addConnection(action,SIGNAL(toggled(bool)),m_configWidget,SLOT(setShowRulers(bool)));
72 m_configWidget->setShowRulers(action->isChecked());
73
75 m_canvas->viewManager()->guidesManager(),
76 SIGNAL(sigRequestUpdateGuidesConfig(KisGuidesConfig)),
77 this,
79 slotGuidesConfigUpdateRequested(m_canvas->viewManager()->document()->guidesConfig());
80
81 // isometric (legacy) grid only available with OpenGL
82 if (m_canvas->canvasIsOpenGL()) {
84 } else {
86 }
87
88 }
89}
90
95
97{
98 if (!m_canvas) return;
99 m_canvas->viewManager()->gridManager()->setGridConfig(m_configWidget->gridConfig());
100}
101
106
108{
109 if (!m_canvas) return;
110 m_canvas->viewManager()->guidesManager()->setGuidesConfig(m_configWidget->guidesConfig());
111}
112
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void setGuidesConfig(const KisGuidesConfig &value)
void enableIsometricLegacyGrid(bool value)
void setGridConfig(const KisGridConfig &value)
KisGridConfig gridConfig() const
KisGuidesConfig guidesConfig() const
void setShowRulers(bool value)
GridConfigWidget * m_configWidget
void slotGridConfigUpdateRequested(const KisGridConfig &config)
void unsetCanvas() override
KisSignalAutoConnectionsStore m_canvasConnections
void slotGuidesConfigUpdateRequested(const KisGuidesConfig &config)
void setCanvas(KoCanvasBase *canvas) override
QPointer< KisCanvas2 > m_canvas
void slotGuiGridConfigChanged()
~GridDockerDock() override
void slotGuiGuidesConfigChanged()
void addConnection(Sender sender, Signal signal, Receiver receiver, Method method, Qt::ConnectionType type=Qt::AutoConnection)