///////////////////////////////////////////////////////////////////////////////// // // 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 // for more details. // ///////////////////////////////////////////////////////////////////////////////// #include "RiuWellLogTracePlot.h" #include "qwt_plot_grid.h" #include "qwt_legend.h" #include "qwt_scale_engine.h" #include "qwt_plot_layout.h" //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RiuWellLogTracePlot::RiuWellLogTracePlot(QWidget* parent) : QwtPlot(parent) { m_grid = new QwtPlotGrid(); m_grid->attach(this); m_legend = new QwtLegend(this); insertLegend(m_legend, QwtPlot::TopLegend); setDefaults(); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RiuWellLogTracePlot::~RiuWellLogTracePlot() { m_grid->detach(); delete m_grid; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RiuWellLogTracePlot::setDefaults() { QPalette newPalette(palette()); newPalette.setColor(QPalette::Background, Qt::white); setPalette(newPalette); setAutoFillBackground(true); setCanvasBackground(Qt::white); QFrame* canvasFrame = dynamic_cast(canvas()); if (canvasFrame) { canvasFrame->setFrameShape(QFrame::NoFrame); } QPen gridPen(Qt::SolidLine); gridPen.setColor(Qt::lightGray); m_grid->setPen(gridPen); enableAxis(QwtPlot::xTop, true); enableAxis(QwtPlot::yLeft, true); enableAxis(QwtPlot::xBottom, false); enableAxis(QwtPlot::yRight, false); plotLayout()->setAlignCanvasToScales(true); axisScaleEngine(QwtPlot::yLeft)->setAttribute(QwtScaleEngine::Inverted, true); // Align the canvas with the actual min and max values of the curves axisScaleEngine(QwtPlot::xTop)->setAttribute(QwtScaleEngine::Floating, true); axisScaleEngine(QwtPlot::yLeft)->setAttribute(QwtScaleEngine::Floating, true); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RiuWellLogTracePlot::setDepthRange(double minDepth, double maxDepth) { // Note: Y-axis is inverted setAxisScale(QwtPlot::yLeft, maxDepth, minDepth); replot(); }