mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Depth plot as docking widget (#9909)
* Add docked depth result plot for eclipse data * Update dock layout defaults
This commit is contained in:
parent
b4f492e2fe
commit
98caeba776
@ -118,6 +118,7 @@ include_directories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ResultStatisticsCache
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ReservoirDataModel
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ReservoirDataModel/Completions
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ReservoirDataModel/ResultAccessors
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/OdbReader
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/GeoMechDataModel
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/GeoMech/GeoMechVisualization
|
||||
@ -164,6 +165,7 @@ list(
|
||||
ReservoirDataModel/CMakeLists_files.cmake
|
||||
ReservoirDataModel/CMakeLists_filesNotToUnitTest.cmake
|
||||
ReservoirDataModel/Completions/CMakeLists_files.cmake
|
||||
ReservoirDataModel/ResultAccessors/CMakeLists_files.cmake
|
||||
FileInterface/CMakeLists_files.cmake
|
||||
ProjectDataModel/CMakeLists_files.cmake
|
||||
ProjectDataModel/AnalysisPlots/CMakeLists_files.cmake
|
||||
@ -426,20 +428,22 @@ target_link_libraries(
|
||||
target_include_directories(
|
||||
${PROJECT_NAME}
|
||||
PRIVATE ${CMAKE_BINARY_DIR}/Generated
|
||||
PUBLIC ${CMAKE_SOURCE_DIR}/ApplicationLibCode
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/Application
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/Application/Tools
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/CommandFileInterface
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/CommandFileInterface/Core
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/FileInterface
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/GeoMech
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ModelVisualization
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ProjectDataModel
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ProjectDataModel/Flow
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ProjectDataModel/Intersections
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ReservoirDataModel
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/SocketInterface
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/UserInterface
|
||||
PUBLIC
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/Application
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/Application/Tools
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/CommandFileInterface
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/CommandFileInterface/Core
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/FileInterface
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/GeoMech
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ModelVisualization
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ProjectDataModel
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ProjectDataModel/Flow
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ProjectDataModel/Intersections
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ReservoirDataModel
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/ReservoirDataModel/ResultAccessors
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/SocketInterface
|
||||
${CMAKE_SOURCE_DIR}/ApplicationLibCode/UserInterface
|
||||
)
|
||||
|
||||
# ##############################################################################
|
||||
|
@ -4,14 +4,7 @@ set(SOURCE_GROUP_HEADER_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigEclipseCaseData.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigGridBase.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigGridManager.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultAccessorFactory.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigAllGridCellsResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigActiveCellsResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCellEdgeResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCellGeometryTools.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCombTransResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCombMultResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultModifier.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultModifierFactory.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigFormationNames.h
|
||||
@ -37,14 +30,12 @@ set(SOURCE_GROUP_HEADER_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/cvfGeometryTools.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/cvfGeometryTools.inl
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigPipeInCellEvaluator.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigTernaryResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigEclipseNativeStatCalc.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigEclipseNativeVisibleCellsStatCalc.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigEclipseMultiPropertyStatCalc.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigWellLogCurveData.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigWellLogExtractionTools.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigHexIntersectionTools.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigTimeHistoryResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigLasFileExporter.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigSimulationWellCoordsAndMD.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigFishbonesGeometry.h
|
||||
@ -105,14 +96,7 @@ set(SOURCE_GROUP_SOURCE_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigEclipseCaseData.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigGridBase.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigGridManager.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultAccessorFactory.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigAllGridCellsResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigActiveCellsResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCellEdgeResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCellGeometryTools.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCombTransResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCombMultResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultModifierFactory.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigFormationNames.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigAllanDiagramData.cpp
|
||||
@ -134,13 +118,11 @@ set(SOURCE_GROUP_SOURCE_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigFault.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigNNCData.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/cvfGeometryTools.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigTernaryResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigEclipseNativeStatCalc.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigEclipseNativeVisibleCellsStatCalc.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigEclipseMultiPropertyStatCalc.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigWellLogCurveData.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigHexIntersectionTools.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigTimeHistoryResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigLasFileExporter.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigSimulationWellCoordsAndMD.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigFishbonesGeometry.cpp
|
||||
|
@ -0,0 +1,35 @@
|
||||
set(SOURCE_GROUP_HEADER_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultAccessorFactory.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigAllGridCellsResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigActiveCellsResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCellEdgeResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCombTransResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCombMultResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigTernaryResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigTimeHistoryResultAccessor.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigDepthResultAccessor.h
|
||||
)
|
||||
|
||||
set(SOURCE_GROUP_SOURCE_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigResultAccessorFactory.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigAllGridCellsResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigActiveCellsResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCellEdgeResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCombTransResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigCombMultResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigTernaryResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigTimeHistoryResultAccessor.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigDepthResultAccessor.cpp
|
||||
)
|
||||
|
||||
list(APPEND CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
|
||||
|
||||
list(APPEND CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
|
||||
|
||||
source_group(
|
||||
"ReservoirDataModel\\ResultAccessors"
|
||||
FILES ${SOURCE_GROUP_HEADER_FILES} ${SOURCE_GROUP_SOURCE_FILES}
|
||||
${CMAKE_CURRENT_LIST_DIR}/CMakeLists_files.cmake
|
||||
)
|
@ -0,0 +1,153 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2023 Equinor ASA
|
||||
//
|
||||
// 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 "RigDepthResultAccessor.h"
|
||||
|
||||
#include "RigCell.h"
|
||||
#include "RigEclipseCaseData.h"
|
||||
#include "RigGridBase.h"
|
||||
#include "RigResultAccessor.h"
|
||||
#include "RigResultAccessorFactory.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<double> RigDepthResultAccessor::resultValues( RigEclipseCaseData* eclipseCaseData,
|
||||
RimEclipseResultDefinition* resultDefinition,
|
||||
int gridIndex,
|
||||
size_t cellIndex,
|
||||
int currentTimeStep )
|
||||
{
|
||||
std::vector<double> values;
|
||||
|
||||
RigHugeValResultAccessor hugeVal;
|
||||
|
||||
if ( cellIndex != cvf::UNDEFINED_SIZE_T )
|
||||
{
|
||||
size_t i = 0;
|
||||
size_t j = 0;
|
||||
size_t dummy = 0;
|
||||
|
||||
auto kvals = kValues( eclipseCaseData, gridIndex );
|
||||
|
||||
auto grid = eclipseCaseData->grid( gridIndex );
|
||||
|
||||
if ( grid->ijkFromCellIndex( cellIndex, &i, &j, &dummy ) )
|
||||
{
|
||||
cvf::ref<RigResultAccessor> resultAccessor =
|
||||
RigResultAccessorFactory::createFromResultDefinition( eclipseCaseData, gridIndex, currentTimeStep, resultDefinition );
|
||||
|
||||
for ( auto k : kvals )
|
||||
{
|
||||
int tmpCellIdx = grid->cellIndexFromIJK( i, j, k );
|
||||
|
||||
if ( resultAccessor.notNull() )
|
||||
{
|
||||
values.push_back( resultAccessor->cellScalar( tmpCellIdx ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
values.push_back( hugeVal.cellScalar( tmpCellIdx ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return values;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<int> RigDepthResultAccessor::kValues( RigEclipseCaseData* eclipseCaseData, int gridIndex )
|
||||
{
|
||||
std::vector<int> kvals;
|
||||
int maxK = eclipseCaseData->grid( gridIndex )->cellCountK();
|
||||
|
||||
for ( int i = 0; i < maxK; i++ )
|
||||
{
|
||||
kvals.push_back( i );
|
||||
}
|
||||
|
||||
return kvals;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<double> RigDepthResultAccessor::depthValues( RigEclipseCaseData* eclipseCaseData, int startCellIndex, int gridIndex )
|
||||
{
|
||||
std::vector<double> depthVals;
|
||||
|
||||
auto grid = eclipseCaseData->grid( gridIndex );
|
||||
size_t i = 0;
|
||||
size_t j = 0;
|
||||
size_t dummy = 0;
|
||||
|
||||
if ( grid->ijkFromCellIndex( startCellIndex, &i, &j, &dummy ) )
|
||||
{
|
||||
int maxK = grid->cellCountK();
|
||||
|
||||
for ( int k = 0; k < maxK; k++ )
|
||||
{
|
||||
auto cellIdx = grid->cellIndexFromIJK( i, j, k );
|
||||
|
||||
auto& cell = grid->cell( cellIdx );
|
||||
if ( cell.isInvalid() )
|
||||
{
|
||||
depthVals.push_back( std::nan( "" ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
auto center = cell.center();
|
||||
depthVals.push_back( -1.0 * center.z() );
|
||||
}
|
||||
}
|
||||
}
|
||||
return depthVals;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RigDepthResultAccessor::geometrySelectionText( RigEclipseCaseData* eclipseCaseData, size_t gridIndex, size_t cellIndex )
|
||||
{
|
||||
QString text;
|
||||
|
||||
if ( eclipseCaseData )
|
||||
{
|
||||
if ( cellIndex != cvf::UNDEFINED_SIZE_T )
|
||||
{
|
||||
size_t i = 0;
|
||||
size_t j = 0;
|
||||
size_t k = 0;
|
||||
if ( eclipseCaseData->grid( gridIndex )->ijkFromCellIndex( cellIndex, &i, &j, &k ) )
|
||||
{
|
||||
// Adjust to 1-based Eclipse indexing
|
||||
i++;
|
||||
j++;
|
||||
|
||||
text += QString( "[%1, %2]" ).arg( i ).arg( j );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return text;
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2023 Equinor ASA
|
||||
//
|
||||
// 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 <QString>
|
||||
#include <vector>
|
||||
|
||||
class RigEclipseCaseData;
|
||||
class RimEclipseResultDefinition;
|
||||
|
||||
class RigDepthResultAccessor
|
||||
{
|
||||
public:
|
||||
static QString geometrySelectionText( RigEclipseCaseData* eclipseCaseData, size_t m_gridIndex, size_t m_cellIndex );
|
||||
static std::vector<double> resultValues( RigEclipseCaseData* eclipseCaseData,
|
||||
RimEclipseResultDefinition* resultDefinition,
|
||||
int gridIndex,
|
||||
size_t cellIndex,
|
||||
int currentTimeStep );
|
||||
|
||||
static std::vector<int> kValues( RigEclipseCaseData* eclipseCaseData, int gridIndex );
|
||||
static std::vector<double> depthValues( RigEclipseCaseData* eclipseCaseData, int startCellIndex, int gridIndex );
|
||||
};
|
@ -89,6 +89,7 @@ set(SOURCE_GROUP_HEADER_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuDockWidgetTools.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuQwtPlotItemGroup.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuQwtPlotTools.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuDepthQwtPlot.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuWellPathComponentPlotItem.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuMeasurementViewEventFilter.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuDraggableOverlayFrame.h
|
||||
@ -193,6 +194,7 @@ set(SOURCE_GROUP_SOURCE_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuDockWidgetTools.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuQwtPlotItemGroup.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuQwtPlotTools.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuDepthQwtPlot.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuWellPathComponentPlotItem.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuDraggableOverlayFrame.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuMdiMaximizeWindowGuard.cpp
|
||||
@ -258,6 +260,7 @@ list(
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuRelativePermeabilityPlotPanel.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuResultInfoPanel.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuResultQwtPlot.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuDepthQwtPlot.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuTextDialog.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuViewer.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiuProcessMonitor.h
|
||||
|
309
ApplicationLibCode/UserInterface/RiuDepthQwtPlot.cpp
Normal file
309
ApplicationLibCode/UserInterface/RiuDepthQwtPlot.cpp
Normal file
@ -0,0 +1,309 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2023 Equinor ASA
|
||||
//
|
||||
// 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 "RiuDepthQwtPlot.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaCurveDataTools.h"
|
||||
|
||||
#include "RimCase.h"
|
||||
#include "RimContextCommandBuilder.h"
|
||||
|
||||
#include "RiuQwtLinearScaleEngine.h"
|
||||
#include "RiuQwtPlotCurve.h"
|
||||
#include "RiuQwtPlotTools.h"
|
||||
#include "RiuQwtSymbol.h"
|
||||
#include "RiuTextDialog.h"
|
||||
|
||||
#include "cvfColor3.h"
|
||||
|
||||
#include "qwt_legend.h"
|
||||
#include "qwt_plot_curve.h"
|
||||
#include "qwt_plot_grid.h"
|
||||
#include "qwt_plot_layout.h"
|
||||
#include "qwt_scale_engine.h"
|
||||
|
||||
#include <QContextMenuEvent>
|
||||
#include <QMenu>
|
||||
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuDepthQwtPlot::RiuDepthQwtPlot( QWidget* parent )
|
||||
: RiuDockedQwtPlot( parent )
|
||||
, m_bShowDepth( true )
|
||||
{
|
||||
setAutoFillBackground( true );
|
||||
setDefaults();
|
||||
resetRanges();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuDepthQwtPlot::~RiuDepthQwtPlot()
|
||||
{
|
||||
deleteAllCurves();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuDepthQwtPlot::resetRanges()
|
||||
{
|
||||
m_minX = std::numeric_limits<double>::max();
|
||||
m_minY = std::numeric_limits<double>::max();
|
||||
m_maxX = std::numeric_limits<double>::lowest();
|
||||
m_maxY = std::numeric_limits<double>::lowest();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuDepthQwtPlot::addCurve( const RimCase* rimCase,
|
||||
const QString& curveName,
|
||||
const cvf::Color3f& curveColor,
|
||||
const std::vector<int>& kIndexes,
|
||||
const std::vector<double>& depthValues,
|
||||
const std::vector<double>& resultValues )
|
||||
{
|
||||
if ( kIndexes.empty() || resultValues.empty() || depthValues.empty() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
std::vector<double> kValues;
|
||||
|
||||
if ( m_bShowDepth )
|
||||
{
|
||||
kValues = depthValues;
|
||||
setAxisTitle( QwtAxis::YLeft, "Depth" );
|
||||
}
|
||||
else
|
||||
{
|
||||
for ( auto k : kIndexes )
|
||||
{
|
||||
kValues.push_back( 1.0 * k + 1.0 ); // adjust to eclipse index
|
||||
}
|
||||
setAxisTitle( QwtAxis::YLeft, "K" );
|
||||
}
|
||||
|
||||
double yMax = *std::max_element( kValues.begin(), kValues.end() );
|
||||
double yMin = *std::min_element( kValues.begin(), kValues.end() );
|
||||
m_maxY = std::max( yMax, m_maxY );
|
||||
m_minY = std::min( yMin, m_minY );
|
||||
|
||||
std::vector<double> tmpResultValues;
|
||||
|
||||
for ( auto val : resultValues )
|
||||
{
|
||||
if ( std::isinf( val ) )
|
||||
tmpResultValues.push_back( std::nan( "" ) );
|
||||
else
|
||||
{
|
||||
if ( val > m_maxX ) m_maxX = val;
|
||||
if ( val < m_minX ) m_minX = val;
|
||||
tmpResultValues.push_back( val );
|
||||
}
|
||||
}
|
||||
|
||||
RiuQwtPlotCurve* plotCurve = new RiuQwtPlotCurve( nullptr );
|
||||
|
||||
plotCurve->setSamplesFromXValuesAndYValues( tmpResultValues, kValues, false );
|
||||
plotCurve->setTitle( curveName );
|
||||
plotCurve->setAxes( QwtAxis::XTop, QwtAxis::YLeft );
|
||||
|
||||
auto color = QColor( curveColor.rByte(), curveColor.gByte(), curveColor.bByte() );
|
||||
|
||||
plotCurve->setPen( QPen( color ) );
|
||||
|
||||
RiuQwtSymbol* symbol = new RiuQwtSymbol( RiuPlotCurveSymbol::SYMBOL_XCROSS, "" );
|
||||
symbol->setSize( 6, 6 );
|
||||
symbol->setColor( color );
|
||||
plotCurve->setSymbol( symbol );
|
||||
|
||||
plotCurve->attach( this );
|
||||
m_plotCurves.push_back( plotCurve );
|
||||
|
||||
updateAxisScaling();
|
||||
|
||||
this->applyFontSizes( false );
|
||||
|
||||
this->replot();
|
||||
|
||||
int caseId = rimCase->caseId();
|
||||
|
||||
m_caseNames[caseId] = rimCase->caseUserDescription();
|
||||
m_curveNames[caseId].push_back( curveName );
|
||||
m_curveData[caseId].push_back( resultValues );
|
||||
m_kSteps[caseId] = kIndexes;
|
||||
m_depthValues[caseId] = depthValues;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuDepthQwtPlot::deleteAllCurves()
|
||||
{
|
||||
for ( size_t i = 0; i < m_plotCurves.size(); i++ )
|
||||
{
|
||||
m_plotCurves[i]->detach();
|
||||
delete m_plotCurves[i];
|
||||
}
|
||||
|
||||
m_plotCurves.clear();
|
||||
|
||||
m_caseNames.clear();
|
||||
m_curveNames.clear();
|
||||
m_curveData.clear();
|
||||
m_kSteps.clear();
|
||||
m_depthValues.clear();
|
||||
|
||||
resetRanges();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QSize RiuDepthQwtPlot::sizeHint() const
|
||||
{
|
||||
return QSize( 100, 100 );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QSize RiuDepthQwtPlot::minimumSizeHint() const
|
||||
{
|
||||
return QSize( 0, 0 );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuDepthQwtPlot::contextMenuEvent( QContextMenuEvent* event )
|
||||
{
|
||||
QMenu menu;
|
||||
|
||||
const int curveCount = this->itemList( QwtPlotItem::Rtti_PlotCurve ).count();
|
||||
|
||||
QAction* act = menu.addAction( "Show Plot Data", this, SLOT( slotCurrentPlotDataInTextDialog() ) );
|
||||
act->setEnabled( curveCount > 0 );
|
||||
|
||||
if ( !menu.actions().empty() )
|
||||
{
|
||||
menu.exec( event->globalPos() );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuDepthQwtPlot::setDefaults()
|
||||
{
|
||||
RiuQwtPlotTools::setCommonPlotBehaviour( this );
|
||||
|
||||
setAxesCount( QwtAxis::XTop, 1 );
|
||||
setAxesCount( QwtAxis::YLeft, 1 );
|
||||
|
||||
setAxisVisible( QwtAxis::XTop, true );
|
||||
setAxisVisible( QwtAxis::XBottom, false );
|
||||
|
||||
setAxisMaxMinor( QwtAxis::XTop, 2 );
|
||||
setAxisMaxMinor( QwtAxis::YLeft, 6 );
|
||||
|
||||
applyFontSizes( false );
|
||||
|
||||
QwtLegend* legend = new QwtLegend( this );
|
||||
insertLegend( legend, BottomLegend );
|
||||
|
||||
RiuQwtPlotTools::enableGridLines( this, QwtAxis::XBottom, false, false );
|
||||
RiuQwtPlotTools::enableGridLines( this, QwtAxis::XTop, true, true );
|
||||
RiuQwtPlotTools::enableGridLines( this, QwtAxis::YLeft, true, true );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDepthQwtPlot::asciiDataForUiSelectedCurves() const
|
||||
{
|
||||
QString out;
|
||||
|
||||
for ( std::pair<int, QString> caseIdAndName : m_caseNames )
|
||||
{
|
||||
int caseId = caseIdAndName.first;
|
||||
out += "Case: " + caseIdAndName.second;
|
||||
out += "\n";
|
||||
|
||||
for ( size_t i = 0; i < m_kSteps.at( caseId ).size(); i++ ) // time steps & data points
|
||||
{
|
||||
if ( i == 0 )
|
||||
{
|
||||
out += "K Index";
|
||||
out += "\tDepth";
|
||||
for ( QString curveName : m_curveNames.at( caseId ) )
|
||||
{
|
||||
out += "\t" + curveName;
|
||||
}
|
||||
}
|
||||
out += "\n";
|
||||
|
||||
QString kString = QString::number( m_kSteps.at( caseId )[i] );
|
||||
|
||||
out += kString;
|
||||
|
||||
QString depthString = QString::number( m_depthValues.at( caseId )[i], 'f', 2 );
|
||||
out += "\t" + depthString;
|
||||
|
||||
for ( size_t j = 0; j < m_curveData.at( caseId ).size(); j++ ) // curves
|
||||
{
|
||||
out += "\t" + QString::number( m_curveData.at( caseId )[j][i], 'g', 6 );
|
||||
}
|
||||
}
|
||||
out += "\n\n";
|
||||
}
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuDepthQwtPlot::slotCurrentPlotDataInTextDialog()
|
||||
{
|
||||
QString outTxt = asciiDataForUiSelectedCurves();
|
||||
|
||||
RiuTextDialog* textDialog = new RiuTextDialog( this );
|
||||
textDialog->setMinimumSize( 600, 600 );
|
||||
textDialog->setWindowTitle( "Depth Plot Data" );
|
||||
textDialog->setText( outTxt );
|
||||
textDialog->show();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuDepthQwtPlot::updateAxisScaling()
|
||||
{
|
||||
double valRangeX = m_maxX - m_minX;
|
||||
this->setAxisScale( QwtAxis::YLeft, m_maxY + 0.1, m_minY - 0.1 );
|
||||
this->setAxisScale( QwtAxis::XTop, m_minX - 0.02 * valRangeX, m_maxX + 0.1 * valRangeX );
|
||||
}
|
88
ApplicationLibCode/UserInterface/RiuDepthQwtPlot.h
Normal file
88
ApplicationLibCode/UserInterface/RiuDepthQwtPlot.h
Normal file
@ -0,0 +1,88 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2023 Equinor ASA
|
||||
//
|
||||
// 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 "RiuDockedQwtPlot.h"
|
||||
|
||||
#include <QString>
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
class RimCase;
|
||||
class QwtPlotCurve;
|
||||
class QwtPlotGrid;
|
||||
|
||||
namespace cvf
|
||||
{
|
||||
class Color3f;
|
||||
}
|
||||
|
||||
//==================================================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==================================================================================================
|
||||
class RiuDepthQwtPlot : public RiuDockedQwtPlot
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit RiuDepthQwtPlot( QWidget* parent = nullptr );
|
||||
~RiuDepthQwtPlot() override;
|
||||
|
||||
void addCurve( const RimCase* rimCase,
|
||||
const QString& curveName,
|
||||
const cvf::Color3f& curveColor,
|
||||
const std::vector<int>& kIndexes,
|
||||
const std::vector<double>& depthValues,
|
||||
const std::vector<double>& resultValues );
|
||||
|
||||
void deleteAllCurves();
|
||||
|
||||
protected:
|
||||
QSize sizeHint() const override;
|
||||
QSize minimumSizeHint() const override;
|
||||
void contextMenuEvent( QContextMenuEvent* ) override;
|
||||
|
||||
private:
|
||||
void setDefaults();
|
||||
void resetRanges();
|
||||
void updateAxisScaling();
|
||||
|
||||
QString asciiDataForUiSelectedCurves() const;
|
||||
|
||||
private slots:
|
||||
void slotCurrentPlotDataInTextDialog();
|
||||
|
||||
private:
|
||||
std::vector<QwtPlotCurve*> m_plotCurves;
|
||||
|
||||
std::map<int, QString> m_caseNames;
|
||||
std::map<int, std::vector<int>> m_kSteps;
|
||||
std::map<int, std::vector<double>> m_depthValues;
|
||||
std::map<int, std::vector<std::vector<double>>> m_curveData;
|
||||
std::map<int, std::vector<QString>> m_curveNames;
|
||||
|
||||
double m_maxY;
|
||||
double m_minY;
|
||||
double m_maxX;
|
||||
double m_minX;
|
||||
|
||||
bool m_bShowDepth;
|
||||
};
|
@ -91,6 +91,14 @@ QString RiuDockWidgetTools::mainWindowResultPlotName()
|
||||
return "dockResultPlot_mainWindow";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiuDockWidgetTools::mainWindowDepthPlotName()
|
||||
{
|
||||
return "dockDepthPlot_mainWindow";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -323,6 +331,8 @@ QIcon RiuDockWidgetTools::dockIcon( const QString dockWidgetName )
|
||||
return QIcon( ":/view.svg" );
|
||||
else if ( dockWidgetName == mainWindowResultPlotName() )
|
||||
return QIcon( ":/graph.svg" );
|
||||
else if ( dockWidgetName == mainWindowDepthPlotName() )
|
||||
return QIcon( ":/graph.svg" );
|
||||
else if ( dockWidgetName == mainWindowRelPermPlotName() )
|
||||
return QIcon( ":/graph.svg" );
|
||||
else if ( dockWidgetName == mainWindowPvtPlotName() )
|
||||
@ -377,34 +387,39 @@ QByteArray RiuDockWidgetTools::defaultEclipseDockState()
|
||||
// Set up the dock widgets the way you want it using the GUI inside ResInsight - then use "Export Layout to
|
||||
// Clipboard" from the Windows menu and paste the exported text into this file to update the default states.
|
||||
|
||||
// start paste
|
||||
|
||||
static const char stateData[] =
|
||||
{ '\x00', '\x00', '\x06', '\x13', '\x78', '\xda', '\x95', '\x54', '\xdf', '\x4f', '\xc2', '\x30', '\x10', '\x7e', '\xf7', '\xaf',
|
||||
'\x68', '\xf6', '\xae', '\x30', '\xc6', '\x94', '\x25', '\x80', '\x31', '\xa0', '\x89', '\x0f', '\x28', '\x3a', '\xd0', '\x47',
|
||||
'\x53', '\xbb', '\x13', '\xab', '\x5d', '\x4b', '\xae', '\x07', '\xfe', '\x88', '\x7f', '\xbc', '\x1d', '\x18', '\x12', '\xa0',
|
||||
'\xdb', '\xe4', '\x69', '\xdd', '\xdd', '\xf7', '\xf5', '\xfb', '\xae', '\xbd', '\x6b', '\xf7', '\xfc', '\x33', '\x57', '\x6c',
|
||||
'\x09', '\x68', '\xa5', '\xd1', '\xbd', '\x20', '\x3c', '\x69', '\x06', '\x0c', '\xb4', '\x30', '\x99', '\xd4', '\xb3', '\x5e',
|
||||
'\x30', '\x9d', '\x5c', '\x1d', '\x77', '\x82', '\xf3', '\x7e', '\xf7', '\x8e', '\x2e', '\xb2', '\x25', '\xd7', '\x02', '\xb2',
|
||||
'\xa1', '\x11', '\xef', '\x2e', '\x97', '\x7e', '\x59', '\x82', '\x9c', '\x3d', '\x6c', '\x88', '\x01', '\x9b', '\x5a', '\xc0',
|
||||
'\xcd', '\x7f', '\x2b', '\x60', '\x03', '\xa3', '\x89', '\x4b', '\xed', '\x22', '\xab', '\xf4', '\x00', '\x34', '\x21', '\x57',
|
||||
'\x8f', '\x32', '\x9b', '\x01', '\xf5', '\x82', '\xcc', '\xed', '\x13', '\x0d', '\x1f', '\xa5', '\xce', '\xcc', '\xc7', '\x53',
|
||||
'\xee', '\x70', '\xeb', '\x65', '\xd0', '\xef', '\x6e', '\x78', '\xec', '\x4a', '\x19', '\x4e', '\x2b', '\x23', '\x4d', '\x17',
|
||||
'\x4f', '\xe7', '\x4a', '\x12', '\xb9', '\xf0', '\x2d', '\x4a', '\xb7', '\x97', '\xcb', '\x14', '\x42', '\x3f', '\x85', '\xd0',
|
||||
'\x42', '\x53', '\x21', '\x59', '\x86', '\x39', '\xde', '\xc2', '\x5c', '\x20', '\x70', '\x36', '\xe1', '\xcf', '\xce', '\x56',
|
||||
'\xe4', '\x12', '\x0b', '\x44', '\xd0', '\x7f', '\x86', '\xc6', '\x68', '\xde', '\x40', '\xd0', '\x04', '\x01', '\xb6', '\x3d',
|
||||
'\xad', '\x5d', '\xb3', '\x1b', '\x9e', '\x43', '\x25', '\x92', '\x0d', '\x94', '\xb1', '\x90', '\x15', '\x86', '\x1b', '\x1e',
|
||||
'\xd6', '\x90', '\x13', '\x4f', '\xcd', '\x02', '\x05', '\x1c', '\x48', '\x4c', '\x05', '\xca', '\x39', '\xd9', '\x6a', '\x56',
|
||||
'\xa3', '\xa8', '\x6c', '\xab', '\xbe', '\x70', '\xbf', '\xbe', '\x39', '\x20', '\x7d', '\x5d', '\x66', '\x92', '\x0c', '\xd6',
|
||||
'\x97', '\x58', '\x02', '\xf6', '\xca', '\xa6', '\xf2', '\x1b', '\x6c', '\xff', '\xac', '\xd3', '\x62', '\xed', '\xd3', '\x0e',
|
||||
'\xeb', '\x36', '\xd6', '\xff', '\xee', '\xfb', '\x77', '\x25', '\x07', '\x5f', '\xce', '\xae', '\x79', '\x5f', '\xb7', '\xb8',
|
||||
'\x16', '\xe1', '\xb3', '\x15', '\xd6', '\x53', '\x80', '\x97', '\xe0', '\xb5', '\x5e', '\xd3', '\x59', '\x51', '\xb5', '\xb1',
|
||||
'\x7b', '\xb0', '\x0b', '\x45', '\xd7', '\xfa', '\xc5', '\xd4', '\x9c', '\xa8', '\x1f', '\x58', '\x77', '\x89', '\x6d', '\xaf',
|
||||
'\xdc', '\x58', '\x19', '\xfa', '\x97', '\xdc', '\x2e', '\xb0', '\xa6', '\xd3', '\x46', '\xe6', '\x15', '\xed', '\x40', '\xa2',
|
||||
'\x50', '\x50', '\xca', '\x0c', '\xbd', '\xcc', '\x7b', '\x50', '\x63', '\xc0', '\xfc', '\x40', '\xbd', '\xf1', '\xb2', '\xc6',
|
||||
'\xe1', '\xfe', '\x81', '\xec', '\x4e', '\xed', '\x08', '\xac', '\xe5', '\x33', '\xb0', '\x35', '\xc7', '\xe1', '\x83', '\xd5',
|
||||
'\x99', '\x43', '\x23', '\x1c', '\x6b', '\x64', '\x74', '\xf5', '\x08', '\xec', '\x11', '\xa7', '\x0e', '\x94', '\x12', '\x17',
|
||||
'\xef', '\xff', '\x1c', '\x9b', '\x28', '\x89', '\x59', '\xd8', '\x4a', '\x9a', '\xac', '\x1d', '\x97', '\xcc', '\xce', '\x2a',
|
||||
'\xd2', '\x49', '\x4e', '\x59', '\x14', '\xb7', '\x2b', '\x10', '\x51', '\x92', '\xb0', '\x56', '\x18', '\xc7', '\x5e', '\x48',
|
||||
'\x63', '\xf3', '\xb4', '\xba', '\x75', '\xc9', '\x93', '\xde', '\x3f', '\xfa', '\x05', '\x48', '\x0b', '\x16', '\x15' };
|
||||
{ '\x00', '\x00', '\x06', '\x92', '\x78', '\xda', '\xb5', '\x55', '\x5d', '\x4f', '\xc2', '\x30', '\x14', '\x7d', '\xf7', '\x57',
|
||||
'\x34', '\x7b', '\x47', '\x18', '\x83', '\x30', '\x13', '\xc0', '\x18', '\x90', '\xc4', '\x07', '\x14', '\x1d', '\xca', '\xa3',
|
||||
'\xa9', '\xdb', '\x15', '\xab', '\x5d', '\x4b', '\x6e', '\x2f', '\x28', '\xc6', '\x1f', '\x6f', '\xc7', '\xcc', '\x12', '\xb0',
|
||||
'\x50', '\x79', '\xf0', '\x69', '\xed', '\xed', '\x39', '\x3d', '\xe7', '\x7e', '\x6c', '\xeb', '\x9e', '\x7f', '\xe4', '\x92',
|
||||
'\xad', '\x00', '\x8d', '\xd0', '\xaa', '\x17', '\x84', '\xa7', '\x8d', '\x80', '\x81', '\x4a', '\x75', '\x26', '\xd4', '\xbc',
|
||||
'\x17', '\xdc', '\x4f', '\x47', '\xb5', '\x38', '\x38', '\xef', '\x77', '\x6f', '\xe9', '\x22', '\x5b', '\x71', '\x95', '\x42',
|
||||
'\x36', '\xd4', '\xe9', '\x9b', '\x3d', '\x4b', '\xd6', '\x86', '\x20', '\x67', '\x0f', '\x15', '\x31', '\x60', '\xf7', '\x06',
|
||||
'\xb0', '\xda', '\x47', '\x01', '\x1b', '\x68', '\x45', '\x5c', '\x28', '\x1b', '\xd9', '\x1c', '\x0f', '\x40', '\x11', '\x72',
|
||||
'\x39', '\x13', '\xd9', '\x1c', '\xa8', '\x17', '\x64', '\xf6', '\x9e', '\x68', '\x38', '\x13', '\x2a', '\xd3', '\xef', '\x8f',
|
||||
'\xb9', '\xc5', '\x95', '\xcb', '\xa0', '\xdf', '\xad', '\x78', '\x6c', '\x24', '\x35', '\xa7', '\x8d', '\x91', '\x86', '\x8d',
|
||||
'\x27', '\x0b', '\x29', '\x88', '\x6c', '\xf8', '\x06', '\x85', '\xbd', '\xcb', '\x9e', '\x14', '\x42', '\x5f', '\x85', '\xd0',
|
||||
'\x52', '\x51', '\x21', '\xb9', '\x0f', '\x53', '\xab', '\x30', '\x4d', '\x8b', '\xb9', '\x40', '\xe0', '\x6c', '\xca', '\x9f',
|
||||
'\x4c', '\xe9', '\x72', '\x89', '\x08', '\xea', '\xc7', '\xd0', '\x04', '\xf5', '\x2b', '\xa4', '\x34', '\x45', '\x80', '\x6d',
|
||||
'\x4f', '\xa5', '\x6b', '\x76', '\xcd', '\x73', '\x38', '\x88', '\x64', '\x03', '\xa9', '\x0d', '\x64', '\x85', '\xe1', '\xba',
|
||||
'\x83', '\x35', '\xe4', '\xc4', '\x13', '\xbd', '\xc4', '\x14', '\x8e', '\x24', '\x26', '\x29', '\x8a', '\x05', '\x99', '\xc3',
|
||||
'\xac', '\x7a', '\x91', '\xd9', '\x56', '\x7e', '\xe1', '\xef', '\xfc', '\x16', '\x80', '\xb4', '\xbe', '\xcc', '\x04', '\x69',
|
||||
'\xf4', '\xa7', '\xb8', '\x07', '\xec', '\x94', '\x4d', '\xc4', '\x27', '\x98', '\x7e', '\xa7', '\x73', '\xc6', '\xda', '\x51',
|
||||
'\xc8', '\xba', '\xf5', '\x72', '\x6f', '\x9f', '\x3f', '\x2d', '\x39', '\xba', '\x39', '\xbb', '\xe6', '\x5d', '\xd3', '\x62',
|
||||
'\x47', '\x84', '\xcf', '\x37', '\x58', '\x47', '\x02', '\x4e', '\x82', '\xd3', '\xba', '\x67', '\xb2', '\x3c', '\xc6', '\xee',
|
||||
'\xc0', '\x2c', '\x25', '\x5d', '\xa9', '\x67', '\xed', '\xa9', '\xa8', '\x1b', '\xe8', '\x6b', '\x62', '\xcb', '\x29', '\x37',
|
||||
'\x91', '\x9a', '\xfe', '\x24', '\xb7', '\x0b', '\xf4', '\x4c', '\xda', '\x58', '\xbf', '\xa0', '\x19', '\x08', '\x4c', '\x25',
|
||||
'\xec', '\x65', '\x86', '\x4e', '\xe6', '\x1d', '\xc8', '\x09', '\x60', '\x7e', '\xa4', '\xde', '\x64', '\xe5', '\x71', '\xb8',
|
||||
'\x35', '\x5e', '\xad', '\xf0', '\x8c', '\x85', '\xcd', '\x38', '\x72', '\xcf', '\xd7', '\x26', '\x12', '\xc7', '\x6d', '\xd6',
|
||||
'\x6a', '\xb6', '\xff', '\x63', '\x02', '\x87', '\xb0', '\xa0', '\x97', '\x3f', '\x14', '\xde', '\x89', '\xf3', '\xb5', '\xb9',
|
||||
'\xb9', '\x23', '\x36', '\x06', '\x63', '\xf8', '\x1c', '\x8c', '\x47', '\xcb', '\x05', '\xf3', '\x95', '\x1c', '\x75', '\x6a',
|
||||
'\x59', '\x63', '\xad', '\x8e', '\x78', '\xb1', '\x0f', '\x96', '\xb5', '\xec', '\x4d', '\x14', '\xb1', '\xb0', '\xd3', '\x88',
|
||||
'\x59', '\xab', '\xd1', '\x71', '\xc2', '\xea', '\xd5', '\x97', '\xdd', '\xae', '\xf7', '\xfc', '\x51', '\xfa', '\x27', '\xdf',
|
||||
'\x7c', '\xb5', '\x40', '\x74' };
|
||||
|
||||
// end paste
|
||||
|
||||
QByteArray retVal( stateData, sizeof( stateData ) );
|
||||
|
||||
@ -416,34 +431,39 @@ QByteArray RiuDockWidgetTools::defaultEclipseDockState()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QByteArray RiuDockWidgetTools::defaultGeoMechDockState()
|
||||
{
|
||||
// start paste
|
||||
|
||||
static const char stateData[] =
|
||||
{ '\x00', '\x00', '\x06', '\x13', '\x78', '\xda', '\x95', '\x54', '\xdf', '\x4f', '\xc2', '\x30', '\x10', '\x7e', '\xf7', '\xaf',
|
||||
'\x68', '\xf6', '\x8e', '\xb0', '\x8d', '\x29', '\x4b', '\xf8', '\x11', '\x03', '\x9a', '\xf8', '\x80', '\xa2', '\x03', '\x79',
|
||||
'\x34', '\xb5', '\x3b', '\xb1', '\xda', '\xb5', '\xa4', '\x3d', '\xf0', '\x47', '\xfc', '\xe3', '\xed', '\x86', '\x21', '\x01',
|
||||
'\xba', '\x0d', '\x9e', '\xda', '\xde', '\x7d', '\x5f', '\xef', '\xbb', '\xeb', '\x5d', '\xbb', '\x83', '\xaf', '\x4c', '\x90',
|
||||
'\x35', '\x68', '\xc3', '\x95', '\xec', '\x79', '\xfe', '\x79', '\xcb', '\x23', '\x20', '\x99', '\x4a', '\xb9', '\x5c', '\xf4',
|
||||
'\xbc', '\xd9', '\xf4', '\xa6', '\xd1', '\xf1', '\x06', '\xfd', '\xee', '\x03', '\x5e', '\xa5', '\x6b', '\x2a', '\x19', '\xa4',
|
||||
'\x23', '\xc5', '\x3e', '\xac', '\x2f', '\xf9', '\x36', '\x08', '\x19', '\x79', '\xda', '\x12', '\x3d', '\x32', '\x33', '\xa0',
|
||||
'\xb7', '\xe7', '\xc0', '\x23', '\x43', '\x25', '\x91', '\x72', '\x69', '\x2d', '\x85', '\x7b', '\x08', '\x12', '\x35', '\x15',
|
||||
'\x73', '\x9e', '\x2e', '\x00', '\x7b', '\x5e', '\x6a', '\xef', '\x09', '\x47', '\x73', '\x2e', '\x53', '\xf5', '\xf9', '\x9c',
|
||||
'\x59', '\xdc', '\x66', '\xeb', '\xf5', '\xbb', '\x5b', '\x1e', '\xb9', '\x11', '\x8a', '\x62', '\x21', '\xa4', '\x65', '\xed',
|
||||
'\xc9', '\x52', '\x70', '\x44', '\x6b', '\xbe', '\xd7', '\xdc', '\xde', '\x65', '\x3d', '\x79', '\xa0', '\xdf', '\x3c', '\xd0',
|
||||
'\x4a', '\x62', '\x1e', '\xb2', '\x0c', '\xd3', '\xd8', '\xc1', '\x5c', '\x69', '\xa0', '\x64', '\x4a', '\x5f', '\xac', '\xac',
|
||||
'\xd0', '\x3a', '\x56', '\x5a', '\x83', '\xfc', '\x17', '\x34', '\xd1', '\xea', '\x1d', '\x18', '\x4e', '\x35', '\xc0', '\xae',
|
||||
'\xa6', '\x8d', '\x6a', '\x72', '\x47', '\x33', '\xa8', '\x44', '\x92', '\xa1', '\x50', '\x06', '\xd2', '\x5c', '\x70', '\xd3',
|
||||
'\xc1', '\x1a', '\x51', '\xa4', '\x89', '\x5a', '\x69', '\x06', '\x27', '\x12', '\x13', '\xa6', '\xf9', '\x12', '\x4d', '\x35',
|
||||
'\xab', '\x99', '\x67', '\xb6', '\x93', '\x9f', '\x7f', '\x98', '\xdf', '\x12', '\x34', '\x7e', '\x5f', '\xa7', '\x1c', '\x95',
|
||||
'\xae', '\x4f', '\xb1', '\x04', '\xec', '\x0c', '\x9b', '\xf0', '\x1f', '\x30', '\xfd', '\xcb', '\x4e', '\x40', '\xda', '\x17',
|
||||
'\x1d', '\xd2', '\x6d', '\x6e', '\xce', '\x76', '\xfd', '\x7f', '\x92', '\x93', '\x1f', '\x67', '\x5f', '\xbc', '\xab', '\x5b',
|
||||
'\x6c', '\x8b', '\xd0', '\x45', '\x81', '\x75', '\x24', '\xe0', '\x24', '\x38', '\xa5', '\xd7', '\x74', '\x56', '\x58', '\x2d',
|
||||
'\xec', '\x11', '\xcc', '\x4a', '\xe0', '\xad', '\x7c', '\x55', '\x35', '\x15', '\x75', '\x03', '\xeb', '\x1e', '\xb1', '\xed',
|
||||
'\x0c', '\x37', '\x11', '\x0a', '\x8f', '\x0a', '\xb7', '\x0f', '\xac', '\xe9', '\xb4', '\xb1', '\x7a', '\xd3', '\x66', '\xc8',
|
||||
'\x35', '\x13', '\x70', '\x22', '\xf3', '\x11', '\xc4', '\x04', '\x74', '\x56', '\xca', '\xf2', '\x9d', '\xac', '\xc9', '\x1a',
|
||||
'\xab', '\x19', '\x87', '\x05', '\xd9', '\x9f', '\xda', '\x31', '\x18', '\x43', '\x17', '\x60', '\x6a', '\xca', '\xe1', '\x82',
|
||||
'\xd5', '\xa4', '\x64', '\x47', '\x80', '\x59', '\xd6', '\x58', '\xc9', '\xea', '\x11', '\x38', '\x20', '\xce', '\x2c', '\x28',
|
||||
'\x41', '\xca', '\x3e', '\x8e', '\x1c', '\x9b', '\x30', '\x8e', '\x88', '\x1f', '\xc4', '\x2d', '\xd2', '\x8e', '\x4a', '\x66',
|
||||
'\xa7', '\xb0', '\x74', '\xe2', '\x0b', '\x12', '\x46', '\xed', '\x0a', '\x44', '\x18', '\xc7', '\x24', '\xf0', '\xa3', '\xc8',
|
||||
'\x09', '\x69', '\x6e', '\xbf', '\x56', '\xbb', '\x2f', '\xf9', '\xd2', '\xfb', '\x67', '\x7f', '\x49', '\x4b', '\x16', '\x16' };
|
||||
{ '\x00', '\x00', '\x06', '\x4e', '\x78', '\xda', '\x95', '\x55', '\x5d', '\x4f', '\xc2', '\x30', '\x14', '\x7d', '\xf7', '\x57',
|
||||
'\x34', '\x7b', '\x47', '\x36', '\x36', '\x44', '\x12', '\x3e', '\x42', '\x40', '\x12', '\x1f', '\x50', '\x64', '\x20', '\x8f',
|
||||
'\xa6', '\x6e', '\x57', '\xa8', '\x76', '\x2d', '\x69', '\x2f', '\x28', '\xc6', '\x1f', '\x6f', '\xc7', '\xc8', '\x12', '\xa0',
|
||||
'\x6c', '\xf0', '\xb4', '\xee', '\xf6', '\x9c', '\x9e', '\x73', '\x3f', '\xba', '\xb5', '\xba', '\x3f', '\x09', '\x27', '\x1b',
|
||||
'\x50', '\x9a', '\x49', '\xd1', '\x76', '\xbc', '\x5b', '\xd7', '\x21', '\x20', '\x22', '\x19', '\x33', '\xb1', '\x68', '\x3b',
|
||||
'\xb3', '\xe9', '\xb0', '\x72', '\xef', '\x74', '\x3b', '\xad', '\x17', '\xec', '\xc5', '\x1b', '\x2a', '\x22', '\x88', '\x07',
|
||||
'\x32', '\xfa', '\x32', '\x7b', '\xe1', '\x56', '\x23', '\x24', '\xe4', '\x35', '\x27', '\x3a', '\x64', '\xa6', '\x41', '\xe5',
|
||||
'\xef', '\xbe', '\x43', '\xfa', '\x52', '\x20', '\x65', '\xc2', '\x44', '\x76', '\xdb', '\x7d', '\x10', '\xa8', '\x28', '\x9f',
|
||||
'\xb3', '\x78', '\x01', '\xd8', '\x76', '\x62', '\x73', '\x8e', '\x3f', '\x98', '\x33', '\x11', '\xcb', '\xef', '\xb7', '\xc4',
|
||||
'\xe0', '\xb2', '\xa5', '\xd3', '\x69', '\xe5', '\x3c', '\x32', '\xe4', '\x92', '\xe2', '\xce', '\x88', '\x6b', '\xe2', '\xe1',
|
||||
'\x8a', '\x33', '\x44', '\x13', '\x7e', '\x56', '\xcc', '\x9c', '\x65', '\x76', '\x52', '\xa1', '\xbf', '\x54', '\x68', '\x2d',
|
||||
'\x30', '\x95', '\x3c', '\x87', '\xa9', '\xe4', '\x98', '\x9a', '\xc1', '\xf4', '\x14', '\x50', '\x32', '\xa5', '\xef', '\x3a',
|
||||
'\x73', '\xb9', '\x56', '\x0a', '\xc4', '\xde', '\xd0', '\x58', '\xc9', '\x4f', '\x88', '\x70', '\xaa', '\x00', '\x0e', '\x3d',
|
||||
'\x65', '\xae', '\xc9', '\x13', '\x4d', '\xa0', '\x10', '\x49', '\xfa', '\x5c', '\x6a', '\x88', '\x53', '\xc3', '\x55', '\x0b',
|
||||
'\x6b', '\x40', '\x91', '\x86', '\x72', '\xad', '\x22', '\xb8', '\x92', '\x18', '\x46', '\x8a', '\xad', '\x50', '\x17', '\xb3',
|
||||
'\xaa', '\x69', '\x66', '\x07', '\xf9', '\x79', '\xa7', '\xf9', '\xad', '\x40', '\xe1', '\xf6', '\x21', '\x66', '\x28', '\x55',
|
||||
'\x79', '\x8a', '\x67', '\xc0', '\x56', '\xd9', '\x90', '\xfd', '\x82', '\xee', '\x34', '\x1a', '\x4d', '\x52', '\xf7', '\x3d',
|
||||
'\xd2', '\xaa', '\x66', '\xef', '\xe6', '\xb9', '\x6f', '\xc9', '\xd5', '\xcd', '\x39', '\x36', '\x6f', '\x9b', '\x16', '\x33',
|
||||
'\x22', '\x74', '\xb1', '\xc3', '\x5a', '\x12', '\xb0', '\x12', '\xac', '\xd6', '\x2f', '\x98', '\xac', '\x02', '\x63', '\x13',
|
||||
'\xd0', '\x6b', '\x8e', '\x8f', '\xe2', '\x43', '\x96', '\x54', '\xd4', '\x0e', '\x2c', '\x6b', '\x62', '\x60', '\x95', '\x1b',
|
||||
'\x73', '\x89', '\x17', '\xc9', '\x1d', '\x03', '\x4b', '\x26', '\x6d', '\x24', '\x97', '\x4a', '\xf7', '\x99', '\x8a', '\x38',
|
||||
'\x5c', '\xc9', '\x9c', '\x00', '\x1f', '\x83', '\x4a', '\xce', '\xb2', '\x3c', '\x2b', '\x6b', '\xbc', '\xc1', '\x62', '\xc6',
|
||||
'\x69', '\x41', '\x6a', '\x47', '\x05', '\x19', '\x81', '\xd6', '\x74', '\x01', '\xba', '\xa4', '\x1c', '\x36', '\x58', '\x49',
|
||||
'\x4a', '\xe6', '\x0a', '\x44', '\x86', '\x35', '\x92', '\xe2', '\x8a', '\x2b', '\x50', '\xaf', '\x79', '\xc4', '\xf3', '\xea',
|
||||
'\x2e', '\x09', '\xfc', '\x7b', '\xfb', '\x3d', '\xd8', '\x45', '\x9a', '\x6e', '\x40', '\x02', '\xf7', '\xce', '\x8a', '\x28',
|
||||
'\x18', '\xb6', '\x01', '\xac', '\x70', '\x79', '\x41', '\xf3', '\xad', '\x38', '\x6b', '\x65', '\x33', '\xf9', '\xc0', '\xf7',
|
||||
'\x49', '\xcd', '\x33', '\xd6', '\x5d', '\xab', '\xa3', '\x6a', '\xfe', '\x55', '\x36', '\xeb', '\x33', '\x7f', '\x83', '\xce',
|
||||
'\xcd', '\x3f', '\x00', '\xe7', '\x29', '\xe5' };
|
||||
|
||||
// end paste
|
||||
|
||||
QByteArray retVal( stateData, sizeof( stateData ) );
|
||||
|
||||
@ -455,32 +475,35 @@ QByteArray RiuDockWidgetTools::defaultGeoMechDockState()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QByteArray RiuDockWidgetTools::defaultPlotDockState()
|
||||
{
|
||||
// start paste
|
||||
|
||||
static const char stateData[] =
|
||||
{ '\x00', '\x00', '\x04', '\xf5', '\x78', '\xda', '\x9d', '\x54', '\x51', '\x6f', '\x82', '\x30', '\x10', '\x7e', '\xdf', '\xaf',
|
||||
'\x68', '\xfa', '\xee', '\x04', '\x99', '\x13', '\x13', '\xd4', '\x18', '\x9c', '\x6f', '\x6e', '\x2e', '\xe8', '\x7c', '\x34',
|
||||
'\x1d', '\x5c', '\x48', '\x23', '\xb4', '\xa4', '\x2d', '\x6e', '\x2e', '\xfb', '\xf1', '\x3b', '\x70', '\x61', '\x9b', '\x01',
|
||||
'\xc5', '\x3d', '\xb5', '\xbd', '\xfb', '\xbe', '\xbb', '\xef', '\x72', '\x5f', '\xea', '\x4d', '\xde', '\xd3', '\x84', '\xec',
|
||||
'\x41', '\x69', '\x2e', '\xc5', '\x88', '\xda', '\xb7', '\x16', '\x25', '\x20', '\x42', '\x19', '\x71', '\x11', '\x8f', '\xe8',
|
||||
'\x7a', '\x35', '\xef', '\xb8', '\x74', '\x32', '\xf6', '\x9e', '\xcd', '\x34', '\xda', '\x33', '\x11', '\x42', '\x34', '\x93',
|
||||
'\xe1', '\x0e', '\x73', '\xc1', '\x41', '\x1b', '\x48', '\xc9', '\x4b', '\x45', '\xa4', '\x64', '\xad', '\x41', '\x55', '\xef',
|
||||
'\x1e', '\x25', '\xbe', '\x14', '\x86', '\x71', '\x81', '\x91', '\x32', '\xed', '\x83', '\x30', '\x8a', '\x25', '\x1b', '\x1e',
|
||||
'\xc5', '\x60', '\x46', '\x34', '\xc2', '\x3a', '\xcb', '\x44', '\x9a', '\x0d', '\x17', '\x91', '\x7c', '\xdb', '\xa6', '\x88',
|
||||
'\xfc', '\x79', '\xd2', '\xb1', '\x57', '\xb1', '\xc9', '\x3c', '\x91', '\xcc', '\x94', '\x72', '\x2c', '\x8c', '\x07', '\x59',
|
||||
'\xc2', '\x8d', '\xc1', '\xf0', '\x93', '\xe2', '\x58', '\x11', '\x33', '\x45', '\xbb', '\xcf', '\xa2', '\x5d', '\x2e', '\xb0',
|
||||
'\xae', '\xd3', '\x88', '\xe9', '\x54', '\x98', '\x1e', '\x62', '\xa6', '\x0a', '\x18', '\x59', '\xb1', '\x57', '\x5d', '\x50',
|
||||
'\x88', '\x9f', '\x2b', '\x05', '\xe2', '\x97', '\x2c', '\xbd', '\x52', '\x00', '\xdb', '\x0c', '\x6f', '\x0b', '\x54', '\x51',
|
||||
'\xa9', '\x3a', '\xaa', '\x27', '\x8f', '\x2c', '\x85', '\x0b', '\x58', '\xe2', '\x27', '\x52', '\x43', '\x54', '\x88', '\xee',
|
||||
'\xd6', '\xf0', '\x56', '\x90', '\x66', '\x09', '\x33', '\xf0', '\x1f', '\x6e', '\x10', '\x2a', '\x9e', '\xb5', '\xe9', '\xda',
|
||||
'\x2d', '\x86', '\xfc', '\x33', '\xaa', '\x7d', '\x3a', '\xaa', '\x92', '\x19', '\x28', '\x73', '\x78', '\x88', '\xb8', '\x91',
|
||||
'\xaa', '\xcd', '\xbc', '\x67', '\x09', '\xb5', '\xed', '\x03', '\xfe', '\x01', '\x7a', '\xec', '\xda', '\x43', '\x72', '\xd7',
|
||||
'\x77', '\x89', '\xd7', '\x3d', '\xbe', '\xf1', '\xfc', '\xde', '\xd2', '\x79', '\x81', '\x8d', '\x16', '\x41', '\x5f', '\xb0',
|
||||
'\xb8', '\x64', '\x34', '\xac', '\xa5', '\x81', '\x56', '\x2b', '\xf1', '\x3a', '\xc3', '\xf4', '\x4e', '\x44', '\xce', '\x98',
|
||||
'\x61', '\x81', '\xcc', '\x55', '\x08', '\x2d', '\x5d', '\x73', '\x9e', '\x70', '\x69', '\xfd', '\x79', '\x9a', '\x32', '\x75',
|
||||
'\x58', '\x96', '\x24', '\xc1', '\x62', '\x50', '\x17', '\xd7', '\x7e', '\x2a', '\x78', '\x01', '\x5a', '\x23', '\x51', '\xb7',
|
||||
'\x90', '\xda', '\x04', '\xbd', '\x20', '\x72', '\x8d', '\xa0', '\xc0', '\xb0', '\x70', '\x77', '\x8d', '\x45', '\x86', '\x16',
|
||||
'\x71', '\xdc', '\x41', '\xad', '\x45', '\x8e', '\x11', '\xc7', '\xe9', '\x13', '\x7b', '\x70', '\x6f', '\xa1', '\x93', '\x9c',
|
||||
'\x5a', '\x58', '\xb7', '\xfa', '\x36', '\xf0', '\xde', '\xf0', '\x69', '\x8d', '\x6f', '\xbe', '\x00', '\x0a', '\x89', '\xb7',
|
||||
'\xa8' };
|
||||
{ '\x00', '\x00', '\x04', '\xbd', '\x78', '\xda', '\x9d', '\x54', '\x51', '\x6f', '\x82', '\x30', '\x10', '\x7e', '\xdf', '\xaf',
|
||||
'\x68', '\xfa', '\xee', '\x50', '\xc1', '\x89', '\x09', '\x62', '\x8c', '\xce', '\x37', '\x37', '\x17', '\x70', '\x3e', '\x9a',
|
||||
'\x8e', '\x5e', '\x48', '\x33', '\x68', '\x49', '\x5b', '\xdd', '\x5c', '\xf6', '\xe3', '\x57', '\x60', '\x61', '\x9b', '\x01',
|
||||
'\xc4', '\x3d', '\xd1', '\xbb', '\xfb', '\xbe', '\xde', '\x77', '\xf9', '\xae', '\x78', '\xb3', '\xf7', '\x34', '\x41', '\x47',
|
||||
'\x90', '\x8a', '\x09', '\x3e', '\xc5', '\x83', '\xdb', '\x3e', '\x46', '\xc0', '\x23', '\x41', '\x19', '\x8f', '\xa7', '\x78',
|
||||
'\x1b', '\xae', '\x7a', '\x2e', '\x9e', '\xf9', '\xde', '\x93', '\x9e', '\xd3', '\x23', '\xe1', '\x11', '\xd0', '\xa5', '\x88',
|
||||
'\x5e', '\x4d', '\x2d', '\x38', '\x29', '\x0d', '\x29', '\x7a', '\xae', '\x88', '\x18', '\x6d', '\x15', '\xc8', '\x2a', '\xb6',
|
||||
'\x31', '\x5a', '\x08', '\xae', '\x09', '\xe3', '\x26', '\x53', '\x94', '\x17', '\xc0', '\xb5', '\x24', '\xc9', '\x8e', '\xd1',
|
||||
'\x18', '\xf4', '\x14', '\x53', '\x73', '\xcf', '\x26', '\x11', '\x7a', '\xc7', '\x38', '\x15', '\x6f', '\xfb', '\xd4', '\x20',
|
||||
'\x7f', '\x42', '\xec', '\x7b', '\x15', '\x1b', '\xad', '\x12', '\x41', '\x74', '\x21', '\xa7', '\x6f', '\xf2', '\x41', '\x96',
|
||||
'\x30', '\xad', '\x4d', '\xfa', '\x51', '\x32', '\x73', '\xa3', '\xa9', '\xe4', '\xed', '\x3e', '\xf3', '\x76', '\x07', '\xae',
|
||||
'\xf3', '\xc6', '\x4d', '\x98', '\x5e', '\x85', '\x19', '\x1a', '\xcc', '\x5c', '\x02', '\x41', '\x21', '\x79', '\x51', '\xa5',
|
||||
'\xd6', '\x83', '\x94', '\xc0', '\x7f', '\xc9', '\x52', '\xa1', '\x04', '\xd8', '\x67', '\xe6', '\xb4', '\x36', '\x2a', '\x2a',
|
||||
'\x55', '\xa5', '\x7a', '\xf4', '\x40', '\x52', '\xb8', '\x80', '\x45', '\x8b', '\x44', '\x28', '\xa0', '\xb9', '\x68', '\xab',
|
||||
'\x86', '\x17', '\x42', '\x9a', '\x25', '\x44', '\xc3', '\x7f', '\xb8', '\x41', '\x24', '\x59', '\xd6', '\xa5', '\xab', '\x95',
|
||||
'\x0f', '\xf9', '\x67', '\xd4', '\xc1', '\xf9', '\xa8', '\x52', '\x64', '\x20', '\xf5', '\xe9', '\x9e', '\x32', '\x2d', '\x64',
|
||||
'\x97', '\x79', '\x5b', '\x09', '\xb5', '\xed', '\x03', '\xf6', '\x01', '\xca', '\x1f', '\x4f', '\x5c', '\xe4', '\x8c', '\x27',
|
||||
'\xc8', '\xb3', '\xca', '\xd8', '\x7c', '\xbf', '\x5d', '\x6a', '\x17', '\xd8', '\xb8', '\x22', '\x66', '\x2f', '\x48', '\x5c',
|
||||
'\x30', '\x1a', '\x6c', '\x69', '\xa0', '\xd5', '\x4a', '\xbc', '\x6e', '\x61', '\x86', '\x67', '\x22', '\x97', '\x44', '\x93',
|
||||
'\x40', '\x1c', '\x64', '\x04', '\x1d', '\xb7', '\xa6', '\x9d', '\x70', '\xc9', '\xfe', '\x43', '\x9a', '\x12', '\x79', '\xda',
|
||||
'\x14', '\x24', '\x4e', '\x62', '\x90', '\x57', '\xdb', '\xbe', '\x06', '\xa5', '\x0c', '\x51', '\x75', '\x90', '\xda', '\x04',
|
||||
'\x6d', '\xb1', '\xda', '\x9d', '\xd8', '\xc8', '\x76', '\x9d', '\x5a', '\xab', '\xcb', '\x8c', '\x3d', '\x72', '\xd0', '\x60',
|
||||
'\x3c', '\xba', '\x43', '\x8e', '\xed', '\xd6', '\xc2', '\xac', '\xea', '\xf9', '\x9b', '\x73', '\xc3', '\xcf', '\xc7', '\xbf',
|
||||
'\xf9', '\x02', '\x51', '\x97', '\xa4', '\x18' };
|
||||
|
||||
// end paste
|
||||
|
||||
QByteArray retVal( stateData, sizeof( stateData ) );
|
||||
|
||||
@ -492,34 +515,38 @@ QByteArray RiuDockWidgetTools::defaultPlotDockState()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QByteArray RiuDockWidgetTools::hideAllDocking3DState()
|
||||
{
|
||||
// start paste
|
||||
|
||||
static const char stateData[] =
|
||||
{ '\x00', '\x00', '\x06', '\x11', '\x78', '\xda', '\x95', '\x54', '\x4d', '\x53', '\xc2', '\x30', '\x10', '\xbd', '\xfb', '\x2b',
|
||||
'\x32', '\xbd', '\x2b', '\x05', '\xd4', '\xf1', '\xc0', '\xc7', '\x30', '\xa0', '\x33', '\x1e', '\x50', '\xb4', '\x20', '\x47',
|
||||
'\x27', '\xa6', '\x2b', '\x46', '\xd3', '\x84', '\xd9', '\x2c', '\xf8', '\x31', '\xfe', '\x78', '\xb7', '\x05', '\x19', '\x29',
|
||||
'\xa5', '\x95', '\x53', '\xd3', '\xdd', '\xf7', '\xf2', '\xde', '\x26', '\xbb', '\x69', '\x75', '\x3f', '\x12', '\x23', '\x96',
|
||||
'\x80', '\x5e', '\x3b', '\xdb', '\x0e', '\xea', '\x27', '\x61', '\x20', '\xc0', '\x2a', '\x17', '\x6b', '\x3b', '\x6b', '\x07',
|
||||
'\x93', '\xf1', '\xd5', '\xf1', '\x45', '\xd0', '\xed', '\xb4', '\xee', '\xa8', '\x17', '\x2f', '\xa5', '\x55', '\x10', '\x0f',
|
||||
'\x9c', '\x7a', '\xe3', '\x5c', '\xf4', '\xe9', '\x09', '\x12', '\xf1', '\xb0', '\x21', '\x06', '\x62', '\xe2', '\x01', '\x37',
|
||||
'\xff', '\x8d', '\x40', '\xf4', '\x9d', '\x25', '\xa9', '\x2d', '\x47', '\xb2', '\x74', '\x1f', '\x2c', '\xa1', '\x34', '\x53',
|
||||
'\x1d', '\xcf', '\x80', '\xda', '\x41', '\xcc', '\xfb', '\x34', '\x07', '\x53', '\x6d', '\x63', '\xf7', '\xfe', '\x98', '\x30',
|
||||
'\x6e', '\xb5', '\x0c', '\x3a', '\xad', '\x0d', '\x4f', '\x5c', '\x19', '\x27', '\x29', '\x33', '\x12', '\x72', '\x3c', '\x9a',
|
||||
'\x1b', '\x4d', '\xc4', '\xe1', '\x5b', '\xd4', '\xbc', '\x17', '\x67', '\x52', '\xa1', '\xef', '\x54', '\x68', '\x61', '\x29',
|
||||
'\x95', '\xdc', '\x87', '\x39', '\xde', '\xc2', '\xf4', '\x10', '\xa4', '\x18', '\xcb', '\x27', '\xb6', '\xd5', '\xe4', '\xc4',
|
||||
'\x02', '\x11', '\xec', '\xda', '\x50', '\xa4', '\x50', '\xcf', '\xc9', '\x8f', '\x11', '\x60', '\xdb', '\xd3', '\xca', '\xb5',
|
||||
'\xb8', '\x91', '\x09', '\xac', '\x90', '\x23', '\x74', '\xaf', '\xa0', '\x28', '\x8f', '\x14', '\x7d', '\xe3', '\x3c', '\xc4',
|
||||
'\x69', '\xc1', '\xb5', '\x02', '\xd6', '\x40', '\x92', '\x8c', '\xdc', '\x02', '\x15', '\x1c', '\x48', '\xdc', '\x63', '\x6c',
|
||||
'\x9b', '\x55', '\x4b', '\x2b', '\xdb', '\xaa', '\xaf', '\x9e', '\xab', '\x8f', '\x5d', '\xcf', '\x01', '\xe9', '\xf3', '\x32',
|
||||
'\xd6', '\xe4', '\xb0', '\xba', '\xc4', '\x3d', '\xe0', '\x42', '\xd9', '\x48', '\x7f', '\x81', '\xef', '\x84', '\xa2', '\xde',
|
||||
'\x38', '\x3b', '\x17', '\xad', '\xda', '\xea', '\x97', '\xbf', '\xeb', '\x1b', '\x39', '\xf8', '\x6e', '\xf2', '\xde', '\x8b',
|
||||
'\x9a', '\x85', '\x3b', '\x44', '\xce', '\x32', '\x6c', '\x81', '\xff', '\x42', '\xc2', '\xaf', '\xf3', '\xf0', '\xaf', '\xf3',
|
||||
'\x8a', '\xc6', '\x6a', '\x96', '\x1b', '\xbb', '\x07', '\xbf', '\x30', '\x74', '\x6d', '\x9f', '\x5d', '\xc5', '\x81', '\x16',
|
||||
'\x03', '\xab', '\xee', '\xf0', '\x34', '\x27', '\x37', '\x74', '\x2f', '\xe8', '\xfb', '\x1a', '\x95', '\x81', '\x91', '\x71',
|
||||
'\xf4', '\x2f', '\xcd', '\x3c', '\xb0', '\xa2', '\xdb', '\x4a', '\x24', '\x2a', '\x98', '\xf7', '\x60', '\x46', '\x80', '\xc9',
|
||||
'\x81', '\xac', '\xd1', '\xb2', '\xc2', '\xe1', '\xee', '\xa9', '\xe4', '\x27', '\x77', '\xc2', '\xac', '\x88', '\xa4', '\x7a',
|
||||
'\xab', '\x38', '\x8f', '\x21', '\x78', '\x2f', '\x67', '\xe0', '\x0f', '\x71', '\x87', '\x4e', '\x31', '\x6b', '\xe8', '\x6c',
|
||||
'\xf9', '\x1c', '\xec', '\x10', '\x0b', '\x3d', '\x95', '\xce', '\x4e', '\x28', '\x78', '\x78', '\xc2', '\xe2', '\xe9', '\xc9',
|
||||
'\x22', '\xd9', '\x70', '\x95', '\x01', '\x4a', '\x76', '\xa8', '\x6d', '\x1e', '\x56', '\x5e', '\xef', '\x79', '\xd0', '\x3b',
|
||||
'\x47', '\x3f', '\x6f', '\xaf', '\x16', '\x81' };
|
||||
{ '\x00', '\x00', '\x06', '\x51', '\x78', '\xda', '\x95', '\x95', '\x4d', '\x53', '\xc2', '\x30', '\x10', '\x86', '\xef', '\xfe',
|
||||
'\x8a', '\x4c', '\xef', '\x48', '\x01', '\x65', '\x3c', '\xf0', '\x31', '\x4c', '\x91', '\x19', '\x0f', '\x28', '\x5a', '\x90',
|
||||
'\xa3', '\x13', '\xdb', '\x15', '\xa2', '\x69', '\xc2', '\x24', '\x0b', '\x8a', '\xe3', '\x8f', '\x37', '\x6d', '\xb1', '\x23',
|
||||
'\x25', '\x6d', '\xe9', '\xa9', '\x69', '\xf2', '\xbe', '\xd9', '\x67', '\xb3', '\x9b', '\xb6', '\x37', '\xfc', '\x8a', '\x38',
|
||||
'\xd9', '\x81', '\xd2', '\x4c', '\x8a', '\xbe', '\xd3', '\xba', '\x74', '\x1d', '\x02', '\x22', '\x90', '\x21', '\x13', '\xab',
|
||||
'\xbe', '\xb3', '\x98', '\x4f', '\x1a', '\x37', '\xce', '\x70', '\xd0', '\x7b', '\xc4', '\x51', '\xb8', '\xa3', '\x22', '\x80',
|
||||
'\x70', '\x2c', '\x83', '\x0f', '\xb3', '\xe6', '\xef', '\x35', '\x42', '\x44', '\x9e', '\x33', '\xa3', '\x43', '\x16', '\x1a',
|
||||
'\x54', '\xf6', '\xde', '\x71', '\x88', '\x27', '\x05', '\x52', '\x26', '\xcc', '\x4c', '\xb2', '\xec', '\x81', '\x40', '\x45',
|
||||
'\xf9', '\x92', '\x85', '\x2b', '\xc0', '\xbe', '\x13', '\x9a', '\x7d', '\x3a', '\xe3', '\x25', '\x13', '\xa1', '\xfc', '\x7c',
|
||||
'\x89', '\x8c', '\x2e', '\x1d', '\x3a', '\x83', '\x5e', '\xe6', '\x23', '\x13', '\x2e', '\x29', '\x26', '\x20', '\xae', '\x99',
|
||||
'\xf7', '\x37', '\x9c', '\x21', '\x9a', '\xe9', '\x07', '\xc5', '\xcc', '\x5e', '\x66', '\x25', '\x0e', '\xf4', '\x13', '\x07',
|
||||
'\xda', '\x0a', '\x8c', '\x43', '\x16', '\x69', '\x1a', '\x99', '\xa6', '\x6d', '\x34', '\x23', '\x05', '\x94', '\xcc', '\xe9',
|
||||
'\xab', '\x4e', '\x29', '\xb7', '\x4a', '\x81', '\x38', '\x00', '\xf9', '\x81', '\x62', '\x1b', '\xd4', '\x73', '\x05', '\x70',
|
||||
'\xcc', '\x94', '\x52', '\x93', '\x7b', '\x1a', '\x41', '\xaa', '\x9c', '\x29', '\xf9', '\x0e', '\x01', '\xe6', '\x95', '\xc4',
|
||||
'\xe3', '\x52', '\x43', '\x18', '\x27', '\xdc', '\xb4', '\xb8', '\xc6', '\x14', '\xa9', '\x2f', '\xb7', '\x2a', '\x80', '\x9a',
|
||||
'\xc6', '\x02', '\xb0', '\x63', '\x57', '\x33', '\xce', '\xec', '\x28', '\xbf', '\x56', '\x2e', '\x3f', '\x43', '\xbd', '\x01',
|
||||
'\x85', '\xfb', '\xdb', '\x90', '\xa1', '\x54', '\xd5', '\x29', '\x16', '\x88', '\xad', '\x61', '\x7d', '\xf6', '\x0d', '\x7a',
|
||||
'\xe0', '\x92', '\x56', '\xa7', '\xd5', '\x25', '\xbd', '\x66', '\xfa', '\x6a', '\x9e', '\x87', '\x8a', '\xd4', '\xae', '\x4d',
|
||||
'\x9e', '\xdd', '\xd6', '\x2c', '\xa6', '\x43', '\xe8', '\x2a', '\xd1', '\x5a', '\xf8', '\xad', '\x86', '\x3f', '\x72', '\xf7',
|
||||
'\x3f', '\xf9', '\x19', '\x8d', '\x55', '\x02', '\xf6', '\x04', '\x7a', '\xcb', '\xf1', '\x4e', '\xbc', '\xc9', '\x8a', '\x03',
|
||||
'\xb5', '\x0b', '\xab', '\x6a', '\x78', '\x95', '\x0b', '\x37', '\x95', '\x6b', '\xa5', '\x3d', '\xa6', '\x02', '\x0e', '\x33',
|
||||
'\x2e', '\xf1', '\xac', '\x98', '\x79', '\x61', '\x45', '\xb7', '\x95', '\x84', '\xa8', '\x70', '\x3e', '\x01', '\x9f', '\x81',
|
||||
'\x8a', '\x6a', '\xba', '\x66', '\xbb', '\x0a', '\xc2', '\xd3', '\x53', '\x69', '\x9f', '\x76', '\x76', '\x00', '\x5a', '\x4f',
|
||||
'\xa5', '\x38', '\xa3', '\xb3', '\xa7', '\x46', '\x49', '\x57', '\xa0', '\xeb', '\x20', '\x16', '\xee', '\x5f', '\x7a', '\x19',
|
||||
'\x5c', '\xd2', '\xbe', '\xee', '\xba', '\xf6', '\xeb', '\x90', '\xcc', '\x24', '\xb7', '\xc5', '\x2e', '\x28', '\x69', '\xb9',
|
||||
'\x31', '\x6c', '\x70', '\x7d', '\x46', '\xf5', '\xad', '\xba', '\x52', '\xe0', '\x04', '\xd7', '\xce', '\xd3', '\xcc', '\x3e',
|
||||
'\xcc', '\x66', '\x5c', '\xf0', '\x43', '\x18', '\x5c', '\xfc', '\x02', '\x10', '\x78', '\x2c', '\xb5' };
|
||||
|
||||
// end paste
|
||||
|
||||
QByteArray retVal( stateData, sizeof( stateData ) );
|
||||
|
||||
@ -531,31 +558,34 @@ QByteArray RiuDockWidgetTools::hideAllDocking3DState()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QByteArray RiuDockWidgetTools::hideAllDockingPlotState()
|
||||
{
|
||||
// start paste
|
||||
|
||||
static const char stateData[] =
|
||||
{ '\x00', '\x00', '\x04', '\xe7', '\x78', '\xda', '\x9d', '\x94', '\x51', '\x6f', '\x82', '\x30', '\x14', '\x85', '\xdf', '\xf7',
|
||||
'\x2b', '\x9a', '\xbe', '\x3b', '\x10', '\xb3', '\xc5', '\x07', '\xc4', '\x18', '\x9c', '\x6f', '\x6e', '\x2e', '\xe0', '\x7c',
|
||||
'\x34', '\x1d', '\xdc', '\x90', '\x46', '\x68', '\x49', '\x5b', '\xdc', '\x5c', '\xf6', '\xe3', '\x77', '\x41', '\xc5', '\xe9',
|
||||
'\xc0', '\xa9', '\x4f', '\xd0', '\xf6', '\x9c', '\x9e', '\xef', '\x72', '\x6f', '\x70', '\x87', '\x9f', '\x59', '\x4a', '\xd6',
|
||||
'\xa0', '\x34', '\x97', '\x62', '\x40', '\xbb', '\xf7', '\x36', '\x25', '\x20', '\x22', '\x19', '\x73', '\x91', '\x0c', '\xe8',
|
||||
'\x3c', '\x9c', '\x74', '\xfa', '\x74', '\xe8', '\xb9', '\xaf', '\x66', '\x14', '\xaf', '\x99', '\x88', '\x20', '\x1e', '\xcb',
|
||||
'\x68', '\x85', '\x67', '\xc1', '\x46', '\x1b', '\xc8', '\xc8', '\x5b', '\x6d', '\xa4', '\x64', '\xae', '\x41', '\xd5', '\x6b',
|
||||
'\x87', '\x12', '\x5f', '\x0a', '\xc3', '\xb8', '\xc0', '\x9d', '\xea', '\xd8', '\x07', '\x61', '\x14', '\x4b', '\x17', '\x3c',
|
||||
'\x4e', '\xc0', '\x0c', '\x68', '\x8c', '\xf7', '\xcc', '\x52', '\x69', '\x16', '\x5c', '\xc4', '\xf2', '\x63', '\x99', '\xa1',
|
||||
'\xf2', '\xb0', '\xa4', '\x9e', '\x5b', '\xbb', '\xc9', '\x24', '\x95', '\xcc', '\x54', '\x38', '\x36', '\xee', '\x07', '\x79',
|
||||
'\xca', '\x8d', '\xc1', '\xed', '\x17', '\xc5', '\xf1', '\x46', '\x3c', '\x29', '\xe3', '\xbe', '\xcb', '\xb8', '\x42', '\xe0',
|
||||
'\xbd', '\xbd', '\x56', '\x4d', '\xa7', '\xd6', '\x38', '\xa8', '\x19', '\x29', '\x60', '\x24', '\x64', '\xef', '\xba', '\xb4',
|
||||
'\x10', '\xbf', '\x50', '\x0a', '\xc4', '\x0e', '\x2b', '\x88', '\x14', '\xcf', '\x8d', '\x0e', '\x15', '\xc0', '\x32', '\x47',
|
||||
'\xa6', '\x29', '\x72', '\xd4', '\x5c', '\x5b', '\x7e', '\xf2', '\xcc', '\x32', '\x38', '\x14', '\xd1', '\xa8', '\x25', '\x7e',
|
||||
'\x2a', '\x35', '\xc4', '\x65', '\xf1', '\x56', '\x83', '\x2f', '\x84', '\x2c', '\x4f', '\x99', '\x81', '\x5b', '\xbc', '\x67',
|
||||
'\x08', '\x8f', '\x9d', '\x56', '\x59', '\xe6', '\x51', '\xb1', '\xdd', '\x93', '\x62', '\x67', '\x4a', '\xe6', '\xa0', '\xcc',
|
||||
'\xe6', '\x29', '\xe6', '\x46', '\xaa', '\x4b', '\xea', '\x3d', '\x6b', '\x68', '\x8c', '\x0f', '\xf8', '\x17', '\x68', '\xcf',
|
||||
'\x26', '\x5d', '\xa7', '\xdf', '\x23', '\xae', '\xb5', '\x5d', '\xe2', '\x73', '\xd7', '\xa6', '\xf3', '\x7c', '\xad', '\x33',
|
||||
'\x82', '\x83', '\xc1', '\x92', '\xca', '\xd1', '\xd2', '\x95', '\x16', '\xdb', '\x9e', '\xd0', '\xfe', '\x4d', '\x78', '\xdd',
|
||||
'\xc4', '\x38', '\xa7', '\x13', '\x53', '\x64', '\x19', '\x53', '\x9b', '\x59', '\xf5', '\x2d', '\x04', '\x4b', '\x40', '\x35',
|
||||
'\x31', '\x8d', '\x99', '\x61', '\x81', '\x2c', '\x54', '\x04', '\xb7', '\xb4', '\xfc', '\x6f', '\xc4', '\x7f', '\xad', '\x3e',
|
||||
'\xa5', '\x9c', '\x63', '\x4e', '\x60', '\x58', '\xb4', '\xba', '\xa0', '\xcb', '\x53', '\xd0', '\x1a', '\x43', '\xf4', '\x95',
|
||||
'\x94', '\xad', '\x11', '\xb7', '\xcd', '\xc5', '\x5e', '\xe0', '\x3c', '\x3c', '\xda', '\xc4', '\x6e', '\x94', '\x58', '\xf5',
|
||||
'\x8f', '\x02', '\xdf', '\x5b', '\x7e', '\x53', '\xde', '\xdd', '\x0f', '\x36', '\x41', '\xb3', '\x2a' };
|
||||
{ '\x00', '\x00', '\x04', '\xae', '\x78', '\xda', '\x9d', '\x54', '\xc1', '\x6e', '\x82', '\x40', '\x10', '\xbd', '\xf7', '\x2b',
|
||||
'\x36', '\x7b', '\xb7', '\x20', '\xa6', '\x8d', '\x07', '\xc4', '\x18', '\xad', '\x37', '\x5b', '\x1b', '\xb0', '\x1e', '\xcd',
|
||||
'\x96', '\x9d', '\x90', '\x4d', '\x61', '\x97', '\xec', '\x2e', '\xb6', '\x36', '\xfd', '\xf8', '\x0e', '\xa8', '\x58', '\x2d',
|
||||
'\x18', '\xf5', '\x04', '\x33', '\xf3', '\xde', '\xce', '\x1b', '\xde', '\xb0', '\xfe', '\xf0', '\x2b', '\x4b', '\xc9', '\x1a',
|
||||
'\xb4', '\x11', '\x4a', '\x0e', '\x68', '\xf7', '\xde', '\xa5', '\x04', '\x64', '\xac', '\xb8', '\x90', '\xc9', '\x80', '\x2e',
|
||||
'\xa2', '\x69', '\xa7', '\x4f', '\x87', '\x81', '\xff', '\x6a', '\x47', '\x7c', '\xcd', '\x64', '\x0c', '\x7c', '\xa2', '\xe2',
|
||||
'\x0f', '\xac', '\x85', '\x1b', '\x63', '\x21', '\x23', '\x6f', '\x35', '\x91', '\x92', '\x85', '\x01', '\x5d', '\xc7', '\x3d',
|
||||
'\x4a', '\xc6', '\x4a', '\x5a', '\x26', '\x24', '\x66', '\xaa', '\xf2', '\x18', '\xa4', '\xd5', '\x2c', '\x5d', '\x0a', '\x9e',
|
||||
'\x80', '\x1d', '\x50', '\x8e', '\xe7', '\xcc', '\x53', '\x65', '\x97', '\x42', '\x72', '\xf5', '\xb9', '\xca', '\x10', '\x79',
|
||||
'\x08', '\x69', '\xe0', '\xd7', '\x6c', '\x32', '\x4d', '\x15', '\xb3', '\x95', '\x1c', '\x17', '\xf3', '\x61', '\x9e', '\x0a',
|
||||
'\x6b', '\x31', '\xfd', '\xa2', '\x05', '\x9e', '\x88', '\x95', '\xb2', '\xdd', '\x4f', '\xd9', '\xae', '\x90', '\xb6', '\x6c',
|
||||
'\xdc', '\x86', '\xe9', '\xd4', '\x18', '\x0f', '\x31', '\x23', '\x0d', '\x8c', '\x44', '\xec', '\xdd', '\x6c', '\xb5', '\x16',
|
||||
'\x5a', '\x83', '\xdc', '\xc9', '\x0a', '\x63', '\x2d', '\x72', '\x6b', '\x22', '\x0d', '\xb0', '\xca', '\x51', '\xd3', '\x0c',
|
||||
'\x75', '\xd4', '\xba', '\xb6', '\xfa', '\xc9', '\x33', '\xcb', '\xe0', '\x30', '\x44', '\x23', '\x96', '\x8c', '\x53', '\x65',
|
||||
'\x80', '\x97', '\xc3', '\x3b', '\x0d', '\xbc', '\x08', '\xb2', '\x3c', '\x65', '\x16', '\x6e', '\xe1', '\x9e', '\x51', '\x78',
|
||||
'\xcc', '\x74', '\xca', '\x31', '\x8f', '\x86', '\xed', '\x9e', '\x0c', '\x3b', '\xd7', '\x2a', '\x07', '\x6d', '\x37', '\x4f',
|
||||
'\x5c', '\x58', '\xa5', '\x2f', '\x99', '\xf7', '\x2c', '\xa1', '\xb1', '\x7d', '\x28', '\xbe', '\xc1', '\x04', '\x2e', '\xe9',
|
||||
'\x7a', '\xfd', '\x1e', '\xf1', '\x9d', '\x6d', '\x88', '\xcf', '\x9d', '\x4d', '\xe7', '\xf5', '\xb5', '\xee', '\x08', '\x2e',
|
||||
'\x06', '\x4b', '\x2a', '\x46', '\x8b', '\x2b', '\x2d', '\xb4', '\xbd', '\x42', '\xf7', '\xaf', '\xc2', '\xeb', '\x36', '\xc6',
|
||||
'\x3b', '\xdd', '\x98', '\x22', '\xcb', '\x98', '\xde', '\xcc', '\xab', '\x6f', '\x21', '\x59', '\x02', '\xba', '\x49', '\xd3',
|
||||
'\x84', '\x59', '\x16', '\xaa', '\x42', '\xc7', '\x70', '\x8b', '\xe5', '\xff', '\x5b', '\x5c', '\x6b', '\xf5', '\x0c', '\x8c',
|
||||
'\x41', '\xa2', '\xb9', '\xc0', '\xe4', '\x36', '\xe8', '\x6d', '\xf6', '\xee', '\x01', '\xde', '\xc3', '\xa3', '\x4b', '\xdc',
|
||||
'\x46', '\x88', '\x53', '\xff', '\xef', '\xf8', '\xde', '\x72', '\xdb', '\x04', '\x77', '\xbf', '\xe8', '\x23', '\x9f', '\x33' };
|
||||
|
||||
// end paste
|
||||
|
||||
QByteArray retVal( stateData, sizeof( stateData ) );
|
||||
|
||||
|
@ -51,6 +51,7 @@ public:
|
||||
static QString mainWindowResultInfoName();
|
||||
static QString mainWindowProcessMonitorName();
|
||||
static QString mainWindowResultPlotName();
|
||||
static QString mainWindowDepthPlotName();
|
||||
static QString mainWindowRelPermPlotName();
|
||||
static QString mainWindowPvtPlotName();
|
||||
static QString mainWindowMessagesName();
|
||||
|
@ -50,6 +50,7 @@
|
||||
#include "RimViewLinkerCollection.h"
|
||||
#include "RimViewWindow.h"
|
||||
|
||||
#include "RiuDepthQwtPlot.h"
|
||||
#include "RiuDockWidgetTools.h"
|
||||
#include "RiuMdiArea.h"
|
||||
#include "RiuMdiSubWindow.h"
|
||||
@ -256,6 +257,7 @@ void RiuMainWindow::cleanupGuiCaseClose()
|
||||
setResultInfo( "" );
|
||||
|
||||
m_resultQwtPlot->deleteAllCurves();
|
||||
m_depthQwtPlot->deleteAllCurves();
|
||||
if ( m_relPermPlotPanel ) m_relPermPlotPanel->clearPlot();
|
||||
if ( m_pvtPlotPanel ) m_pvtPlotPanel->clearPlot();
|
||||
if ( m_mohrsCirclePlot ) m_mohrsCirclePlot->clearPlot();
|
||||
@ -814,6 +816,14 @@ void RiuMainWindow::createDockPanels()
|
||||
bottomWidgets.push_back( dockWidget );
|
||||
}
|
||||
|
||||
{
|
||||
auto dockWidget = RiuDockWidgetTools::createDockWidget( "Depth Plot", RiuDockWidgetTools::mainWindowDepthPlotName(), dockManager() );
|
||||
|
||||
m_depthQwtPlot = new RiuDepthQwtPlot( dockWidget );
|
||||
dockWidget->setWidget( m_depthQwtPlot );
|
||||
rightWidgets.push_back( dockWidget );
|
||||
}
|
||||
|
||||
ads::CDockAreaWidget* leftArea = addTabbedWidgets( leftWidgets, ads::DockWidgetArea::LeftDockWidgetArea );
|
||||
ads::CDockAreaWidget* rightArea = addTabbedWidgets( rightWidgets, ads::DockWidgetArea::RightDockWidgetArea );
|
||||
ads::CDockAreaWidget* bottomArea =
|
||||
@ -1149,6 +1159,14 @@ RiuResultQwtPlot* RiuMainWindow::resultPlot()
|
||||
return m_resultQwtPlot;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuDepthQwtPlot* RiuMainWindow::depthPlot()
|
||||
{
|
||||
return m_depthQwtPlot;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1820,6 +1838,10 @@ void RiuMainWindow::applyFontSizesToDockedPlots()
|
||||
{
|
||||
m_resultQwtPlot->applyFontSizes( true );
|
||||
}
|
||||
if ( m_depthQwtPlot )
|
||||
{
|
||||
m_depthQwtPlot->applyFontSizes( true );
|
||||
}
|
||||
if ( m_mohrsCirclePlot )
|
||||
{
|
||||
m_mohrsCirclePlot->applyFontSizes( true );
|
||||
|
@ -49,6 +49,7 @@ class RiuMessagePanel;
|
||||
class RiuProcessMonitor;
|
||||
class RiuResultInfoPanel;
|
||||
class RiuResultQwtPlot;
|
||||
class RiuDepthQwtPlot;
|
||||
class RiuRelativePermeabilityPlotPanel;
|
||||
class RiuPvtPlotPanel;
|
||||
class RiuMohrsCirclePlot;
|
||||
@ -123,6 +124,7 @@ public:
|
||||
QList<QMdiSubWindow*> subWindowList( QMdiArea::WindowOrder order );
|
||||
|
||||
RiuResultQwtPlot* resultPlot();
|
||||
RiuDepthQwtPlot* depthPlot();
|
||||
RiuRelativePermeabilityPlotPanel* relativePermeabilityPlotPanel();
|
||||
RiuPvtPlotPanel* pvtPlotPanel();
|
||||
RiuMohrsCirclePlot* mohrsCirclePlot();
|
||||
@ -184,6 +186,7 @@ private:
|
||||
QPointer<RiuMessagePanel> m_messagePanel;
|
||||
|
||||
RiuResultQwtPlot* m_resultQwtPlot;
|
||||
RiuDepthQwtPlot* m_depthQwtPlot;
|
||||
RiuMohrsCirclePlot* m_mohrsCirclePlot;
|
||||
RiuRelativePermeabilityPlotPanel* m_relPermPlotPanel;
|
||||
RiuPvtPlotPanel* m_pvtPlotPanel;
|
||||
|
@ -52,7 +52,7 @@
|
||||
#include <QUndoStack>
|
||||
#include <QUndoView>
|
||||
|
||||
#define DOCKSTATE_VERSION 2
|
||||
#define DOCKSTATE_VERSION 3
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
|
@ -319,3 +319,29 @@ QList<QwtLegendData> RiuQwtPlotTools::createLegendData( const std::vector<RimPlo
|
||||
|
||||
return legendDataList;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuQwtPlotTools::enableGridLines( QwtPlot* plot, QwtAxis::Position axis, bool enableMajor, bool enableMinor )
|
||||
{
|
||||
QwtPlotItemList plotItems = plot->itemList( QwtPlotItem::Rtti_PlotGrid );
|
||||
for ( QwtPlotItem* plotItem : plotItems )
|
||||
{
|
||||
auto* grid = static_cast<QwtPlotGrid*>( plotItem );
|
||||
if ( axis == QwtAxis::XTop || axis == QwtAxis::XBottom )
|
||||
{
|
||||
grid->setXAxis( axis );
|
||||
grid->enableX( enableMajor );
|
||||
grid->enableXMin( enableMinor );
|
||||
}
|
||||
else
|
||||
{
|
||||
grid->setYAxis( axis );
|
||||
grid->enableY( enableMajor );
|
||||
grid->enableYMin( enableMinor );
|
||||
}
|
||||
grid->setMajorPen( Qt::lightGray, 1.0, Qt::SolidLine );
|
||||
grid->setMinorPen( Qt::lightGray, 1.0, Qt::DashLine );
|
||||
}
|
||||
}
|
||||
|
@ -70,6 +70,8 @@ public:
|
||||
static QwtAxis::Position toQwtPlotAxisEnum( RiaDefines::PlotAxis riaPlotAxis );
|
||||
|
||||
static RiaDefines::PlotAxis fromQwtPlotAxis( QwtAxis::Position );
|
||||
|
||||
static void enableGridLines( QwtPlot* plot, QwtAxis::Position axis, bool enableMajor, bool enableMinor );
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "RiuSelectionChangedHandler.h"
|
||||
|
||||
#include "RigCaseCellResultsData.h"
|
||||
#include "RigDepthResultAccessor.h"
|
||||
#include "RigEclipseCaseData.h"
|
||||
#include "RigFemPartCollection.h"
|
||||
#include "RigFemPartResultsCollection.h"
|
||||
@ -38,6 +39,7 @@
|
||||
#include "RimProject.h"
|
||||
|
||||
#include "Riu3dSelectionManager.h"
|
||||
#include "RiuDepthQwtPlot.h"
|
||||
#include "RiuFemResultTextBuilder.h"
|
||||
#include "RiuMainWindow.h"
|
||||
#include "RiuMohrsCirclePlot.h"
|
||||
@ -82,6 +84,7 @@ void RiuSelectionChangedHandler::handleSelectionDeleted() const
|
||||
if ( !RiuMainWindow::instance() ) return;
|
||||
|
||||
RiuMainWindow::instance()->resultPlot()->deleteAllCurves();
|
||||
RiuMainWindow::instance()->depthPlot()->deleteAllCurves();
|
||||
|
||||
RiuRelativePermeabilityPlotUpdater* relPermPlotUpdater = RiuMainWindow::instance()->relativePermeabilityPlotPanel()->plotUpdater();
|
||||
relPermPlotUpdater->updateOnSelectionChanged( nullptr );
|
||||
@ -104,7 +107,9 @@ void RiuSelectionChangedHandler::handleItemAppended( const RiuSelectionItem* ite
|
||||
{
|
||||
if ( !RiuMainWindow::instance() ) return;
|
||||
|
||||
addCurveFromSelectionItem( item );
|
||||
addResultCurveFromSelectionItem( item );
|
||||
|
||||
addDepthCurveFromSelectionItem( item );
|
||||
|
||||
RiuRelativePermeabilityPlotUpdater* relPermUpdater = RiuMainWindow::instance()->relativePermeabilityPlotPanel()->plotUpdater();
|
||||
relPermUpdater->updateOnSelectionChanged( item );
|
||||
@ -128,6 +133,7 @@ void RiuSelectionChangedHandler::handleSetSelectedItem( const RiuSelectionItem*
|
||||
if ( !RiuMainWindow::instance() ) return;
|
||||
|
||||
RiuMainWindow::instance()->resultPlot()->deleteAllCurves();
|
||||
RiuMainWindow::instance()->depthPlot()->deleteAllCurves();
|
||||
|
||||
RiuMohrsCirclePlot* mohrsCirclePlot = RiuMainWindow::instance()->mohrsCirclePlot();
|
||||
if ( mohrsCirclePlot ) mohrsCirclePlot->clearPlot();
|
||||
@ -138,7 +144,7 @@ void RiuSelectionChangedHandler::handleSetSelectedItem( const RiuSelectionItem*
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuSelectionChangedHandler::addCurveFromSelectionItem( const RiuEclipseSelectionItem* eclipseSelectionItem ) const
|
||||
void RiuSelectionChangedHandler::addResultCurveFromSelectionItem( const RiuEclipseSelectionItem* eclipseSelectionItem ) const
|
||||
{
|
||||
RimEclipseResultDefinition* eclResDef = eclipseSelectionItem->m_resultDefinition;
|
||||
if ( !eclResDef ) return;
|
||||
@ -184,7 +190,7 @@ void RiuSelectionChangedHandler::addCurveFromSelectionItem( const RiuEclipseSele
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuSelectionChangedHandler::addCurveFromSelectionItem( const RiuGeoMechSelectionItem* geomSelectionItem ) const
|
||||
void RiuSelectionChangedHandler::addResultCurveFromSelectionItem( const RiuGeoMechSelectionItem* geomSelectionItem ) const
|
||||
{
|
||||
RimGeoMechResultDefinition* geomResDef = geomSelectionItem->m_resultDefinition;
|
||||
|
||||
@ -271,40 +277,40 @@ void RiuSelectionChangedHandler::addCurveFromSelectionItem( const RiuGeoMechSele
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuSelectionChangedHandler::addCurveFromSelectionItem( const Riu2dIntersectionSelectionItem* selectionItem ) const
|
||||
void RiuSelectionChangedHandler::addResultCurveFromSelectionItem( const Riu2dIntersectionSelectionItem* selectionItem ) const
|
||||
{
|
||||
if ( selectionItem->eclipseSelectionItem() )
|
||||
{
|
||||
addCurveFromSelectionItem( selectionItem->eclipseSelectionItem() );
|
||||
addResultCurveFromSelectionItem( selectionItem->eclipseSelectionItem() );
|
||||
}
|
||||
else if ( selectionItem->geoMechSelectionItem() )
|
||||
{
|
||||
addCurveFromSelectionItem( selectionItem->geoMechSelectionItem() );
|
||||
addResultCurveFromSelectionItem( selectionItem->geoMechSelectionItem() );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuSelectionChangedHandler::addCurveFromSelectionItem( const RiuSelectionItem* itemAdded ) const
|
||||
void RiuSelectionChangedHandler::addResultCurveFromSelectionItem( const RiuSelectionItem* itemAdded ) const
|
||||
{
|
||||
if ( itemAdded->type() == RiuSelectionItem::ECLIPSE_SELECTION_OBJECT )
|
||||
{
|
||||
const RiuEclipseSelectionItem* eclipseSelectionItem = static_cast<const RiuEclipseSelectionItem*>( itemAdded );
|
||||
|
||||
addCurveFromSelectionItem( eclipseSelectionItem );
|
||||
addResultCurveFromSelectionItem( eclipseSelectionItem );
|
||||
}
|
||||
else if ( itemAdded->type() == RiuSelectionItem::GEOMECH_SELECTION_OBJECT )
|
||||
{
|
||||
const RiuGeoMechSelectionItem* geomSelectionItem = static_cast<const RiuGeoMechSelectionItem*>( itemAdded );
|
||||
|
||||
addCurveFromSelectionItem( geomSelectionItem );
|
||||
addResultCurveFromSelectionItem( geomSelectionItem );
|
||||
}
|
||||
else if ( itemAdded->type() == RiuSelectionItem::INTERSECTION_SELECTION_OBJECT )
|
||||
{
|
||||
const Riu2dIntersectionSelectionItem* _2dSelectionItem = static_cast<const Riu2dIntersectionSelectionItem*>( itemAdded );
|
||||
|
||||
addCurveFromSelectionItem( _2dSelectionItem );
|
||||
addResultCurveFromSelectionItem( _2dSelectionItem );
|
||||
}
|
||||
}
|
||||
|
||||
@ -406,3 +412,56 @@ void RiuSelectionChangedHandler::updateResultInfo( const RiuSelectionItem* itemA
|
||||
mainWnd->statusBar()->showMessage( pickInfo );
|
||||
mainWnd->setResultInfo( resultInfo );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuSelectionChangedHandler::addDepthCurveFromSelectionItem( const RiuSelectionItem* itemAdded ) const
|
||||
{
|
||||
if ( itemAdded->type() != RiuSelectionItem::ECLIPSE_SELECTION_OBJECT ) return;
|
||||
|
||||
const RiuEclipseSelectionItem* eclipseSelectionItem = static_cast<const RiuEclipseSelectionItem*>( itemAdded );
|
||||
if ( eclipseSelectionItem == nullptr ) return;
|
||||
|
||||
int currentTimeStep = eclipseSelectionItem->m_view->currentTimeStep();
|
||||
|
||||
RimEclipseResultDefinition* eclResDef = eclipseSelectionItem->m_resultDefinition;
|
||||
if ( !eclResDef ) return;
|
||||
|
||||
if ( eclResDef->isFlowDiagOrInjectionFlooding() && eclResDef->resultVariable() != RIG_NUM_FLOODED_PV )
|
||||
{
|
||||
// NB! Do not read out data for flow results, as this can be a time consuming operation
|
||||
return;
|
||||
}
|
||||
else if ( eclResDef->hasResult() && !RiaResultNames::isPerCellFaceResult( eclResDef->resultVariable() ) && eclResDef->eclipseCase() &&
|
||||
eclResDef->eclipseCase()->eclipseCaseData() )
|
||||
{
|
||||
QString curveName = eclResDef->resultVariableUiShortName();
|
||||
curveName += ", ";
|
||||
curveName += RigDepthResultAccessor::geometrySelectionText( eclResDef->eclipseCase()->eclipseCaseData(),
|
||||
eclipseSelectionItem->m_gridIndex,
|
||||
eclipseSelectionItem->m_gridLocalCellIndex );
|
||||
|
||||
std::vector<double> resultValues = RigDepthResultAccessor::resultValues( eclResDef->eclipseCase()->eclipseCaseData(),
|
||||
eclResDef,
|
||||
eclipseSelectionItem->m_gridIndex,
|
||||
eclipseSelectionItem->m_gridLocalCellIndex,
|
||||
currentTimeStep );
|
||||
|
||||
std::vector<int> kValues =
|
||||
RigDepthResultAccessor::kValues( eclResDef->eclipseCase()->eclipseCaseData(), eclipseSelectionItem->m_gridIndex );
|
||||
|
||||
std::vector<double> depthValues = RigDepthResultAccessor::depthValues( eclResDef->eclipseCase()->eclipseCaseData(),
|
||||
eclipseSelectionItem->m_gridLocalCellIndex,
|
||||
eclipseSelectionItem->m_gridIndex );
|
||||
|
||||
CVF_ASSERT( kValues.size() == resultValues.size() );
|
||||
|
||||
RiuMainWindow::instance()->depthPlot()->addCurve( eclResDef->eclipseCase(),
|
||||
curveName,
|
||||
eclipseSelectionItem->m_color,
|
||||
kValues,
|
||||
depthValues,
|
||||
resultValues );
|
||||
}
|
||||
}
|
||||
|
@ -38,10 +38,12 @@ public:
|
||||
void handleSetSelectedItem( const RiuSelectionItem* item ) const;
|
||||
|
||||
private:
|
||||
void addCurveFromSelectionItem( const RiuSelectionItem* itemAdded ) const;
|
||||
void addCurveFromSelectionItem( const RiuEclipseSelectionItem* selectionItem ) const;
|
||||
void addCurveFromSelectionItem( const RiuGeoMechSelectionItem* selectionItem ) const;
|
||||
void addCurveFromSelectionItem( const Riu2dIntersectionSelectionItem* selectionItem ) const;
|
||||
void addResultCurveFromSelectionItem( const RiuSelectionItem* itemAdded ) const;
|
||||
void addResultCurveFromSelectionItem( const RiuEclipseSelectionItem* selectionItem ) const;
|
||||
void addResultCurveFromSelectionItem( const RiuGeoMechSelectionItem* selectionItem ) const;
|
||||
void addResultCurveFromSelectionItem( const Riu2dIntersectionSelectionItem* selectionItem ) const;
|
||||
|
||||
void addDepthCurveFromSelectionItem( const RiuSelectionItem* itemAdded ) const;
|
||||
|
||||
void scheduleUpdateForAllVisibleViews() const;
|
||||
void updateResultInfo( const RiuSelectionItem* itemAdded ) const;
|
||||
|
Loading…
Reference in New Issue
Block a user