Skip to content

File tree

2 files changed

+44
-18
lines changed

2 files changed

+44
-18
lines changed
 

‎src/plugins/grass/qgsgrassedit.cpp

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,29 @@ bool QgsGrassEdit::isEditable ( QgsMapLayer *layer )
166166
return true;
167167
}
168168

169+
void QgsGrassEdit::keyPress(QKeyEvent *e)
170+
{
171+
std::cerr << "QgsGrassEdit::keyPress" << std::endl;
172+
// This does not work:
173+
//keyPressEvent(e);
174+
175+
// TODO: this is not optimal
176+
switch ( e->key() )
177+
{
178+
case Qt::Key_F1: newPoint(); break;
179+
case Qt::Key_F2: newLine(); break;
180+
case Qt::Key_F3: newBoundary(); break;
181+
case Qt::Key_F4: newCentroid(); break;
182+
case Qt::Key_F5: moveVertex(); break;
183+
case Qt::Key_F6: addVertex(); break;
184+
case Qt::Key_F7: deleteVertex(); break;
185+
case Qt::Key_F9: moveLine(); break;
186+
case Qt::Key_F10: splitLine(); break;
187+
case Qt::Key_F11: deleteLine(); break;
188+
default: break;
189+
}
190+
}
191+
169192
QgsGrassEdit::QgsGrassEdit ( QgisApp *qgisApp, QgisIface *iface,
170193
QgsGrassProvider *provider,
171194
QWidget * parent, Qt::WFlags f )
@@ -207,79 +230,80 @@ void QgsGrassEdit::init()
207230
return;
208231
}
209232

210-
QString myIconPath = QgsApplication::themePath() + "/grass/";
233+
connect ( mCanvas, SIGNAL(keyPressed(QKeyEvent *)), this, SLOT(keyPress(QKeyEvent *)) );
211234

235+
QString myIconPath = QgsApplication::themePath() + "/grass/";
212236

213-
QToolBar *tb = addToolBar(tr("Edit tools"));
237+
mToolBar = addToolBar(tr("Edit tools"));
214238

215239
mNewPointAction = new QAction(
216240
QIcon(myIconPath+"grass_new_point.png"), tr("New point"), this);
217241
mNewPointAction->setShortcut ( QKeySequence(Qt::Key_F1) );
218-
tb->addAction ( mNewPointAction );
242+
mToolBar->addAction ( mNewPointAction );
219243
connect ( mNewPointAction, SIGNAL(triggered()), this, SLOT(newPoint()) );
220244

221245
mNewLineAction = new QAction(
222246
QIcon(myIconPath+"grass_new_line.png"), tr("New line"), this);
223247
mNewLineAction->setShortcut ( QKeySequence(Qt::Key_F2) );
224-
tb->addAction ( mNewLineAction );
248+
mToolBar->addAction ( mNewLineAction );
225249
connect ( mNewLineAction, SIGNAL(triggered()), this, SLOT(newLine()) );
226250

227251
mNewBoundaryAction = new QAction(
228252
QIcon(myIconPath+"grass_new_boundary.png"), tr("New boundary"), this);
229253
mNewBoundaryAction->setShortcut ( QKeySequence(Qt::Key_F3) );
230-
tb->addAction ( mNewBoundaryAction );
254+
mToolBar->addAction ( mNewBoundaryAction );
231255
connect ( mNewBoundaryAction, SIGNAL(triggered()), this, SLOT(newBoundary()) );
232256

233257
mNewCentroidAction = new QAction(
234258
QIcon(myIconPath+"grass_new_centroid.png"), tr("New centroid"), this);
235259
mNewCentroidAction->setShortcut ( QKeySequence(Qt::Key_F4) );
236-
tb->addAction ( mNewCentroidAction );
260+
mToolBar->addAction ( mNewCentroidAction );
237261
connect ( mNewCentroidAction, SIGNAL(triggered()), this, SLOT(newCentroid()) );
238262

239263
mMoveVertexAction = new QAction(
240264
QIcon(myIconPath+"grass_move_vertex.png"), tr("Move vertex"), this);
241265
mMoveVertexAction->setShortcut ( QKeySequence(Qt::Key_F5) );
242-
tb->addAction ( mMoveVertexAction );
266+
mToolBar->addAction ( mMoveVertexAction );
243267
connect ( mMoveVertexAction, SIGNAL(triggered()), this, SLOT(moveVertex()) );
244268

245269
mAddVertexAction = new QAction(
246270
QIcon(myIconPath+"grass_add_vertex.png"), tr("Add vertex"), this);
247271
mAddVertexAction->setShortcut ( QKeySequence(Qt::Key_F6) );
248-
tb->addAction ( mAddVertexAction );
272+
mToolBar->addAction ( mAddVertexAction );
249273
connect ( mAddVertexAction, SIGNAL(triggered()), this, SLOT(addVertex()) );
250274

251275
mDeleteVertexAction = new QAction(
252276
QIcon(myIconPath+"grass_delete_vertex.png"), tr("Delete vertex"), this);
253277
mDeleteVertexAction->setShortcut ( QKeySequence(Qt::Key_F7) );
254-
tb->addAction ( mDeleteVertexAction );
278+
mToolBar->addAction ( mDeleteVertexAction );
255279
connect ( mDeleteVertexAction, SIGNAL(triggered()), this, SLOT(deleteVertex()) );
256280

257281
mMoveLineAction = new QAction(
258282
QIcon(myIconPath+"grass_move_line.png"), tr("Move element"), this);
259283
mMoveLineAction->setShortcut ( QKeySequence(Qt::Key_F9) );
260-
tb->addAction ( mMoveLineAction );
284+
mToolBar->addAction ( mMoveLineAction );
261285
connect ( mMoveLineAction, SIGNAL(triggered()), this, SLOT(moveLine()) );
262286

263287
mSplitLineAction = new QAction(
264288
QIcon(myIconPath+"grass_split_line.png"), tr("Split line"), this);
265289
mSplitLineAction->setShortcut ( QKeySequence(Qt::Key_F10) );
266-
tb->addAction ( mSplitLineAction );
290+
mToolBar->addAction ( mSplitLineAction );
267291
connect ( mSplitLineAction, SIGNAL(triggered()), this, SLOT(splitLine()) );
268292

269293
mDeleteLineAction = new QAction(
270294
QIcon(myIconPath+"grass_delete_line.png"), tr("Delete element"), this);
271295
mDeleteLineAction->setShortcut ( QKeySequence(Qt::Key_F11) );
272-
tb->addAction ( mDeleteLineAction );
296+
mToolBar->addAction ( mDeleteLineAction );
273297
connect ( mDeleteLineAction, SIGNAL(triggered()), this, SLOT(deleteLine()) );
274298

275299
mEditAttributesAction = new QAction(
276300
QIcon(myIconPath+"grass_edit_attributes.png"), tr("Edit attributes"), this);
277-
tb->addAction ( mEditAttributesAction );
301+
mToolBar->addAction ( mEditAttributesAction );
278302
connect ( mEditAttributesAction, SIGNAL(triggered()), this, SLOT(editAttributes()) );
279303

280304
mCloseEditAction = new QAction(
281305
QIcon(myIconPath+"grass_close_edit.png"), tr("Close"), this);
282-
tb->addAction ( mCloseEditAction );
306+
mToolBar->addAction ( mCloseEditAction );
283307
connect ( mCloseEditAction, SIGNAL(triggered()), this, SLOT(closeEdit()) );
284308

285309
mNewPointAction->setCheckable ( true );
@@ -1164,10 +1188,6 @@ void QgsGrassEdit::snap ( QgsPoint & point, double startX, double startY )
11641188
nodeDist = hypot ( x-nodeX, y-nodeY);
11651189
nodeIn = true;
11661190
}
1167-
std::cerr << "startIn = " << startIn << std::endl;
1168-
std::cerr << "nodeIn = " << nodeIn << std::endl;
1169-
std::cerr << "startDist = " << startDist << std::endl;
1170-
std::cerr << "nodeDist = " << nodeDist << std::endl;
11711191

11721192
// Choose
11731193
if ( (startIn && !nodeIn) || (startIn && nodeIn && startDist < nodeDist) )

‎src/plugins/grass/qgsgrassedit.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,9 @@ public slots:
217217
//! Window with attributes closed
218218
void attributesClosed();
219219

220+
//! Recieve key press from different widget
221+
void keyPress(QKeyEvent *e);
222+
220223
signals:
221224
void finished();
222225

@@ -226,6 +229,9 @@ public slots:
226229

227230
//! Pointer to edited layer
228231
QgsVectorLayer *mLayer;
232+
233+
//! Pointer to toolbar
234+
QToolBar *mToolBar;
229235

230236
//! Point / node size (later make editable array of Sizes)
231237
int mSize;

0 commit comments

Comments
 (0)
Please sign in to comment.