mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4775 Summary : Improve event handling and add shorcut
This commit is contained in:
@@ -49,6 +49,44 @@ RiuTreeViewEventFilter::RiuTreeViewEventFilter( QObject* parent )
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiuTreeViewEventFilter::activateFeatureFromKeyEvent( QKeyEvent* keyEvent )
|
||||
{
|
||||
QKeySequence keySeq( keyEvent->modifiers() + keyEvent->key() );
|
||||
|
||||
auto matches = caf::CmdFeatureManager::instance()->commandFeaturesMatchingKeyboardShortcut( keySeq );
|
||||
|
||||
bool wasFeatureActivated = activateFirstEnabledFeature( matches );
|
||||
if ( wasFeatureActivated )
|
||||
{
|
||||
keyEvent->setAccepted( true );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiuTreeViewEventFilter::activateFirstEnabledFeature( const std::vector<caf::CmdFeature*>& features )
|
||||
{
|
||||
for ( caf::CmdFeature* feature : features )
|
||||
{
|
||||
if ( feature->canFeatureBeExecuted() )
|
||||
{
|
||||
feature->actionTriggered( false );
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -93,15 +131,11 @@ bool RiuTreeViewEventFilter::eventFilter( QObject* obj, QEvent* event )
|
||||
matches = caf::CmdFeatureManager::instance()->commandFeaturesMatchingKeyboardShortcut( keySeq );
|
||||
}
|
||||
|
||||
for ( caf::CmdFeature* feature : matches )
|
||||
bool wasFeatureActivated = RiuTreeViewEventFilter::activateFirstEnabledFeature( matches );
|
||||
if ( wasFeatureActivated )
|
||||
{
|
||||
if ( feature->canFeatureBeExecuted() )
|
||||
{
|
||||
feature->actionTriggered( false );
|
||||
|
||||
keyEvent->setAccepted( true );
|
||||
return true;
|
||||
}
|
||||
keyEvent->setAccepted( true );
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user