21
21
#include < QGroupBox>
22
22
#include < QInputDialog>
23
23
#include < QTimer>
24
+ #include < QShortcut>
24
25
25
26
#include " qgsapplication.h"
26
27
#include " qgsactionmanager.h"
40
41
#include " qgsscrollarea.h"
41
42
#include " qgsgui.h"
42
43
#include " qgsexpressioncontextutils.h"
44
+ #include " qgsshortcutsmanager.h"
43
45
44
46
45
47
QgsDualView::QgsDualView ( QWidget *parent )
@@ -62,11 +64,23 @@ QgsDualView::QgsDualView( QWidget *parent )
62
64
connect ( mActionExpressionPreview , &QAction::triggered, this , &QgsDualView::previewExpressionBuilder );
63
65
connect ( mFeatureListView , &QgsFeatureListView::displayExpressionChanged, this , &QgsDualView::previewExpressionChanged );
64
66
67
+ // browsing toolbar
65
68
connect ( mNextFeatureButton , &QToolButton::clicked, mFeatureListView , &QgsFeatureListView::editNextFeature );
66
69
connect ( mPreviousFeatureButton , &QToolButton::clicked, mFeatureListView , &QgsFeatureListView::editPreviousFeature );
67
70
connect ( mFirstFeatureButton , &QToolButton::clicked, mFeatureListView , &QgsFeatureListView::editFirstFeature );
68
71
connect ( mLastFeatureButton , &QToolButton::clicked, mFeatureListView , &QgsFeatureListView::editLastFeature );
69
72
73
+ auto createShortcuts = [ = ]( const QString & objectName, void ( QgsFeatureListView::* slot )() )
74
+ {
75
+ QShortcut *sc = QgsGui::shortcutsManager ()->shortcutByName ( objectName );
76
+ Q_ASSERT ( sc ); // the shortcut must have been registered in the shortcuts manager
77
+ connect ( sc, &QShortcut::activated, mFeatureListView , slot );
78
+ };
79
+ createShortcuts ( QStringLiteral ( " mAttributeTableFirstEditedFeature" ), &QgsFeatureListView::editFirstFeature );
80
+ createShortcuts ( QStringLiteral ( " mAttributeTablePreviousEditedFeature" ), &QgsFeatureListView::editPreviousFeature );
81
+ createShortcuts ( QStringLiteral ( " mAttributeTableNextEditedFeature" ), &QgsFeatureListView::editNextFeature );
82
+ createShortcuts ( QStringLiteral ( " mAttributeTableLastEditedFeature" ), &QgsFeatureListView::editLastFeature );
83
+
70
84
QButtonGroup *buttonGroup = new QButtonGroup ( this );
71
85
buttonGroup->setExclusive ( false );
72
86
buttonGroup->addButton ( mFlashButton , FlashFeature );
0 commit comments