#1323 "Switch plot Axis" supported for time history curves

This commit is contained in:
Magne Sjaastad 2017-03-19 09:02:06 +01:00
parent bdf2ea4961
commit 7565b8a15d
4 changed files with 51 additions and 43 deletions

View File

@ -18,6 +18,7 @@
#include "RicSummaryCurveSwitchAxisFeature.h" #include "RicSummaryCurveSwitchAxisFeature.h"
#include "RimGridTimeHistoryCurve.h"
#include "RimSummaryCurve.h" #include "RimSummaryCurve.h"
#include "RimSummaryCurveFilter.h" #include "RimSummaryCurveFilter.h"
#include "RimSummaryPlot.h" #include "RimSummaryPlot.h"
@ -36,10 +37,14 @@ bool RicSummaryCurveSwitchAxisFeature::isCommandEnabled()
{ {
std::set<RimSummaryCurveFilter*> selectedCurveFilters; std::set<RimSummaryCurveFilter*> selectedCurveFilters;
std::set<RimSummaryCurve*> selectedSoloCurves; std::set<RimSummaryCurve*> selectedSoloCurves;
std::vector<RimGridTimeHistoryCurve*> gridTimeHistoryCurves;
RicSummaryCurveSwitchAxisFeature::extractSelectedCurveFiltersAndSoloCurves(&selectedCurveFilters, RicSummaryCurveSwitchAxisFeature::extractSelectedCurveFiltersAndSoloCurves(&selectedCurveFilters,
&selectedSoloCurves); &selectedSoloCurves,
return (selectedCurveFilters.size() || selectedSoloCurves.size()); &gridTimeHistoryCurves);
return ( selectedCurveFilters.size()
|| selectedSoloCurves.size()
|| gridTimeHistoryCurves.size());
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -49,9 +54,11 @@ void RicSummaryCurveSwitchAxisFeature::onActionTriggered(bool isChecked)
{ {
std::set<RimSummaryCurveFilter*> selectedCurveFilters; std::set<RimSummaryCurveFilter*> selectedCurveFilters;
std::set<RimSummaryCurve*> selectedSoloCurves; std::set<RimSummaryCurve*> selectedSoloCurves;
std::vector<RimGridTimeHistoryCurve*> gridTimeHistoryCurves;
RicSummaryCurveSwitchAxisFeature::extractSelectedCurveFiltersAndSoloCurves(&selectedCurveFilters, RicSummaryCurveSwitchAxisFeature::extractSelectedCurveFiltersAndSoloCurves(&selectedCurveFilters,
&selectedSoloCurves); &selectedSoloCurves,
&gridTimeHistoryCurves);
for (RimSummaryCurveFilter* summaryCurveFilter: selectedCurveFilters) for (RimSummaryCurveFilter* summaryCurveFilter: selectedCurveFilters)
{ {
@ -89,6 +96,26 @@ void RicSummaryCurveSwitchAxisFeature::onActionTriggered(bool isChecked)
summaryCurve->firstAncestorOrThisOfType(plot); summaryCurve->firstAncestorOrThisOfType(plot);
if ( plot ) plot->updateAxes(); if ( plot ) plot->updateAxes();
} }
for (RimGridTimeHistoryCurve* timeHistoryCurve : gridTimeHistoryCurves)
{
RimDefines::PlotAxis plotAxis = timeHistoryCurve->yAxis();
if (plotAxis == RimDefines::PLOT_AXIS_LEFT)
{
timeHistoryCurve->setYAxis(RimDefines::PLOT_AXIS_RIGHT);
}
else
{
timeHistoryCurve->setYAxis(RimDefines::PLOT_AXIS_LEFT);
}
timeHistoryCurve->updateConnectedEditors();
RimSummaryPlot* plot = nullptr;
timeHistoryCurve->firstAncestorOrThisOfType(plot);
if (plot) plot->updateAxes();
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -100,19 +127,24 @@ void RicSummaryCurveSwitchAxisFeature::setupActionLook(QAction* actionToSetup)
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// Solo curves means selected curves that does not have a selected curvefilter as parent /// Solo curves means selected curves that does not have a selected curve filter as parent
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RicSummaryCurveSwitchAxisFeature::extractSelectedCurveFiltersAndSoloCurves(std::set<RimSummaryCurveFilter*>* selectedCurveFilters, void RicSummaryCurveSwitchAxisFeature::extractSelectedCurveFiltersAndSoloCurves(std::set<RimSummaryCurveFilter*>* selectedCurveFilters,
std::set<RimSummaryCurve*>* selectedSoloCurves) std::set<RimSummaryCurve*>* selectedSoloCurves,
std::vector<RimGridTimeHistoryCurve*>* gridTimeHistoryCurves)
{ {
selectedSoloCurves->clear(); selectedSoloCurves->clear();
{ {
std::vector<RimSummaryCurve*> selection; std::vector<RimSummaryCurve*> selection;
caf::SelectionManager::instance()->objectsByType(&selection); caf::SelectionManager::instance()->objectsByType(&selection);
for (RimSummaryCurve* curve: selection) for (RimSummaryCurve* curve : selection)
{ {
selectedSoloCurves->insert(curve); RimSummaryCurveFilter* parentCurveFilter = nullptr;
curve->firstAncestorOrThisOfType(parentCurveFilter);
if (!parentCurveFilter)
{
selectedSoloCurves->insert(curve);
}
} }
} }
@ -120,30 +152,12 @@ void RicSummaryCurveSwitchAxisFeature::extractSelectedCurveFiltersAndSoloCurves(
{ {
std::vector<RimSummaryCurveFilter*> selection; std::vector<RimSummaryCurveFilter*> selection;
caf::SelectionManager::instance()->objectsByType(&selection); caf::SelectionManager::instance()->objectsByType(&selection);
for ( RimSummaryCurveFilter* curveFilter: selection ) for (RimSummaryCurveFilter* curveFilter : selection)
{ {
selectedCurveFilters->insert(curveFilter); selectedCurveFilters->insert(curveFilter);
} }
} }
std::vector<RimSummaryCurve*> curvesToRemove; // Read out all time history curves directly from selection manager
caf::SelectionManager::instance()->objectsByType(gridTimeHistoryCurves);
for (RimSummaryCurve* curve: (*selectedSoloCurves)) }
{
RimSummaryCurveFilter* parentCurveFilter;
curve->firstAncestorOrThisOfType(parentCurveFilter);
if (parentCurveFilter)
{
if (selectedCurveFilters->count(parentCurveFilter) > 0 )
{
curvesToRemove.push_back(curve);
}
}
}
for (RimSummaryCurve* curve: curvesToRemove)
{
selectedSoloCurves->erase(curve);
}
}

View File

@ -24,7 +24,7 @@
class RimSummaryCurve; class RimSummaryCurve;
class RimSummaryCurveFilter; class RimSummaryCurveFilter;
class RimGridTimeHistoryCurve;
//================================================================================================== //==================================================================================================
@ -41,5 +41,6 @@ protected:
private: private:
static void extractSelectedCurveFiltersAndSoloCurves(std::set<RimSummaryCurveFilter*>* selectedCurveFilters, static void extractSelectedCurveFiltersAndSoloCurves(std::set<RimSummaryCurveFilter*>* selectedCurveFilters,
std::set<RimSummaryCurve*>* selectedSoloCurves); std::set<RimSummaryCurve*>* selectedSoloCurves,
std::vector<RimGridTimeHistoryCurve*>* gridTimeHistoryCurves);
}; };

View File

@ -296,8 +296,6 @@ QStringList RimContextCommandBuilder::commandsFromSelection()
commandIds << "RicNewSummaryCurveFeature"; commandIds << "RicNewSummaryCurveFeature";
commandIds << "Separator"; commandIds << "Separator";
commandIds << "RicCopyReferencesToClipboardFeature"; commandIds << "RicCopyReferencesToClipboardFeature";
commandIds << "Separator";
commandIds << "RicSummaryCurveSwitchAxisFeature";
} }
else if(dynamic_cast<RimSummaryCurveFilter*>(uiItem)) else if(dynamic_cast<RimSummaryCurveFilter*>(uiItem))
{ {
@ -307,8 +305,6 @@ QStringList RimContextCommandBuilder::commandsFromSelection()
commandIds << "RicNewSummaryCurveFeature"; commandIds << "RicNewSummaryCurveFeature";
commandIds << "Separator"; commandIds << "Separator";
commandIds << "RicCopyReferencesToClipboardFeature"; commandIds << "RicCopyReferencesToClipboardFeature";
commandIds << "Separator";
commandIds << "RicSummaryCurveSwitchAxisFeature";
} }
else if (dynamic_cast<RimSummaryCase*>(uiItem)) else if (dynamic_cast<RimSummaryCase*>(uiItem))
{ {
@ -382,6 +378,7 @@ QStringList RimContextCommandBuilder::commandsFromSelection()
commandIds << "RicCopyReferencesToClipboardFeature"; commandIds << "RicCopyReferencesToClipboardFeature";
commandIds << "RicShowPlotDataFeature"; commandIds << "RicShowPlotDataFeature";
commandIds << "RicSummaryCurveSwitchAxisFeature";
// Work in progress -- End // Work in progress -- End
@ -398,11 +395,6 @@ QStringList RimContextCommandBuilder::commandsFromSelection()
{ {
commandIds << "RicExecuteScriptForCasesFeature"; commandIds << "RicExecuteScriptForCasesFeature";
} }
else if (dynamic_cast<RimSummaryCurve*>(uiItem) ||
dynamic_cast<RimSummaryCurveFilter*>(uiItem) )
{
commandIds << "RicSummaryCurveSwitchAxisFeature";
}
else if (dynamic_cast<RimSummaryPlot*>(uiItem)) else if (dynamic_cast<RimSummaryPlot*>(uiItem))
{ {
commandIds << "RicAsciiExportSummaryPlotFeature"; commandIds << "RicAsciiExportSummaryPlotFeature";

View File

@ -17,10 +17,11 @@
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
#pragma once #pragma once
#include <vector>
#include <QString> #include <QString>
#include <vector>
#include <set>
class RimSummaryCurve; class RimSummaryCurve;
class RimSummaryCurveFilter; class RimSummaryCurveFilter;
class RimSummaryYAxisProperties; class RimSummaryYAxisProperties;