Well log plots now contain one plot per trace

This commit is contained in:
Pål Hagen 2015-08-28 14:25:14 +02:00
parent 7401160677
commit 4e83cff8a2
7 changed files with 133 additions and 6 deletions

View File

@ -81,6 +81,8 @@ set( USER_INTERFACE_FILES
UserInterface/RiuTreeViewEventFilter.h UserInterface/RiuTreeViewEventFilter.h
UserInterface/RiuWellLogPlot.cpp UserInterface/RiuWellLogPlot.cpp
UserInterface/RiuWellLogPlot.h UserInterface/RiuWellLogPlot.h
UserInterface/RiuWellLogTracePlot.cpp
UserInterface/RiuWellLogTracePlot.h
) )
set( SOCKET_INTERFACE_FILES set( SOCKET_INTERFACE_FILES
@ -163,6 +165,7 @@ set ( QT_MOC_HEADERS
UserInterface/RiuViewerCommands.h UserInterface/RiuViewerCommands.h
UserInterface/RiuTreeViewEventFilter.h UserInterface/RiuTreeViewEventFilter.h
UserInterface/RiuWellLogPlot.h UserInterface/RiuWellLogPlot.h
UserInterface/RiuWellLogTracePlot.h
) )
qt4_wrap_cpp( MOC_FILES_CPP ${QT_MOC_HEADERS} ) qt4_wrap_cpp( MOC_FILES_CPP ${QT_MOC_HEADERS} )

View File

@ -106,4 +106,6 @@ void RimWellLogPlot::addTrace()
RiuMainWindow::instance()->projectTreeView()->setExpanded(this, true); RiuMainWindow::instance()->projectTreeView()->setExpanded(this, true);
updateConnectedEditors(); updateConnectedEditors();
m_viewer->update(*this);
} }

View File

@ -40,10 +40,11 @@ public:
RimWellLogPlot(); RimWellLogPlot();
virtual ~RimWellLogPlot(); virtual ~RimWellLogPlot();
void addTrace(); caf::PdmChildArrayField<RimWellLogPlotTrace*> traces;
caf::PdmField<bool> showWindow; caf::PdmField<bool> showWindow;
void addTrace();
protected: protected:
// Overridden PDM methods // Overridden PDM methods
@ -56,5 +57,4 @@ private:
private: private:
QPointer<RiuWellLogPlot> m_viewer; QPointer<RiuWellLogPlot> m_viewer;
caf::PdmChildArrayField<RimWellLogPlotTrace*> traces;
}; };

View File

@ -19,12 +19,21 @@
#include "RiuWellLogPlot.h" #include "RiuWellLogPlot.h"
#include "RiuWellLogTracePlot.h"
#include "RimWellLogPlot.h"
#include "RimWellLogPlotTrace.h"
#include <QHBoxLayout>
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RiuWellLogPlot::RiuWellLogPlot(QWidget* parent) RiuWellLogPlot::RiuWellLogPlot(QWidget* parent)
: QwtPlot(parent) : QWidget(parent)
{ {
m_layout = new QHBoxLayout(this);
setLayout(m_layout);
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -33,3 +42,32 @@ RiuWellLogPlot::RiuWellLogPlot(QWidget* parent)
RiuWellLogPlot::~RiuWellLogPlot() RiuWellLogPlot::~RiuWellLogPlot()
{ {
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuWellLogPlot::update(const RimWellLogPlot& plot)
{
clear();
for (size_t traceIdx = 0; traceIdx < plot.traces.size(); traceIdx++)
{
RiuWellLogTracePlot* tracePlot = new RiuWellLogTracePlot(this);
m_layout->addWidget(tracePlot);
m_children.append(tracePlot);
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuWellLogPlot::clear()
{
for (int childIdx = 0; childIdx < m_children.size(); childIdx++)
{
m_layout->removeWidget(m_children[childIdx]);
delete m_children[childIdx];
}
m_children.clear();
}

View File

@ -19,14 +19,19 @@
#pragma once #pragma once
#include "qwt_plot.h" #include <QWidget>
#include <QList>
class RimWellLogPlot;
class RiuWellLogTracePlot;
class QHBoxLayout;
//================================================================================================== //==================================================================================================
// //
// RiuWellLogPlot // RiuWellLogPlot
// //
//================================================================================================== //==================================================================================================
class RiuWellLogPlot : public QwtPlot class RiuWellLogPlot : public QWidget
{ {
Q_OBJECT Q_OBJECT
@ -34,5 +39,11 @@ public:
RiuWellLogPlot(QWidget* parent = NULL); RiuWellLogPlot(QWidget* parent = NULL);
virtual ~RiuWellLogPlot(); virtual ~RiuWellLogPlot();
void update(const RimWellLogPlot& plot);
void clear();
private:
QHBoxLayout* m_layout;
QList<RiuWellLogTracePlot*> m_children;
}; };

View File

@ -0,0 +1,35 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2015- Statoil ASA
// Copyright (C) 2015- Ceetron Solutions AS
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RiuWellLogTracePlot.h"
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiuWellLogTracePlot::RiuWellLogTracePlot(QWidget* parent)
: QwtPlot(parent)
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiuWellLogTracePlot::~RiuWellLogTracePlot()
{
}

View File

@ -0,0 +1,38 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2015- Statoil ASA
// Copyright (C) 2015- Ceetron Solutions AS
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "qwt_plot.h"
//==================================================================================================
//
// RiuWellLogTracePlot
//
//==================================================================================================
class RiuWellLogTracePlot : public QwtPlot
{
Q_OBJECT
public:
RiuWellLogTracePlot(QWidget* parent = NULL);
virtual ~RiuWellLogTracePlot();
};