21#include "kis_perspective_grid_manager.h"
25#include <tdemessagebox.h>
28#include "kis_grid_drawer.h"
29#include "kis_perspective_grid.h"
32KisPerspectiveGridManager::KisPerspectiveGridManager(KisView * parent)
34 , m_toggleEdition(false)
41KisPerspectiveGridManager::~KisPerspectiveGridManager()
46void KisPerspectiveGridManager::updateGUI()
48 KisImageSP image = m_view->canvasSubject()->currentImg();
52 KisPerspectiveGrid* pGrid = image->perspectiveGrid();
53 m_toggleGrid->setEnabled( pGrid->hasSubGrids());
57void KisPerspectiveGridManager::setup(TDEActionCollection * collection)
59 kdDebug() <<
"KisPerspectiveGridManager::setup(TDEActionCollection * collection)" << endl;
60 m_toggleGrid =
new TDEToggleAction(i18n(
"Show Perspective Grid"),
"",
this, TQ_SLOT(toggleGrid()), collection,
"view_toggle_perspective_grid");
61 m_toggleGrid->setCheckedState(KGuiItem(i18n(
"Hide Perspective Grid")));
62 m_toggleGrid->setChecked(
false);
63 m_gridClear =
new TDEAction(i18n(
"Clear Perspective Grid"), 0,
"",
this, TQ_SLOT(clearPerspectiveGrid()), collection,
"view_clear_perspective_grid");
66void KisPerspectiveGridManager::setGridVisible(
bool t)
68 KisImageSP image = m_view->canvasSubject()->currentImg();
72 KisPerspectiveGrid* pGrid = image->perspectiveGrid();
73 if( pGrid->hasSubGrids())
75 m_toggleGrid->setChecked(
true);
78 m_toggleGrid->setChecked(
false);
80 m_view->refreshKisCanvas();
84void KisPerspectiveGridManager::toggleGrid()
86 KisImageSP image = m_view->canvasSubject()->currentImg();
89 if (image && m_toggleGrid->isChecked()) {
90 KisPerspectiveGrid* pGrid = image->perspectiveGrid();
92 if(!pGrid->hasSubGrids())
94 KMessageBox::error(0, i18n(
"Before displaying the perspective grid, you need to initialize it with the perspective grid tool"), i18n(
"No Perspective Grid to Display") );
95 m_toggleGrid->setChecked(
false);
98 m_view->updateCanvas();
101void KisPerspectiveGridManager::clearPerspectiveGrid()
103 KisImageSP image = m_view->canvasSubject()->currentImg();
105 image->perspectiveGrid()->clearSubGrids();
106 m_view->updateCanvas();
107 m_toggleGrid->setChecked(
false);
108 m_toggleGrid->setEnabled(
false);
112void KisPerspectiveGridManager::startEdition()
114 m_toggleEdition =
true;
115 m_toggleGrid->setEnabled(
false );
116 if( m_toggleGrid->isChecked() )
117 m_view->updateCanvas();
120void KisPerspectiveGridManager::stopEdition()
122 m_toggleEdition =
false;
123 m_toggleGrid->setEnabled(
true );
124 if( m_toggleGrid->isChecked() )
125 m_view->updateCanvas();
128void KisPerspectiveGridManager::drawGrid(TQRect wr, TQPainter *p,
bool openGL )
130 KisImageSP image = m_view->canvasSubject()->currentImg();
133 if (image && m_toggleGrid->isChecked() && !m_toggleEdition) {
134 KisPerspectiveGrid* pGrid = image->perspectiveGrid();
136 GridDrawer *gridDrawer = 0;
139 gridDrawer =
new OpenGLGridDrawer();
144 gridDrawer =
new TQPainterGridDrawer(p);
148 Q_ASSERT(gridDrawer != 0);
150 for( TQValueList<KisSubPerspectiveGrid*>::const_iterator it = pGrid->begin(); it != pGrid->end(); ++it)
152 gridDrawer->drawPerspectiveGrid(image, wr, *it );
159#include "kis_perspective_grid_manager.moc"