From 3e7413831a8a5391fa1e3b39350f5830d32f914f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20St=C3=B8ren?= Date: Fri, 10 Feb 2017 11:22:57 +0100 Subject: [PATCH] #1173 Added the possibility to hide the legend in a Well Alloc plots ((including WellLog plot ) Also changed the background color to white. --- .../ProjectDataModel/RimWellLogPlot.cpp | 22 +++++++++++++++++-- .../ProjectDataModel/RimWellLogPlot.h | 2 ++ .../UserInterface/RiuWellAllocationPlot.cpp | 6 +++++ .../UserInterface/RiuWellLogPlot.cpp | 17 +++++++++----- 4 files changed, 40 insertions(+), 7 deletions(-) diff --git a/ApplicationCode/ProjectDataModel/RimWellLogPlot.cpp b/ApplicationCode/ProjectDataModel/RimWellLogPlot.cpp index b397e90457..7feff6b29a 100644 --- a/ApplicationCode/ProjectDataModel/RimWellLogPlot.cpp +++ b/ApplicationCode/ProjectDataModel/RimWellLogPlot.cpp @@ -73,6 +73,7 @@ RimWellLogPlot::RimWellLogPlot() CAF_PDM_InitField(&m_minVisibleDepth, "MinimumDepth", 0.0, "Min", "", "", ""); CAF_PDM_InitField(&m_maxVisibleDepth, "MaximumDepth", 1000.0, "Max", "", "", ""); CAF_PDM_InitField(&m_isAutoScaleDepthEnabled, "AutoScaleDepthEnabled", true, "Auto Scale", "", "", ""); + CAF_PDM_InitField(&m_showTrackLegends, "ShowTrackLegends", true, "Show Legends", "", "", ""); CAF_PDM_InitFieldNoDefault(&m_tracks, "Tracks", "", "", "", ""); m_tracks.uiCapability()->setUiHidden(true); @@ -115,11 +116,18 @@ void RimWellLogPlot::fieldChangedByUi(const caf::PdmFieldHandle* changedField, c updateMdiWindowTitle(); } - if (changedField == &m_depthType || - changedField == &m_depthUnit) + if ( changedField == &m_depthType + || changedField == &m_depthUnit) { updateTracks(); } + + if ( changedField == &m_showTrackLegends) + { + updateTracks(); + if (m_viewer) m_viewer->updateChildrenLayout(); + } + } //-------------------------------------------------------------------------------------------------- @@ -396,6 +404,8 @@ void RimWellLogPlot::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& gridGroup->add(&m_minVisibleDepth); gridGroup->add(&m_maxVisibleDepth); + uiOrdering.add(&m_showTrackLegends); + uiOrdering.setForgetRemainingFields(true); } @@ -619,6 +629,14 @@ QString RimWellLogPlot::depthPlotTitle() const return depthTitle; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RimWellLogPlot::isTrackLegendsVisible() const +{ + return m_showTrackLegends(); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimWellLogPlot.h b/ApplicationCode/ProjectDataModel/RimWellLogPlot.h index 821374da32..dbffcd8845 100644 --- a/ApplicationCode/ProjectDataModel/RimWellLogPlot.h +++ b/ApplicationCode/ProjectDataModel/RimWellLogPlot.h @@ -68,6 +68,7 @@ public: QString depthPlotTitle() const; + bool isTrackLegendsVisible() const; void addTrack(RimWellLogTrack* track); void insertTrack(RimWellLogTrack* track, size_t index); @@ -134,6 +135,7 @@ private: caf::PdmField m_minVisibleDepth; caf::PdmField m_maxVisibleDepth; caf::PdmField m_isAutoScaleDepthEnabled; + caf::PdmField m_showTrackLegends; double m_minAvailableDepth; double m_maxAvailableDepth; diff --git a/ApplicationCode/UserInterface/RiuWellAllocationPlot.cpp b/ApplicationCode/UserInterface/RiuWellAllocationPlot.cpp index 16c12ffb57..82c25b57b2 100644 --- a/ApplicationCode/UserInterface/RiuWellAllocationPlot.cpp +++ b/ApplicationCode/UserInterface/RiuWellAllocationPlot.cpp @@ -51,6 +51,12 @@ RiuWellAllocationPlot::RiuWellAllocationPlot(RimWellAllocationPlot* plotDefiniti font.setBold(true); m_titleLabel->setFont(font); + // White background + QPalette pal = this->palette(); + pal.setColor(QPalette::Background, Qt::white); + this->setAutoFillBackground(true); + this->setPalette(pal); + mainLayout->addWidget(m_titleLabel, 0, Qt::AlignCenter); QHBoxLayout* plotWidgetsLayout = new QHBoxLayout(); diff --git a/ApplicationCode/UserInterface/RiuWellLogPlot.cpp b/ApplicationCode/UserInterface/RiuWellLogPlot.cpp index 478af15439..93ce886db3 100644 --- a/ApplicationCode/UserInterface/RiuWellLogPlot.cpp +++ b/ApplicationCode/UserInterface/RiuWellLogPlot.cpp @@ -96,6 +96,11 @@ void RiuWellLogPlot::insertTrackPlot(RiuWellLogTrack* trackPlot, size_t index) this->connect(trackPlot, SIGNAL(legendDataChanged(const QVariant &, const QList< QwtLegendData > &)), SLOT(scheduleUpdateChildrenLayout())); + if (!m_plotDefinition->isTrackLegendsVisible()) + { + legend->hide(); + } + trackPlot->updateLegend(); if (trackPlot->isRimTrackVisible()) @@ -263,19 +268,21 @@ void RiuWellLogPlot::placeChildWidgets(int height, int width) int maxLegendHeight = 0; - for (int tIdx = 0; tIdx < trackCount; ++tIdx) + if (m_plotDefinition->isTrackLegendsVisible()) { - if (m_trackPlots[tIdx]->isVisible()) + for ( int tIdx = 0; tIdx < trackCount; ++tIdx ) { - int legendHeight = m_legends[tIdx]->sizeHint().height(); - if (legendHeight > maxLegendHeight) maxLegendHeight = legendHeight; + if ( m_trackPlots[tIdx]->isVisible() ) + { + int legendHeight = m_legends[tIdx]->sizeHint().height(); + if ( legendHeight > maxLegendHeight ) maxLegendHeight = legendHeight; + } } } int trackHeight = height - maxLegendHeight; int trackX = 0; - if (visibleTrackCount) { int trackWidth = (width - scrollBarWidth)/visibleTrackCount;