mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-12 08:25:03 -05:00
Depth plot as docking widget (#9909)
* Add docked depth result plot for eclipse data * Update dock layout defaults
This commit is contained in:
1 parent
39d011b1e6
commit
3d663797b6
35 files changed
+935
-177
No files matched your search
@@ -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
|
||||
)
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -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 );
|
||||
};
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -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
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user