#2089 Cross Plot : Make sure context menu items works as expected

This commit is contained in:
Magne Sjaastad
2017-11-15 07:07:26 +01:00
parent 65e076ab31
commit f14eb44efd
8 changed files with 109 additions and 17 deletions

View File

@@ -24,10 +24,14 @@
#include "RimMainPlotCollection.h" #include "RimMainPlotCollection.h"
#include "RimProject.h" #include "RimProject.h"
#include "RimSummaryCrossPlot.h"
#include "RimSummaryCurve.h" #include "RimSummaryCurve.h"
#include "RimSummaryPlot.h" #include "RimSummaryPlot.h"
#include "RimSummaryPlotCollection.h" #include "RimSummaryPlotCollection.h"
#include "cafPdmObject.h"
#include "RimSummaryCrossPlotCollection.h"
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -61,3 +65,68 @@ void RiaSummaryTools::notifyCalculatedCurveNameHasChanged(const QString& previou
} }
} }
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryPlot* RiaSummaryTools::parentSummaryPlot(caf::PdmObject* object)
{
if (parentCrossPlot(object))
{
return nullptr;
}
RimSummaryPlot* summaryPlot = nullptr;
if (object)
{
object->firstAncestorOrThisOfType(summaryPlot);
}
return summaryPlot;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryPlotCollection* RiaSummaryTools::parentSummaryPlotCollection(caf::PdmObject* object)
{
RimSummaryPlotCollection* summaryPlotColl = nullptr;
if (object)
{
object->firstAncestorOrThisOfType(summaryPlotColl);
}
return summaryPlotColl;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryCrossPlot* RiaSummaryTools::parentCrossPlot(caf::PdmObject* object)
{
RimSummaryCrossPlot* crossPlot = nullptr;
if (object)
{
object->firstAncestorOrThisOfType(crossPlot);
}
return crossPlot;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryCrossPlotCollection* RiaSummaryTools::parentCrossPlotCollection(caf::PdmObject* object)
{
RimSummaryCrossPlotCollection* crossPlotColl = nullptr;
if (object)
{
object->firstAncestorOrThisOfType(crossPlotColl);
}
return crossPlotColl;
}

View File

@@ -19,9 +19,16 @@
#pragma once #pragma once
class RimSummaryPlotCollection; class RimSummaryPlotCollection;
class RimSummaryPlot;
class RimSummaryCrossPlot;
class RimSummaryCrossPlotCollection;
class QString; class QString;
namespace caf {
class PdmObject;
}
//================================================================================================== //==================================================================================================
// //
//================================================================================================== //==================================================================================================
@@ -31,4 +38,10 @@ public:
static RimSummaryPlotCollection* summaryPlotCollection(); static RimSummaryPlotCollection* summaryPlotCollection();
static void notifyCalculatedCurveNameHasChanged(const QString& previousCurveName, static void notifyCalculatedCurveNameHasChanged(const QString& previousCurveName,
const QString& currentCurveName); const QString& currentCurveName);
static RimSummaryPlot* parentSummaryPlot(caf::PdmObject* object);
static RimSummaryPlotCollection* parentSummaryPlotCollection(caf::PdmObject* object);
static RimSummaryCrossPlot* parentCrossPlot(caf::PdmObject* object);
static RimSummaryCrossPlotCollection* parentCrossPlotCollection(caf::PdmObject* object);
}; };

View File

@@ -20,6 +20,7 @@
#include "RiaApplication.h" #include "RiaApplication.h"
#include "RiaPreferences.h" #include "RiaPreferences.h"
#include "RiaSummaryTools.h"
#include "RicSummaryCurveCreator.h" #include "RicSummaryCurveCreator.h"
#include "RicSummaryCurveCreatorDialog.h" #include "RicSummaryCurveCreatorDialog.h"
@@ -122,7 +123,7 @@ RimSummaryPlot* RicEditSummaryPlotFeature::selectedSummaryPlot() const
caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>(caf::SelectionManager::instance()->selectedItem()); caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>(caf::SelectionManager::instance()->selectedItem());
if (selObj) if (selObj)
{ {
selObj->firstAncestorOrThisOfType(sumPlot); sumPlot = RiaSummaryTools::parentSummaryPlot(selObj);
} }
return sumPlot; return sumPlot;

View File

@@ -19,6 +19,7 @@
#include "RicNewSummaryCrossPlotCurveFeature.h" #include "RicNewSummaryCrossPlotCurveFeature.h"
#include "RiaApplication.h" #include "RiaApplication.h"
#include "RiaSummaryTools.h"
#include "RimMainPlotCollection.h" #include "RimMainPlotCollection.h"
#include "RimOilField.h" #include "RimOilField.h"
@@ -26,7 +27,7 @@
#include "RimSummaryCaseMainCollection.h" #include "RimSummaryCaseMainCollection.h"
#include "RimSummaryCrossPlotCollection.h" #include "RimSummaryCrossPlotCollection.h"
#include "RimSummaryCurve.h" #include "RimSummaryCurve.h"
#include "RimSummaryPlot.h" #include "RimSummaryCrossPlot.h"
#include "RimSummaryPlotCollection.h" #include "RimSummaryPlotCollection.h"
#include "RiuMainPlotWindow.h" #include "RiuMainPlotWindow.h"
@@ -45,7 +46,7 @@ CAF_CMD_SOURCE_INIT(RicNewSummaryCrossPlotCurveFeature, "RicNewSummaryCrossPlotC
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
bool RicNewSummaryCrossPlotCurveFeature::isCommandEnabled() bool RicNewSummaryCrossPlotCurveFeature::isCommandEnabled()
{ {
return (selectedSummaryPlot()); return (selectedCrossPlot());
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@@ -55,7 +56,7 @@ void RicNewSummaryCrossPlotCurveFeature::onActionTriggered(bool isChecked)
{ {
RimProject* project = RiaApplication::instance()->project(); RimProject* project = RiaApplication::instance()->project();
RimSummaryPlot* plot = selectedSummaryPlot(); RimSummaryCrossPlot* plot = selectedCrossPlot();
if (plot) if (plot)
{ {
RimSummaryCurve* newCurve = new RimSummaryCurve(); RimSummaryCurve* newCurve = new RimSummaryCurve();
@@ -91,19 +92,15 @@ void RicNewSummaryCrossPlotCurveFeature::setupActionLook(QAction* actionToSetup)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimSummaryPlot* RicNewSummaryCrossPlotCurveFeature::selectedSummaryPlot() const RimSummaryCrossPlot* RicNewSummaryCrossPlotCurveFeature::selectedCrossPlot() const
{ {
RimSummaryPlot* sumPlot = nullptr; RimSummaryCrossPlot* crossPlot = nullptr;
caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>(caf::SelectionManager::instance()->selectedItem()); caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>(caf::SelectionManager::instance()->selectedItem());
if (selObj) if (selObj)
{ {
selObj->firstAncestorOrThisOfType(sumPlot); crossPlot = RiaSummaryTools::parentCrossPlot(selObj);
} }
RimSummaryCrossPlotCollection* crossPlotColl = nullptr; return crossPlot;
sumPlot->firstAncestorOrThisOfType(crossPlotColl);
if (!crossPlotColl) return nullptr;
return sumPlot;
} }

View File

@@ -22,7 +22,7 @@
#include <vector> #include <vector>
class RimSummaryPlot; class RimSummaryCrossPlot;
//================================================================================================== //==================================================================================================
/// ///
@@ -36,5 +36,5 @@ protected:
virtual void setupActionLook( QAction* actionToSetup ) override; virtual void setupActionLook( QAction* actionToSetup ) override;
private: private:
RimSummaryPlot* selectedSummaryPlot() const; RimSummaryCrossPlot* selectedCrossPlot() const;
}; };

View File

@@ -103,7 +103,7 @@ RimSummaryPlot* RicNewSummaryCurveFeature::selectedSummaryPlot() const
caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>(caf::SelectionManager::instance()->selectedItem()); caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>(caf::SelectionManager::instance()->selectedItem());
if (selObj) if (selObj)
{ {
selObj->firstAncestorOrThisOfType(sumPlot); sumPlot = RiaSummaryTools::parentSummaryPlot(selObj);
} }
return sumPlot; return sumPlot;

View File

@@ -20,6 +20,7 @@
#include "RiaApplication.h" #include "RiaApplication.h"
#include "RiaPreferences.h" #include "RiaPreferences.h"
#include "RiaSummaryTools.h"
#include "RicEditSummaryPlotFeature.h" #include "RicEditSummaryPlotFeature.h"
#include "RicSummaryCurveCreator.h" #include "RicSummaryCurveCreator.h"
@@ -32,6 +33,7 @@
#include "RiuMainPlotWindow.h" #include "RiuMainPlotWindow.h"
#include "cvfAssert.h" #include "cvfAssert.h"
#include "cafSelectionManager.h"
#include <QAction> #include <QAction>
@@ -43,7 +45,17 @@ CAF_CMD_SOURCE_INIT(RicNewSummaryPlotFeature, "RicNewSummaryPlotFeature");
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
bool RicNewSummaryPlotFeature::isCommandEnabled() bool RicNewSummaryPlotFeature::isCommandEnabled()
{ {
return true; RimSummaryPlotCollection* sumPlotColl = nullptr;
caf::PdmObject* selObj = dynamic_cast<caf::PdmObject*>(caf::SelectionManager::instance()->selectedItem());
if (selObj)
{
sumPlotColl = RiaSummaryTools::parentSummaryPlotCollection(selObj);
}
if (sumPlotColl) return true;
return false;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@@ -326,7 +326,7 @@ QStringList RimContextCommandBuilder::commandsFromSelection()
{ {
commandIds << "RicPasteWellLogCurveFeature"; commandIds << "RicPasteWellLogCurveFeature";
} }
else if (dynamic_cast<RimSummaryPlot*>(uiItem)) else if (dynamic_cast<RimSummaryPlot*>(uiItem)) // This is also the definition for RimSummaryCrossPlot
{ {
commandIds << "RicPasteSummaryCurveFeature"; commandIds << "RicPasteSummaryCurveFeature";
commandIds << "RicPasteSummaryCurveFilterFeature"; commandIds << "RicPasteSummaryCurveFilterFeature";