mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-10 23:46:00 -06:00
Merge pull request #4826 from OPM/fix-keyboard-events-stepping
#4825 Summary Plot Stepping : Key events are not routed correctly
This commit is contained in:
commit
3d3ad421dd
@ -269,6 +269,14 @@ std::vector<RimEnsembleCurveSet*> RimEnsembleCurveSetCollection::curveSetsForSou
|
||||
return steppingCurveSets;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryPlotSourceStepping* RimEnsembleCurveSetCollection::sourceSteppingObject() const
|
||||
{
|
||||
return m_ySourceStepping();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -65,6 +65,7 @@ public:
|
||||
void setCurveSetForSourceStepping( RimEnsembleCurveSet* curve );
|
||||
RimEnsembleCurveSet* curveSetForSourceStepping() const;
|
||||
std::vector<RimEnsembleCurveSet*> curveSetsForSourceStepping() const;
|
||||
RimSummaryPlotSourceStepping* sourceSteppingObject() const;
|
||||
|
||||
private:
|
||||
caf::PdmFieldHandle* objectToggleField() override;
|
||||
|
@ -18,6 +18,9 @@
|
||||
|
||||
#include "RimSummaryCrossPlot.h"
|
||||
|
||||
#include "RimSummaryCurveCollection.h"
|
||||
#include "RimSummaryPlotSourceStepping.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT( RimSummaryCrossPlot, "SummaryCrossPlot" );
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -29,3 +32,11 @@ RimSummaryCrossPlot::RimSummaryCrossPlot()
|
||||
|
||||
setAsCrossPlot();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryPlotSourceStepping* RimSummaryCrossPlot::sourceSteppingObjectForKeyEventHandling() const
|
||||
{
|
||||
return summaryCurveCollection()->sourceSteppingObject( RimSummaryPlotSourceStepping::UNION_X_Y_AXIS );
|
||||
}
|
||||
|
@ -30,4 +30,6 @@ class RimSummaryCrossPlot : public RimSummaryPlot
|
||||
|
||||
public:
|
||||
RimSummaryCrossPlot();
|
||||
|
||||
virtual RimSummaryPlotSourceStepping* sourceSteppingObjectForKeyEventHandling() const override;
|
||||
};
|
||||
|
@ -338,72 +338,6 @@ std::vector<caf::PdmFieldHandle*> RimSummaryCurveCollection::fieldsToShowInToolb
|
||||
return m_ySourceStepping()->fieldsToShowInToolbar();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCurveCollection::handleKeyPressEvent( QKeyEvent* keyEvent )
|
||||
{
|
||||
if ( !keyEvent ) return;
|
||||
|
||||
RimSummaryPlotSourceStepping* sourceStepping = nullptr;
|
||||
{
|
||||
RimSummaryCrossPlot* summaryCrossPlot = nullptr;
|
||||
this->firstAncestorOrThisOfType( summaryCrossPlot );
|
||||
|
||||
if ( summaryCrossPlot )
|
||||
{
|
||||
sourceStepping = m_unionSourceStepping();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping = m_ySourceStepping();
|
||||
}
|
||||
}
|
||||
|
||||
if ( keyEvent->key() == Qt::Key_PageUp )
|
||||
{
|
||||
if ( keyEvent->modifiers() & Qt::ShiftModifier )
|
||||
{
|
||||
sourceStepping->applyPrevCase();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else if ( keyEvent->modifiers() & Qt::ControlModifier )
|
||||
{
|
||||
sourceStepping->applyPrevOtherIdentifier();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping->applyPrevQuantity();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
}
|
||||
else if ( keyEvent->key() == Qt::Key_PageDown )
|
||||
{
|
||||
if ( keyEvent->modifiers() & Qt::ShiftModifier )
|
||||
{
|
||||
sourceStepping->applyNextCase();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else if ( keyEvent->modifiers() & Qt::ControlModifier )
|
||||
{
|
||||
sourceStepping->applyNextOtherIdentifier();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping->applyNextQuantity();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -440,6 +374,28 @@ RimSummaryCurve* RimSummaryCurveCollection::curveForSourceStepping() const
|
||||
return m_curveForSourceStepping;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryPlotSourceStepping* RimSummaryCurveCollection::sourceSteppingObject(
|
||||
RimSummaryPlotSourceStepping::SourceSteppingType sourceSteppingType ) const
|
||||
{
|
||||
if ( sourceSteppingType == RimSummaryPlotSourceStepping::X_AXIS )
|
||||
{
|
||||
return m_xSourceStepping();
|
||||
}
|
||||
else if ( sourceSteppingType == RimSummaryPlotSourceStepping::Y_AXIS )
|
||||
{
|
||||
return m_ySourceStepping();
|
||||
}
|
||||
if ( sourceSteppingType == RimSummaryPlotSourceStepping::UNION_X_Y_AXIS )
|
||||
{
|
||||
return m_unionSourceStepping();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -67,13 +67,14 @@ public:
|
||||
|
||||
std::vector<caf::PdmFieldHandle*> fieldsToShowInToolbar();
|
||||
|
||||
void handleKeyPressEvent( QKeyEvent* keyEvent );
|
||||
|
||||
void setCurveAsTopZWithinCategory( RimSummaryCurve* curve );
|
||||
|
||||
void setCurveForSourceStepping( RimSummaryCurve* curve );
|
||||
RimSummaryCurve* curveForSourceStepping() const;
|
||||
|
||||
RimSummaryPlotSourceStepping*
|
||||
sourceSteppingObject( RimSummaryPlotSourceStepping::SourceSteppingType sourceSteppingType ) const;
|
||||
|
||||
private:
|
||||
caf::PdmFieldHandle* objectToggleField() override;
|
||||
void defineObjectEditorAttribute( QString uiConfigName, caf::PdmUiEditorAttribute* attribute ) override;
|
||||
|
@ -19,8 +19,10 @@
|
||||
#include "RimSummaryPlot.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaColorTables.h"
|
||||
#include "RiaFieldHandleTools.h"
|
||||
#include "RiaSummaryCurveAnalyzer.h"
|
||||
#include "RiaSummaryCurveDefinition.h"
|
||||
#include "RiaTimeHistoryCurveResampler.h"
|
||||
|
||||
#include "SummaryPlotCommands/RicSummaryCurveCreator.h"
|
||||
@ -39,9 +41,9 @@
|
||||
#include "RimSummaryCurveFilter.h"
|
||||
#include "RimSummaryCurvesCalculator.h"
|
||||
#include "RimSummaryPlotCollection.h"
|
||||
#include "RimSummaryPlotFilterTextCurveSetEditor.h"
|
||||
#include "RimSummaryPlotNameHelper.h"
|
||||
#include "RimSummaryTimeAxisProperties.h"
|
||||
#include "RimSummaryPlotFilterTextCurveSetEditor.h"
|
||||
|
||||
#include "RiuPlotMainWindowTools.h"
|
||||
#include "RiuSummaryQwtPlot.h"
|
||||
@ -59,12 +61,13 @@
|
||||
#include "qwt_scale_engine.h"
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QDebug>
|
||||
#include <QEvent>
|
||||
#include <QKeyEvent>
|
||||
#include <QRectF>
|
||||
#include <QString>
|
||||
|
||||
#include "RiaColorTables.h"
|
||||
#include "RiaSummaryCurveDefinition.h"
|
||||
#include <QDebug>
|
||||
#include "cafSelectionManager.h"
|
||||
#include <limits>
|
||||
#include <set>
|
||||
|
||||
@ -199,7 +202,12 @@ RimSummaryPlot::RimSummaryPlot()
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_plotTemplate, "PlotTemplate", "Template", "", "", "" );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_textCurveSetEditor, "SummaryPlotFilterTextCurveSetEditor", "Text Filter Curve Creator", "", "", "" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_textCurveSetEditor,
|
||||
"SummaryPlotFilterTextCurveSetEditor",
|
||||
"Text Filter Curve Creator",
|
||||
"",
|
||||
"",
|
||||
"" );
|
||||
m_textCurveSetEditor.uiCapability()->setUiTreeHidden( true );
|
||||
m_textCurveSetEditor = new RimSummaryPlotFilterTextCurveSetEditor;
|
||||
|
||||
@ -1194,9 +1202,9 @@ void RimSummaryPlot::addGridTimeHistoryCurve( RimGridTimeHistoryCurve* curve )
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryPlot::addGridTimeHistoryCurveNoUpdate(RimGridTimeHistoryCurve* curve)
|
||||
void RimSummaryPlot::addGridTimeHistoryCurveNoUpdate( RimGridTimeHistoryCurve* curve )
|
||||
{
|
||||
CVF_ASSERT( curve );
|
||||
|
||||
@ -1208,7 +1216,7 @@ void RimSummaryPlot::addGridTimeHistoryCurveNoUpdate(RimGridTimeHistoryCurve* cu
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimGridTimeHistoryCurve*> RimSummaryPlot::gridTimeHistoryCurves() const
|
||||
{
|
||||
@ -1538,7 +1546,7 @@ std::set<RimPlotAxisPropertiesInterface*> RimSummaryPlot::allPlotAxes() const
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryPlot::deleteAllGridTimeHistoryCurves()
|
||||
{
|
||||
@ -1598,13 +1606,13 @@ void RimSummaryPlot::setAsCrossPlot()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryPlot::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOrdering )
|
||||
{
|
||||
caf::PdmUiGroup* mainOptions = uiOrdering.addNewGroup("General Plot Options");
|
||||
caf::PdmUiGroup* mainOptions = uiOrdering.addNewGroup( "General Plot Options" );
|
||||
|
||||
mainOptions->add( &m_showPlotTitle );
|
||||
if ( m_showPlotTitle )
|
||||
{
|
||||
mainOptions->add(&m_useAutoPlotTitle);
|
||||
mainOptions->add(&m_userDefinedPlotTitle);
|
||||
mainOptions->add( &m_useAutoPlotTitle );
|
||||
mainOptions->add( &m_userDefinedPlotTitle );
|
||||
}
|
||||
m_userDefinedPlotTitle.uiCapability()->setUiReadOnly( m_useAutoPlotTitle );
|
||||
|
||||
@ -1929,6 +1937,104 @@ RimPlotTemplateFileItem* RimSummaryPlot::plotTemplate() const
|
||||
return m_plotTemplate();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryPlot::handleKeyPressEvent( QKeyEvent* keyEvent )
|
||||
{
|
||||
if ( !keyEvent ) return;
|
||||
|
||||
RimSummaryPlotSourceStepping* sourceStepping = sourceSteppingObjectForKeyEventHandling();
|
||||
if ( !sourceStepping ) return;
|
||||
|
||||
if ( keyEvent->key() == Qt::Key_PageUp )
|
||||
{
|
||||
if ( keyEvent->modifiers() & Qt::ShiftModifier )
|
||||
{
|
||||
sourceStepping->applyPrevCase();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else if ( keyEvent->modifiers() & Qt::ControlModifier )
|
||||
{
|
||||
sourceStepping->applyPrevOtherIdentifier();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping->applyPrevQuantity();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
}
|
||||
else if ( keyEvent->key() == Qt::Key_PageDown )
|
||||
{
|
||||
if ( keyEvent->modifiers() & Qt::ShiftModifier )
|
||||
{
|
||||
sourceStepping->applyNextCase();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else if ( keyEvent->modifiers() & Qt::ControlModifier )
|
||||
{
|
||||
sourceStepping->applyNextOtherIdentifier();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceStepping->applyNextQuantity();
|
||||
|
||||
keyEvent->accept();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryPlotSourceStepping* RimSummaryPlot::sourceSteppingObjectForKeyEventHandling() const
|
||||
{
|
||||
caf::PdmObjectHandle* selectedObj = dynamic_cast<caf::PdmObjectHandle*>(
|
||||
caf::SelectionManager::instance()->selectedItem() );
|
||||
if ( selectedObj )
|
||||
{
|
||||
RimEnsembleCurveSetCollection* ensembleCurveSetColl = nullptr;
|
||||
selectedObj->firstAncestorOrThisOfType( ensembleCurveSetColl );
|
||||
|
||||
if ( ensembleCurveSetColl )
|
||||
{
|
||||
return ensembleCurveSetCollection()->sourceSteppingObject();
|
||||
}
|
||||
}
|
||||
|
||||
return summaryCurveCollection()->sourceSteppingObject( RimSummaryPlotSourceStepping::Y_AXIS );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<caf::PdmFieldHandle*> RimSummaryPlot::fieldsToShowInToolbar()
|
||||
{
|
||||
std::vector<caf::PdmFieldHandle*> toolBarFields;
|
||||
|
||||
auto sourceObject = sourceSteppingObjectForKeyEventHandling();
|
||||
|
||||
if ( sourceObject )
|
||||
{
|
||||
toolBarFields = sourceObject->fieldsToShowInToolbar();
|
||||
}
|
||||
|
||||
if ( toolBarFields.empty() )
|
||||
{
|
||||
// Show ensemble stepping if no fields are available from summary stepping
|
||||
toolBarFields = ensembleCurveSetCollection()->fieldsToShowInToolbar();
|
||||
}
|
||||
|
||||
return toolBarFields;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -53,10 +53,13 @@ class RiuSummaryQwtPlot;
|
||||
class RimSummaryPlotNameHelper;
|
||||
class RimPlotTemplateFileItem;
|
||||
class RimSummaryPlotFilterTextCurveSetEditor;
|
||||
class RimSummaryPlotSourceStepping;
|
||||
|
||||
class QwtInterval;
|
||||
class QwtPlotCurve;
|
||||
|
||||
class QKeyEvent;
|
||||
|
||||
//==================================================================================================
|
||||
///
|
||||
///
|
||||
@ -89,7 +92,7 @@ public:
|
||||
|
||||
void addGridTimeHistoryCurve( RimGridTimeHistoryCurve* curve );
|
||||
void addGridTimeHistoryCurveNoUpdate( RimGridTimeHistoryCurve* curve );
|
||||
|
||||
|
||||
std::vector<RimGridTimeHistoryCurve*> gridTimeHistoryCurves() const;
|
||||
|
||||
void addAsciiDataCruve( RimAsciiDataCurve* curve );
|
||||
@ -156,6 +159,10 @@ public:
|
||||
void setPlotTemplate( RimPlotTemplateFileItem* plotTemplate );
|
||||
RimPlotTemplateFileItem* plotTemplate() const;
|
||||
|
||||
void handleKeyPressEvent( QKeyEvent* keyEvent );
|
||||
virtual RimSummaryPlotSourceStepping* sourceSteppingObjectForKeyEventHandling() const;
|
||||
virtual std::vector<caf::PdmFieldHandle*> fieldsToShowInToolbar();
|
||||
|
||||
public:
|
||||
// Rim2dPlotInterface overrides
|
||||
void updateAxisScaling() override;
|
||||
|
@ -607,15 +607,17 @@ std::set<RifEclipseSummaryAddress> RimSummaryPlotSourceStepping::adressesForSour
|
||||
{
|
||||
std::set<RifEclipseSummaryAddress> addressSet;
|
||||
|
||||
RimEnsembleCurveSetCollection* ensembleCollection = nullptr;
|
||||
this->firstAncestorOrThisOfType( ensembleCollection );
|
||||
if ( ensembleCollection )
|
||||
{
|
||||
auto curveSets = ensembleCollection->curveSetsForSourceStepping();
|
||||
for ( const RimEnsembleCurveSet* curveSet : curveSets )
|
||||
RimEnsembleCurveSetCollection* ensembleCollection = nullptr;
|
||||
this->firstAncestorOrThisOfType( ensembleCollection );
|
||||
if ( ensembleCollection )
|
||||
{
|
||||
auto addresses = curveSet->summaryCaseCollection()->ensembleSummaryAddresses();
|
||||
addressSet.insert( addresses.begin(), addresses.end() );
|
||||
auto curveSets = ensembleCollection->curveSetsForSourceStepping();
|
||||
for ( const RimEnsembleCurveSet* curveSet : curveSets )
|
||||
{
|
||||
auto addresses = curveSet->summaryCaseCollection()->ensembleSummaryAddresses();
|
||||
addressSet.insert( addresses.begin(), addresses.end() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -649,9 +651,19 @@ std::set<RifEclipseSummaryAddress> RimSummaryPlotSourceStepping::addressesForCur
|
||||
{
|
||||
std::set<RifEclipseSummaryAddress> addresses;
|
||||
|
||||
RimEnsembleCurveSetCollection* ensembleCollection = nullptr;
|
||||
this->firstAncestorOrThisOfType( ensembleCollection );
|
||||
if ( ensembleCollection )
|
||||
{
|
||||
auto curveSets = ensembleCollection->curveSetsForSourceStepping();
|
||||
for ( const RimEnsembleCurveSet* curveSet : curveSets )
|
||||
{
|
||||
addresses.insert( curveSet->summaryAddress() );
|
||||
}
|
||||
}
|
||||
|
||||
RimSummaryCurveCollection* curveCollection = nullptr;
|
||||
this->firstAncestorOrThisOfType( curveCollection );
|
||||
|
||||
if ( curveCollection )
|
||||
{
|
||||
auto curves = curveCollection->curvesForSourceStepping( m_sourceSteppingType );
|
||||
@ -669,17 +681,6 @@ std::set<RifEclipseSummaryAddress> RimSummaryPlotSourceStepping::addressesForCur
|
||||
}
|
||||
}
|
||||
|
||||
RimEnsembleCurveSetCollection* ensembleCollection = nullptr;
|
||||
this->firstAncestorOrThisOfType( ensembleCollection );
|
||||
if ( ensembleCollection )
|
||||
{
|
||||
auto curveSets = ensembleCollection->curveSetsForSourceStepping();
|
||||
for ( const RimEnsembleCurveSet* curveSet : curveSets )
|
||||
{
|
||||
addresses.insert( curveSet->summaryAddress() );
|
||||
}
|
||||
}
|
||||
|
||||
return addresses;
|
||||
}
|
||||
|
||||
|
@ -556,31 +556,7 @@ void RiuPlotMainWindow::updateSummaryPlotToolBar( bool forceUpdateUi )
|
||||
RimSummaryPlot* summaryPlot = dynamic_cast<RimSummaryPlot*>( m_activePlotViewWindow.p() );
|
||||
if ( summaryPlot )
|
||||
{
|
||||
std::vector<caf::PdmFieldHandle*> toolBarFields;
|
||||
|
||||
RimEnsembleCurveSetCollection* ensembleCurveSetColl = nullptr;
|
||||
|
||||
caf::PdmObjectHandle* selectedObj = dynamic_cast<caf::PdmObjectHandle*>(
|
||||
caf::SelectionManager::instance()->selectedItem() );
|
||||
if ( selectedObj )
|
||||
{
|
||||
selectedObj->firstAncestorOrThisOfType( ensembleCurveSetColl );
|
||||
}
|
||||
|
||||
if ( ensembleCurveSetColl )
|
||||
{
|
||||
toolBarFields = ensembleCurveSetColl->fieldsToShowInToolbar();
|
||||
}
|
||||
else
|
||||
{
|
||||
toolBarFields = summaryPlot->summaryCurveCollection()->fieldsToShowInToolbar();
|
||||
|
||||
if ( toolBarFields.empty() )
|
||||
{
|
||||
// Show ensemble stepping if no fields are available from summary stepping
|
||||
toolBarFields = summaryPlot->ensembleCurveSetCollection()->fieldsToShowInToolbar();
|
||||
}
|
||||
}
|
||||
std::vector<caf::PdmFieldHandle*> toolBarFields = summaryPlot->fieldsToShowInToolbar();
|
||||
|
||||
if ( !m_summaryPlotToolBarEditor->isEditorDataValid( toolBarFields ) )
|
||||
{
|
||||
|
@ -169,10 +169,9 @@ void RiuSummaryQwtPlot::keyPressEvent( QKeyEvent* keyEvent )
|
||||
{
|
||||
RimSummaryPlot* summaryPlot = dynamic_cast<RimSummaryPlot*>( ownerPlotDefinition() );
|
||||
|
||||
if ( summaryPlot && summaryPlot->summaryCurveCollection() )
|
||||
if ( summaryPlot )
|
||||
{
|
||||
RimSummaryCurveCollection* curveColl = summaryPlot->summaryCurveCollection();
|
||||
curveColl->handleKeyPressEvent( keyEvent );
|
||||
summaryPlot->handleKeyPressEvent( keyEvent );
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user