Release 2023.06
57
.github/workflows/AppFwkUnitTest.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
|
||||
- name: Set apt mirror
|
||||
# see https://github.com/actions/runner-images/issues/7048
|
||||
if: "contains( matrix.os, 'ubuntu')"
|
||||
if: ${{contains( matrix.os, 'ubuntu') }}
|
||||
run: |
|
||||
# make sure there is a `\t` between URL and `priority:*` attributes
|
||||
printf 'http://azure.archive.ubuntu.com/ubuntu priority:1\n' | sudo tee /etc/apt/mirrors.txt
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
sudo sed -i 's/http:\/\/azure.archive.ubuntu.com\/ubuntu\//mirror+file:\/etc\/apt\/mirrors.txt/' /etc/apt/sources.list
|
||||
|
||||
- name: Install Linux dependencies
|
||||
if: "contains( matrix.os, 'ubuntu')"
|
||||
if: ${{contains( matrix.os, 'ubuntu') }}
|
||||
run: |
|
||||
sudo apt-get update --option="APT::Acquire::Retries=3"
|
||||
sudo apt-get install --option="APT::Acquire::Retries=3" libxkbcommon-x11-0 libgl1-mesa-dev mesa-common-dev libglfw3-dev libglu1-mesa-dev
|
||||
@@ -35,27 +35,48 @@ jobs:
|
||||
dir: "${{ github.workspace }}/Qt/"
|
||||
cache: true
|
||||
|
||||
- name: Build AppFwk with Unit Tests
|
||||
uses: lukka/run-cmake@v3
|
||||
with:
|
||||
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
|
||||
cmakeListsTxtPath: "${{ github.workspace }}/Fwk/AppFwk/CMakeLists.txt"
|
||||
buildDirectory: ${{ github.workspace }}/cmakebuild
|
||||
buildWithCMakeArgs: "--config Release"
|
||||
useVcpkgToolchainFile: false
|
||||
- name: Get CMake and Ninja
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Run Unit Tests Windows
|
||||
if: contains( matrix.os, 'windows')
|
||||
shell: bash
|
||||
- name: Use MSVC (Windows)
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
|
||||
- name: Configure
|
||||
shell: cmake -P {0}
|
||||
run: |
|
||||
cmakebuild/cafProjectDataModel/cafPdmCore/cafPdmCore_UnitTests/Release/cafPdmCore_UnitTests
|
||||
cmakebuild/cafProjectDataModel/cafPdmXml/cafPdmXml_UnitTests/Release/cafPdmXml_UnitTests
|
||||
cmakebuild/cafProjectDataModel/cafProjectDataModel_UnitTests/Release/cafProjectDataModel_UnitTests
|
||||
execute_process(
|
||||
COMMAND cmake
|
||||
-S Fwk/AppFwk
|
||||
-B cmakebuild
|
||||
-G Ninja
|
||||
RESULT_VARIABLE result
|
||||
)
|
||||
if (NOT result EQUAL 0)
|
||||
message(FATAL_ERROR "Bad exit status")
|
||||
endif()
|
||||
|
||||
- name: Build
|
||||
shell: cmake -P {0}
|
||||
run: |
|
||||
set(ENV{NINJA_STATUS} "[%f/%t %o/sec] ")
|
||||
execute_process(
|
||||
COMMAND cmake --build cmakebuild
|
||||
RESULT_VARIABLE result
|
||||
)
|
||||
if (NOT result EQUAL 0)
|
||||
message(FATAL_ERROR "Bad exit status")
|
||||
endif()
|
||||
|
||||
- name: Run Unit Tests Linux
|
||||
if: "!contains( matrix.os, 'windows')"
|
||||
- name: Run Unit Tests
|
||||
shell: bash
|
||||
run: |
|
||||
cmakebuild/cafProjectDataModel/cafPdmCore/cafPdmCore_UnitTests/cafPdmCore_UnitTests
|
||||
cmakebuild/cafProjectDataModel/cafPdmXml/cafPdmXml_UnitTests/cafPdmXml_UnitTests
|
||||
cmakebuild/cafProjectDataModel/cafProjectDataModel_UnitTests/cafProjectDataModel_UnitTests
|
||||
cmakebuild/cafPdmScripting/cafPdmScripting_UnitTests/cafPdmScripting_UnitTests
|
||||
|
||||
- name: Run Unit Tests Windows (does not work on Linux)
|
||||
if: contains( matrix.os, 'windows')
|
||||
shell: bash
|
||||
run: |
|
||||
cmakebuild/cafUserInterface/cafUserInterface_UnitTests/cafUserInterface_UnitTests
|
||||
|
||||
28
.github/workflows/ResInsightWithCache.yml
vendored
@@ -6,7 +6,7 @@ on:
|
||||
schedule:
|
||||
# Every day at 1am to make sure we have a build cache for the current date
|
||||
# build cache is
|
||||
- cron: "0 1 * * * "
|
||||
- cron: '0 1 * * *'
|
||||
env:
|
||||
BUILD_TYPE: Release
|
||||
BUILDCACHE_VERSION: 0.27.6
|
||||
@@ -33,6 +33,7 @@ jobs:
|
||||
vcpkg-triplet: x64-windows,
|
||||
build-python-module: true,
|
||||
execute-unit-tests: true,
|
||||
unity-build: true,
|
||||
}
|
||||
- {
|
||||
name: "Ubuntu Latest gcc",
|
||||
@@ -43,6 +44,7 @@ jobs:
|
||||
vcpkg-triplet: x64-linux,
|
||||
build-python-module: true,
|
||||
execute-unit-tests: true,
|
||||
unity-build: false,
|
||||
}
|
||||
- {
|
||||
name: "Ubuntu Latest clang",
|
||||
@@ -53,6 +55,7 @@ jobs:
|
||||
vcpkg-triplet: x64-linux,
|
||||
build-python-module: true,
|
||||
execute-unit-tests: true,
|
||||
unity-build: false,
|
||||
}
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -134,7 +137,7 @@ jobs:
|
||||
|
||||
- name: Set apt mirror
|
||||
# see https://github.com/actions/runner-images/issues/7048
|
||||
if: "contains( matrix.config.os, 'ubuntu')"
|
||||
if: ${{contains( matrix.config.os, 'ubuntu') }}
|
||||
run: |
|
||||
# make sure there is a `\t` between URL and `priority:*` attributes
|
||||
printf 'http://azure.archive.ubuntu.com/ubuntu priority:1\n' | sudo tee /etc/apt/mirrors.txt
|
||||
@@ -142,7 +145,7 @@ jobs:
|
||||
sudo sed -i 's/http:\/\/azure.archive.ubuntu.com\/ubuntu\//mirror+file:\/etc\/apt\/mirrors.txt/' /etc/apt/sources.list
|
||||
|
||||
- name: Install Linux dependencies
|
||||
if: "contains( matrix.config.os, 'ubuntu')"
|
||||
if: ${{contains( matrix.config.os, 'ubuntu') }}
|
||||
run: |
|
||||
sudo apt-get update --option="APT::Acquire::Retries=3"
|
||||
sudo apt-get install --option="APT::Acquire::Retries=3" libxkbcommon-x11-0 libgl1-mesa-dev mesa-common-dev libglfw3-dev libglu1-mesa-dev libhdf5-dev
|
||||
@@ -152,14 +155,9 @@ jobs:
|
||||
uses: jurplel/install-qt-action@v3
|
||||
with:
|
||||
version: 5.12.12
|
||||
modules: qtscript
|
||||
dir: "${{ github.workspace }}/Qt/"
|
||||
cache: true
|
||||
|
||||
- name: Set vcpkg's response file path used as part of cache's key.
|
||||
uses: lukka/set-shell-env@master
|
||||
with:
|
||||
VCPKGRESPONSEFILE: ${{ github.workspace }}/${{ matrix.config.vcpkg-response-file }}
|
||||
- name: Restore from cache and install vcpkg
|
||||
uses: lukka/run-vcpkg@v7
|
||||
id: runvcpkg
|
||||
@@ -167,18 +165,17 @@ jobs:
|
||||
vcpkgArguments: "@${{ github.workspace }}/${{ matrix.config.vcpkg-response-file }}"
|
||||
vcpkgDirectory:
|
||||
"${{ github.workspace }}/ThirdParty/vcpkg"
|
||||
# Ensure the cache key changes any time the content of the response file changes.
|
||||
appendedCacheKey: ${{ hashFiles(env.VCPKGRESPONSEFILE) }}-cache-key-v2
|
||||
appendedCacheKey: ${{ matrix.config.os }}-${{ matrix.config.cxx }}-cache-key-v2
|
||||
|
||||
- name: Cache dynamic version of OpenSSL (Linux)
|
||||
if: "contains( matrix.config.os, 'ubuntu_disabled')"
|
||||
if: ${{contains( matrix.config.os, 'ubuntu_disabled') }}
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ${{ github.workspace }}/ThirdParty/vcpkg/installed/x64-linux-dynamic
|
||||
key: ${{ matrix.config.os }}-vcpkg-x64-linux-dynamic_v05
|
||||
|
||||
- name: Install dynamic version of OpenSSL (Linux)
|
||||
if: "contains( matrix.config.os, 'ubuntu')"
|
||||
if: ${{contains( matrix.config.os, 'ubuntu') }}
|
||||
run: |
|
||||
$VCPKG_ROOT/vcpkg install --overlay-triplets=${{ github.workspace }}/ThirdParty/vcpkg-custom-triplets --triplet x64-linux-dynamic openssl
|
||||
|
||||
@@ -197,9 +194,12 @@ jobs:
|
||||
-D RESINSIGHT_BUNDLE_OPENSSL=true
|
||||
-D RESINSIGHT_INCLUDE_APPLICATION_UNIT_TESTS=true
|
||||
-D RESINSIGHT_TREAT_WARNINGS_AS_ERRORS=true
|
||||
-D RESINSIGHT_ENABLE_UNITY_BUILD=${{ matrix.config.unity-build }}
|
||||
-D RESINSIGHT_ENABLE_GRPC=${{ matrix.config.build-python-module }}
|
||||
-D RESINSIGHT_GRPC_PYTHON_EXECUTABLE=${{ steps.python-path.outputs.PYTHON_EXECUTABLE }}
|
||||
-D RESINSIGHT_GRPC_DOWNLOAD_PYTHON_MODULE=true
|
||||
-D RESINSIGHT_ENABLE_HDF5=false
|
||||
-D RESINSIGHT_BUILD_LIBS_FROM_SOURCE=false
|
||||
-D CMAKE_TOOLCHAIN_FILE=ThirdParty/vcpkg/scripts/buildsystems/vcpkg.cmake
|
||||
-G Ninja
|
||||
RESULT_VARIABLE result
|
||||
@@ -222,13 +222,13 @@ jobs:
|
||||
- name: Stats for buildcache
|
||||
run: ${{ github.workspace }}/buildcache/bin/buildcache -s
|
||||
- name: Run Unit Tests
|
||||
if: "matrix.config.execute-unit-tests == true"
|
||||
if: matrix.config.execute-unit-tests == 'true'
|
||||
shell: bash
|
||||
run: |
|
||||
cmakebuild/ApplicationExeCode/ResInsight --unittest
|
||||
|
||||
- name: Run pytest
|
||||
if: "matrix.config.build-python-module == true"
|
||||
if: matrix.config.build-python-module == 'true'
|
||||
env:
|
||||
RESINSIGHT_EXECUTABLE: ${{ runner.workspace }}/ResInsight/cmakebuild/ApplicationExeCode/ResInsight
|
||||
run: |
|
||||
|
||||
17
.github/workflows/clang-format.yml
vendored
@@ -4,7 +4,7 @@ on: [push]
|
||||
|
||||
jobs:
|
||||
clang-format-job:
|
||||
runs-on: ubuntu-20.04
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Set apt mirror
|
||||
# GitHub Actions apt proxy is super unstable
|
||||
@@ -15,27 +15,28 @@ jobs:
|
||||
curl http://mirrors.ubuntu.com/mirrors.txt | sudo tee --append /etc/apt/mirrors.txt
|
||||
sudo sed -i 's/http:\/\/azure.archive.ubuntu.com\/ubuntu\//mirror+file:\/etc\/apt\/mirrors.txt/' /etc/apt/sources.list
|
||||
|
||||
- name: Install clang-format 10.0
|
||||
- name: Install clang-format 15.0
|
||||
run: |
|
||||
sudo apt-get install --option="APT::Acquire::Retries=3" clang-format-10
|
||||
clang-format-10 --version
|
||||
sudo apt-get update
|
||||
sudo apt-get install --option="APT::Acquire::Retries=3" clang-format-15
|
||||
clang-format-15 --version
|
||||
- uses: actions/checkout@v3
|
||||
- name: Check format - ApplicationLibCode
|
||||
run: |
|
||||
cd ApplicationLibCode
|
||||
find -name '*.h' -o -name '*.cpp' -o -name '*.inl' | xargs clang-format-10 -i
|
||||
find -name '*.h' -o -name '*.cpp' -o -name '*.inl' | xargs clang-format-15 -i
|
||||
git diff
|
||||
- name: Check format - ApplicationExeCode
|
||||
run: |
|
||||
cd ApplicationExeCode
|
||||
find -name '*.h' -o -name '*.cpp' -o -name '*.inl' | xargs clang-format-10 -i
|
||||
find -name '*.h' -o -name '*.cpp' -o -name '*.inl' | xargs clang-format-15 -i
|
||||
git diff
|
||||
- name: Check format - AppFwk
|
||||
run: |
|
||||
cd Fwk/AppFwk
|
||||
find -name '*.h' -o -name '*.cpp' -o -name '*.inl' | grep -v gtest | xargs clang-format-10 -i
|
||||
find -name '*.h' -o -name '*.cpp' -o -name '*.inl' | grep -v gtest | xargs clang-format-15 -i
|
||||
git diff
|
||||
- uses: peter-evans/create-pull-request@v4
|
||||
- uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
commit-message: "Fixes by clang-format"
|
||||
|
||||
46
.github/workflows/clang-tidy.yml
vendored
@@ -1,21 +1,25 @@
|
||||
name: clang-tidy
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '**.clang-tidy'
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# Once every night
|
||||
- cron: "0 1 * * * "
|
||||
- cron: "0 1 * * *"
|
||||
|
||||
jobs:
|
||||
ResInsight-x64-buildcache:
|
||||
runs-on: ${{ matrix.config.os }}
|
||||
continue-on-error: true
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
config:
|
||||
- {
|
||||
name: "Ubuntu 20.04",
|
||||
os: ubuntu-20.04,
|
||||
name: "Ubuntu 22.04",
|
||||
os: ubuntu-22.04,
|
||||
cc: "gcc",
|
||||
cxx: "g++",
|
||||
vcpkg-response-file: vcpkg_x64-linux.txt,
|
||||
@@ -29,10 +33,11 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Install Linux dependencies
|
||||
if: "contains( matrix.config.os, 'ubuntu')"
|
||||
if: ${{contains( matrix.config.os, 'ubuntu') }}
|
||||
run: |
|
||||
sudo apt-get update --option="APT::Acquire::Retries=3"
|
||||
sudo apt-get install --option="APT::Acquire::Retries=3" libxkbcommon-x11-0 libgl1-mesa-dev mesa-common-dev libglfw3-dev libglu1-mesa-dev libhdf5-dev
|
||||
sudo apt-get install clang-tidy-15 clang-format-15
|
||||
|
||||
- name: Install Qt
|
||||
uses: jurplel/install-qt-action@v3
|
||||
@@ -42,10 +47,6 @@ jobs:
|
||||
dir: "${{ github.workspace }}/Qt/"
|
||||
cache: true
|
||||
|
||||
- name: Set vcpkg's response file path used as part of cache's key.
|
||||
uses: lukka/set-shell-env@master
|
||||
with:
|
||||
VCPKGRESPONSEFILE: ${{ github.workspace }}/${{ matrix.config.vcpkg-response-file }}
|
||||
- name: Run vcpkg
|
||||
uses: lukka/run-vcpkg@v7
|
||||
id: runvcpkg
|
||||
@@ -53,44 +54,29 @@ jobs:
|
||||
vcpkgArguments: "@${{ github.workspace }}/${{ matrix.config.vcpkg-response-file }}"
|
||||
vcpkgDirectory:
|
||||
"${{ github.workspace }}/ThirdParty/vcpkg"
|
||||
# Ensure the cache key changes any time the content of the response file changes.
|
||||
appendedCacheKey: ${{ hashFiles(env.VCPKGRESPONSEFILE) }}-clang-tidy-v01
|
||||
- name: Create compile commands and run clang-tidy
|
||||
# https://clang.llvm.org/extra/doxygen/run-clang-tidy_8py_source.html
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=${{ matrix.config.cmake-toolchain }} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
|
||||
sudo apt-get install clang-tidy
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=${{ matrix.config.cmake-toolchain }} -DRESINSIGHT_USE_OPENMP=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
|
||||
mv compile_commands.json compile_commands_original.json
|
||||
python ../scripts/fix_json_database.py compile_commands_original.json >> compile_commands.json
|
||||
- name: clang-tidy on ApplicationLibCode/Application
|
||||
- name: Run clang-tidy and apply fixes, clang-format after fixes
|
||||
run: |
|
||||
cd build
|
||||
run-clang-tidy -fix files ApplicationLibCode/Application
|
||||
- name: clang-tidy on ApplicationLibCode/ProjectDataModel
|
||||
run-clang-tidy-15 -fix files ApplicationLibCode/Application ApplicationLibCode/ProjectDataModel ApplicationLibCode/ReservoirDataModel ApplicationLibCode/Commands ApplicationLibCode/GeoMech
|
||||
- name: Run clang-format after clang-tidy
|
||||
run: |
|
||||
cd build
|
||||
run-clang-tidy -fix files ApplicationLibCode/ProjectDataModel
|
||||
- name: clang-tidy on ApplicationLibCode/ReservoirDataModel
|
||||
run: |
|
||||
cd build
|
||||
run-clang-tidy -fix files ApplicationLibCode/ReservoirDataModel
|
||||
- name: clang-tidy on ApplicationLibCode/Commands
|
||||
run: |
|
||||
cd build
|
||||
run-clang-tidy -fix files ApplicationLibCode/Commands
|
||||
- name: clang-tidy on ApplicationLibCode/GeoMech
|
||||
run: |
|
||||
cd build
|
||||
run-clang-tidy -fix files ApplicationLibCode/GeoMech
|
||||
cd build/ApplicationLibCode
|
||||
find -name '*.h' -o -name '*.cpp' -o -name '*.inl' | xargs clang-format-15 -i
|
||||
- name: Remove Qt before creating PR
|
||||
run: |
|
||||
rm -rf Qt
|
||||
cd ThirdParty/vcpkg
|
||||
git reset --hard HEAD
|
||||
git clean -fxd
|
||||
- uses: peter-evans/create-pull-request@v4
|
||||
- uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
commit-message: "Fixes by clang-tidy"
|
||||
|
||||
20
.github/workflows/close-label.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
name: Set label 'PendingRelease' on closed issues
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- closed
|
||||
jobs:
|
||||
label_issues:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
steps:
|
||||
- uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
github.rest.issues.addLabels({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
labels: ["PendingRelease"]
|
||||
})
|
||||
2
.github/workflows/cmake-format.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
||||
cd ..
|
||||
|
||||
git diff
|
||||
- uses: peter-evans/create-pull-request@v4
|
||||
- uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
commit-message: "Fixes by cmake-format"
|
||||
|
||||
4
.github/workflows/python-linting.yml
vendored
@@ -8,12 +8,14 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.10'
|
||||
- name: (Python) Use black to do linting
|
||||
run: |
|
||||
pip install black
|
||||
cd GrpcInterface
|
||||
black .
|
||||
- uses: peter-evans/create-pull-request@v4
|
||||
- uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
commit-message: "Python code linting changes detected by black"
|
||||
|
||||
2
.github/workflows/spell-check.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
||||
- uses: sobolevn/misspell-fixer-action@master
|
||||
with:
|
||||
options: "-rsvnuR ApplicationLibCode/"
|
||||
- uses: peter-evans/create-pull-request@v4
|
||||
- uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
commit-message: "Fixes by misspell-fixer"
|
||||
|
||||
6
.gitmodules
vendored
@@ -16,3 +16,9 @@
|
||||
[submodule "ThirdParty/roffcpp"]
|
||||
path = ThirdParty/roffcpp
|
||||
url = https://github.com/CeetronSolutions/roffcpp
|
||||
[submodule "ThirdParty/openzgy"]
|
||||
path = ThirdParty/openzgy
|
||||
url = https://github.com/CeetronSolutions/openzgy.git
|
||||
[submodule "ThirdParty/regression-analysis"]
|
||||
path = ThirdParty/regression-analysis
|
||||
url = https://github.com/CeetronSolutions/regression-analysis.git
|
||||
|
||||
@@ -256,8 +256,10 @@ endif()
|
||||
|
||||
# According to ivarun rt is needed on OpenSuse, and Fedora. See:
|
||||
# https://github.com/OPM/ResInsight/pull/7
|
||||
#
|
||||
# atomic is needed by openzgy library
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
||||
list(APPEND THIRD_PARTY_LIBRARIES rt)
|
||||
list(APPEND THIRD_PARTY_LIBRARIES rt atomic)
|
||||
endif()
|
||||
|
||||
set(LINK_LIBRARIES
|
||||
@@ -275,9 +277,10 @@ if(RESINSIGHT_ENABLE_GRPC)
|
||||
list(APPEND LINK_LIBRARIES GrpcInterface)
|
||||
endif()
|
||||
|
||||
list(APPEND LINK_LIBRARIES RigGeoMechDataModel)
|
||||
|
||||
if(RESINSIGHT_USE_ODB_API)
|
||||
add_definitions(-DUSE_ODB_API)
|
||||
list(APPEND LINK_LIBRARIES RigGeoMechDataModel)
|
||||
list(APPEND LINK_LIBRARIES RifOdbReader)
|
||||
endif()
|
||||
|
||||
@@ -332,24 +335,53 @@ if(MSVC)
|
||||
endforeach(aDLL)
|
||||
|
||||
foreach(aDLL ${RI_ODB_DLLS})
|
||||
list(APPEND RI_DLL_FILENAMES ${RESINSIGHT_ODB_API_DIR}/lib/${aDLL})
|
||||
list(APPEND RI_FILENAMES ${RESINSIGHT_ODB_API_DIR}/lib/${aDLL})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# OpenVDS Dlls
|
||||
set(OPENVDS_DLL_NAMES openvds segyutils)
|
||||
foreach(OPENVDS_DLL_NAME ${OPENVDS_DLL_NAMES})
|
||||
list(APPEND RI_FILENAMES
|
||||
${RESINSIGHT_OPENVDS_API_DIR}/bin/msvc_141/${OPENVDS_DLL_NAME}.dll
|
||||
)
|
||||
endforeach(OPENVDS_DLL_NAME)
|
||||
list(APPEND RI_FILENAMES
|
||||
${RESINSIGHT_OPENVDS_API_DIR}/bin/msvc_141/SEGYImport.exe
|
||||
)
|
||||
|
||||
# HDF5 Dlls
|
||||
if(RESINSIGHT_FOUND_HDF5)
|
||||
set(HDF5_DLL_NAMES hdf5 hdf5_cpp szip zlib)
|
||||
foreach(HDF5_DLL_NAME ${HDF5_DLL_NAMES})
|
||||
list(APPEND RI_DLL_FILENAMES
|
||||
${RESINSIGHT_HDF5_DIR}/bin/${HDF5_DLL_NAME}.dll
|
||||
)
|
||||
list(APPEND RI_FILENAMES ${RESINSIGHT_HDF5_DIR}/bin/${HDF5_DLL_NAME}.dll)
|
||||
endforeach(HDF5_DLL_NAME)
|
||||
endif()
|
||||
|
||||
else()
|
||||
# Linux
|
||||
|
||||
# OpenVDS lib files
|
||||
list(APPEND RI_FILENAMES ${RESINSIGHT_OPENVDS_API_DIR}/bin/SEGYImport)
|
||||
|
||||
set(OPENVDS_LIB_NAMES
|
||||
libopenvds.so
|
||||
libopenvds.so.3
|
||||
libopenvds.so.3.2.3
|
||||
libopenvds-968eeb36.so.3.2.3
|
||||
libsegyutils.so
|
||||
libsegyutils.so.3
|
||||
libsegyutils.so.3.2.3
|
||||
)
|
||||
foreach(OPENVDS_LIB_NAME ${OPENVDS_LIB_NAMES})
|
||||
list(APPEND RI_FILENAMES
|
||||
${RESINSIGHT_OPENVDS_API_DIR}/lib64/${OPENVDS_LIB_NAME}
|
||||
)
|
||||
endforeach(OPENVDS_LIB_NAME)
|
||||
endif(MSVC)
|
||||
|
||||
# Copy to target directory
|
||||
foreach(FILE_TO_COPY ${RI_DLL_FILENAMES})
|
||||
# Copy dependencies to make it possible to run ResInsight from the build folder
|
||||
foreach(FILE_TO_COPY ${RI_FILENAMES})
|
||||
add_custom_command(
|
||||
TARGET ResInsight
|
||||
POST_BUILD
|
||||
@@ -503,7 +535,7 @@ if(RESINSIGHT_PRIVATE_INSTALL)
|
||||
CODE "exec_program (\"${CMAKE_COMMAND}\" ARGS -E touch \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}ResInsight${CMAKE_EXECUTABLE_SUFFIX}.local)"
|
||||
)
|
||||
|
||||
set(RESINSIGHT_FILES ${RI_DLL_FILENAMES})
|
||||
set(RESINSIGHT_FILES ${RI_FILENAMES})
|
||||
|
||||
if(WIN32
|
||||
AND TARGET Qt5::qmake
|
||||
|
||||
|
Before Width: | Height: | Size: 337 B |
@@ -2,5 +2,5 @@
|
||||
<!-- Generator: Adobe Illustrator 26.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<polygon points="8,4 8,7 15,7 4,18 6,20 17,9 17,16 20,16 20,4 "/>
|
||||
<polygon stroke="#5F6368" fill="#5F6368" points="8,4 8,7 15,7 4,18 6,20 17,9 17,16 20,16 20,4 "/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 418 B After Width: | Height: | Size: 450 B |
BIN
ApplicationExeCode/Resources/Fullscreen.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
@@ -145,8 +145,6 @@
|
||||
<file>SummaryPlotLight16x16.png</file>
|
||||
<file>SummaryPlots16x16.png</file>
|
||||
<file>SummaryPlotsLight16x16.png</file>
|
||||
<file>SummaryTemplate16x16.png</file>
|
||||
<file>SummaryEnsembleTemplate16x16.png</file>
|
||||
<file>SummaryXPlotLight16x16.png</file>
|
||||
<file>SummaryXPlotsLight16x16.png</file>
|
||||
<file>Swap.png</file>
|
||||
@@ -274,6 +272,13 @@
|
||||
<file>DataVector.svg</file>
|
||||
<file>DataVectorCalculated.svg</file>
|
||||
<file>open-text-editor.svg</file>
|
||||
<file>Seismic16x16.png</file>
|
||||
<file>SeismicDelta16x16.png</file>
|
||||
<file>Fullscreen.png</file>
|
||||
<file>plot-template-standard.svg</file>
|
||||
<file>plot-template-ensemble.svg</file>
|
||||
<file>decline-curve.svg</file>
|
||||
<file>regression-curve.svg</file>
|
||||
</qresource>
|
||||
<qresource prefix="/Shader">
|
||||
<file>fs_CellFace.glsl</file>
|
||||
|
||||
BIN
ApplicationExeCode/Resources/Seismic16x16.png
Normal file
|
After Width: | Height: | Size: 1015 B |
BIN
ApplicationExeCode/Resources/SeismicDelta16x16.png
Normal file
|
After Width: | Height: | Size: 952 B |
|
Before Width: | Height: | Size: 743 B |
|
Before Width: | Height: | Size: 1.0 KiB |
@@ -3,23 +3,24 @@
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st0{fill:none;stroke:#5F6368;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:#5F6368;stroke:#5F6368;stroke-width:0.1;stroke-linecap:round;stroke-linejoin:round;}
|
||||
</style>
|
||||
<path class="st0" d="M4.4,1.6L6,3.3c0.9,0.9,0.9,2.4,0,3.3s-2.4,0.9-3.3,0s-0.9-2.4,0-3.3c0,0,0,0,0,0L4.4,1.6z"/>
|
||||
<path class="st0" d="M12,1.6l1.6,1.6c0.9,0.9,0.9,2.4,0,3.3s-2.4,0.9-3.3,0c-0.9-0.9-0.9-2.4,0-3.3c0,0,0,0,0,0L12,1.6z"/>
|
||||
<path class="st0" d="M19.3,1.6L21,3.3c0.9,0.9,0.9,2.4,0,3.3s-2.4,0.9-3.3,0c-0.9-0.9-0.9-2.4,0-3.3c0,0,0,0,0,0L19.3,1.6z"/>
|
||||
<line class="st0" x1="1.5" y1="9.5" x2="22.2" y2="9.5"/>
|
||||
<line class="st0" x1="1.5" y1="15.1" x2="22.2" y2="15.1"/>
|
||||
<circle cx="4.4" cy="11.4" r="0.5"/>
|
||||
<circle cx="11.9" cy="11.4" r="0.5"/>
|
||||
<circle cx="19.4" cy="11.4" r="0.5"/>
|
||||
<circle cx="4.4" cy="13.5" r="0.5"/>
|
||||
<circle cx="11.9" cy="13.5" r="0.5"/>
|
||||
<circle cx="19.4" cy="13.5" r="0.5"/>
|
||||
<circle cx="8.1" cy="11.3" r="0.5"/>
|
||||
<circle cx="8.1" cy="13.4" r="0.5"/>
|
||||
<circle cx="15.6" cy="11.3" r="0.5"/>
|
||||
<circle cx="15.6" cy="13.4" r="0.5"/>
|
||||
<circle class="st1" cx="4.4" cy="11.4" r="0.5"/>
|
||||
<circle class="st1" cx="11.9" cy="11.4" r="0.5"/>
|
||||
<circle class="st1" cx="19.4" cy="11.4" r="0.5"/>
|
||||
<circle class="st1" cx="4.4" cy="13.5" r="0.5"/>
|
||||
<circle class="st1" cx="11.9" cy="13.5" r="0.5"/>
|
||||
<circle class="st1" cx="19.4" cy="13.5" r="0.5"/>
|
||||
<circle class="st1" cx="8.1" cy="11.3" r="0.5"/>
|
||||
<circle class="st1" cx="8.1" cy="13.4" r="0.5"/>
|
||||
<circle class="st1" cx="15.6" cy="11.3" r="0.5"/>
|
||||
<circle class="st1" cx="15.6" cy="13.4" r="0.5"/>
|
||||
<path class="st0" d="M4.4,17.3L6,18.9c0.9,0.9,0.9,2.4,0,3.3s-2.4,0.9-3.3,0s-0.9-2.4,0-3.3c0,0,0,0,0,0L4.4,17.3z"/>
|
||||
<path class="st0" d="M12,17.3l1.6,1.6c0.9,0.9,0.9,2.4,0,3.3s-2.4,0.9-3.3,0c-0.9-0.9-0.9-2.4,0-3.3c0,0,0,0,0,0L12,17.3z"/>
|
||||
<path class="st0" d="M19.3,17.3l1.6,1.6c0.9,0.9,0.9,2.4,0,3.3s-2.4,0.9-3.3,0c-0.9-0.9-0.9-2.4,0-3.3c0,0,0,0,0,0L19.3,17.3z"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.9 KiB |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-box"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#5F6368" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-box"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 463 B After Width: | Height: | Size: 458 B |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-divide-square"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="8" y1="12" x2="16" y2="12"></line><line x1="12" y1="16" x2="12" y2="16"></line><line x1="12" y1="8" x2="12" y2="8"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#5F6368" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-divide-square"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="8" y1="12" x2="16" y2="12"></line><line x1="12" y1="16" x2="12" y2="16"></line><line x1="12" y1="8" x2="12" y2="8"></line></svg>
|
||||
|
Before Width: | Height: | Size: 419 B After Width: | Height: | Size: 414 B |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-triangle"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#5F6368" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-triangle"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 425 B After Width: | Height: | Size: 420 B |
@@ -3,8 +3,8 @@
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st0{fill:none;stroke:#5F6368;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:none;stroke:#5F6368;stroke-linecap:round;stroke-linejoin:round;}
|
||||
</style>
|
||||
<path class="st0" d="M21,16V8c0-0.7-0.4-1.4-1-1.7l-7-4c-0.6-0.4-1.4-0.4-2,0l-7,4C3.4,6.6,3,7.3,3,8v8c0,0.7,0.4,1.4,1,1.7l7,4
|
||||
c0.6,0.4,1.4,0.4,2,0l7-4C20.6,17.4,21,16.7,21,16z"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-grid"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#5F6368" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-grid"><rect x="3" y="3" width="7" height="7"></rect><rect x="14" y="3" width="7" height="7"></rect><rect x="14" y="14" width="7" height="7"></rect><rect x="3" y="14" width="7" height="7"></rect></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 405 B After Width: | Height: | Size: 400 B |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-circle"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#5F6368" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-circle"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 357 B After Width: | Height: | Size: 352 B |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-more-horizontal"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#5F6368" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-more-horizontal"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 339 B |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-share-2"><circle cx="18" cy="5" r="3"></circle><circle cx="6" cy="12" r="3"></circle><circle cx="18" cy="19" r="3"></circle><line x1="8.59" y1="13.51" x2="15.42" y2="17.49"></line><line x1="15.41" y1="6.51" x2="8.59" y2="10.49"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#5F6368" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-share-2"><circle cx="18" cy="5" r="3"></circle><circle cx="6" cy="12" r="3"></circle><circle cx="18" cy="19" r="3"></circle><line x1="8.59" y1="13.51" x2="15.42" y2="17.49"></line><line x1="15.41" y1="6.51" x2="8.59" y2="10.49"></line></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 446 B After Width: | Height: | Size: 441 B |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-folder-plus"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path><line x1="12" y1="11" x2="12" y2="17"></line><line x1="9" y1="14" x2="15" y2="14"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#5F6368" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-folder-plus"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path><line x1="12" y1="11" x2="12" y2="17"></line><line x1="9" y1="14" x2="15" y2="14"></line></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 401 B |
@@ -3,8 +3,8 @@
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st0{fill:none;stroke:#5F6368;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:none;stroke:#5F6368;stroke-linecap:round;stroke-linejoin:round;}
|
||||
</style>
|
||||
<path class="st0" d="M14.6,17.8c0.7,0.4,1,0.9,1,1.4c0,1.3-2.7,2.4-6,2.4s-6-1.1-6-2.4c0-0.6,0.4-1.1,1.2-1.5"/>
|
||||
<path class="st0" d="M15.5,8.7c0,4.6-5.9,8.5-5.9,8.5s-5.9-4-5.9-8.5c0-3.2,2.6-5.9,5.9-5.9S15.5,5.4,15.5,8.7z"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -3,7 +3,7 @@
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st0{fill:none;stroke:#5F6368;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
||||
</style>
|
||||
<path class="st0" d="M18.8,16.7c0.9,0.5,1.4,1.2,1.4,1.9c0,1.8-3.7,3.3-8.2,3.3s-8.2-1.5-8.2-3.3c0-0.8,0.6-1.5,1.7-2"/>
|
||||
<path class="st0" d="M17.9,9c0,4.6-5.9,8.5-5.9,8.5S6.1,13.5,6.1,9c0-3.2,2.6-5.9,5.9-5.9S17.9,5.7,17.9,9z"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 745 B After Width: | Height: | Size: 745 B |
@@ -4,11 +4,11 @@
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{opacity:0.97;}
|
||||
.st1{fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st2{fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.7582,1.7582;}
|
||||
.st3{fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.3703,2.3703;}
|
||||
.st1{fill:none;stroke:#5F6368;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st2{fill:none;stroke:#5F6368;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.7582,1.7582;}
|
||||
.st3{fill:none;stroke:#5F6368;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.3703,2.3703;}
|
||||
</style>
|
||||
<path d="M12,2.4c-5.3,0-9.6,4.3-9.6,9.6s4.3,9.6,9.6,9.6s9.6-4.3,9.6-9.6c0,0-9.6,0-9.6,0V2.4z"/>
|
||||
<path stroke="#5F6368" fill="#5F6368" d="M12,2.4c-5.3,0-9.6,4.3-9.6,9.6s4.3,9.6,9.6,9.6s9.6-4.3,9.6-9.6c0,0-9.6,0-9.6,0V2.4z"/>
|
||||
<g class="st0">
|
||||
<g>
|
||||
<path class="st1" d="M14.3,0.6c0.3,0,0.7,0,1,0.1"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#5F6368" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-help-circle"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 366 B After Width: | Height: | Size: 361 B |
@@ -3,23 +3,23 @@
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:none;stroke:#000000;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st0{fill:none;stroke:#5F6368;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:none;stroke:#5F6368;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;}
|
||||
</style>
|
||||
<line class="st0" x1="6.1" y1="20.7" x2="10" y2="8.9"/>
|
||||
<line class="st0" x1="13.9" y1="8.9" x2="17.8" y2="20.8"/>
|
||||
<line class="st0" x1="12" y1="5.8" x2="12" y2="22.6"/>
|
||||
<line class="st1" x1="6.8" y1="18.5" x2="17.6" y2="20.2"/>
|
||||
<line class="st1" x1="9.4" y1="10.7" x2="15" y2="12.3"/>
|
||||
<path d="M3.7,13.6"/>
|
||||
<path d="M12.5,10.2h-1c-0.9,0-2.8-1.7-2.9-1.7V7.3c0-0.3,0.2-0.5,0.5-0.5H15c0.3,0,0.5,0.2,0.5,0.5v1.2
|
||||
<path stroke="#5F6368" fill="#5F6368"d="M3.7,13.6"/>
|
||||
<path stroke="#5F6368" fill="#5F6368" d="M12.5,10.2h-1c-0.9,0-2.8-1.7-2.9-1.7V7.3c0-0.3,0.2-0.5,0.5-0.5H15c0.3,0,0.5,0.2,0.5,0.5v1.2
|
||||
C15.5,8.5,13.4,10.2,12.5,10.2z"/>
|
||||
<path d="M16.5,16.1H7.4c-0.4,0-0.7-0.3-0.7-0.7v-0.2c0-0.4,0.3-0.7,0.7-0.7h9.1c0.4,0,0.7,0.3,0.7,0.7v0.2
|
||||
<path stroke="#5F6368" fill="#5F6368" d="M16.5,16.1H7.4c-0.4,0-0.7-0.3-0.7-0.7v-0.2c0-0.4,0.3-0.7,0.7-0.7h9.1c0.4,0,0.7,0.3,0.7,0.7v0.2
|
||||
C17.2,15.8,16.9,16.1,16.5,16.1z"/>
|
||||
<line class="st1" x1="8.2" y1="14.5" x2="15" y2="12.3"/>
|
||||
<line class="st1" x1="6.8" y1="18.5" x2="16.3" y2="16.1"/>
|
||||
<path d="M14.3,4.1c0,0.7-0.5,0.2-1,0.4c-0.6,0.3-0.7,0.6-1,0.5c-0.2,0,0.4-1.2,0.9-1.3C13.8,3.5,14.3,3.8,14.3,4.1z"/>
|
||||
<path d="M16.4,1.5c-0.1,0.9-0.9,0.3-1.8,0.5c-1.2,0.3-1.3,0.8-1.8,0.7c-0.4-0.1,0.9-1.6,1.8-1.8C15.6,0.6,16.4,1.1,16.4,1.5z"/>
|
||||
<path d="M9.9,3.4c0,0.7,0.5,0.2,1,0.4c0.6,0.3,0.7,0.6,1,0.5c0.2,0-0.4-1.2-0.9-1.3C10.3,2.9,9.8,3.2,9.9,3.4z"/>
|
||||
<path d="M8.5,1.3c0,0.9,0.8,0.3,1.5,0.6c1,0.3,1.1,0.8,1.5,0.7c0.3-0.1-0.6-1.5-1.4-1.8C9.2,0.6,8.5,1,8.5,1.3z"/>
|
||||
<path stroke="#5F6368" fill="#5F6368" d="M14.3,4.1c0,0.7-0.5,0.2-1,0.4c-0.6,0.3-0.7,0.6-1,0.5c-0.2,0,0.4-1.2,0.9-1.3C13.8,3.5,14.3,3.8,14.3,4.1z"/>
|
||||
<path stroke="#5F6368" fill="#5F6368" d="M16.4,1.5c-0.1,0.9-0.9,0.3-1.8,0.5c-1.2,0.3-1.3,0.8-1.8,0.7c-0.4-0.1,0.9-1.6,1.8-1.8C15.6,0.6,16.4,1.1,16.4,1.5z"/>
|
||||
<path stroke="#5F6368" fill="#5F6368" d="M9.9,3.4c0,0.7,0.5,0.2,1,0.4c0.6,0.3,0.7,0.6,1,0.5c0.2,0-0.4-1.2-0.9-1.3C10.3,2.9,9.8,3.2,9.9,3.4z"/>
|
||||
<path stroke="#5F6368" fill="#5F6368" d="M8.5,1.3c0,0.9,0.8,0.3,1.5,0.6c1,0.3,1.1,0.8,1.5,0.7c0.3-0.1-0.6-1.5-1.4-1.8C9.2,0.6,8.5,1,8.5,1.3z"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.9 KiB |
@@ -3,9 +3,9 @@
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st2{fill:none;stroke:#000000;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st0{fill:none;stroke:#5F6368;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st1{fill:none;stroke:#5F6368;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st2{fill:none;stroke:#5F6368;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;}
|
||||
</style>
|
||||
<line class="st0" x1="6.1" y1="20.7" x2="12" y2="8.9"/>
|
||||
<line class="st0" x1="12" y1="8.9" x2="17.8" y2="20.8"/>
|
||||
@@ -13,7 +13,7 @@
|
||||
<line class="st0" x1="7.7" y1="17.6" x2="16.2" y2="17.6"/>
|
||||
<line class="st0" x1="9.6" y1="13.7" x2="14.4" y2="13.7"/>
|
||||
<line class="st1" x1="7.1" y1="6.2" x2="22.1" y2="14"/>
|
||||
<path d="M6.6,11.5l-2.9,2.1c-0.5,0.3-1.1,0-1-0.6L3,9.4l4.3-7.6c0,0,1.7-0.5,2.5,0c0.7,0.4,1.1,2.1,1.1,2.1L6.6,11.5z"/>
|
||||
<rect x="20.7" y="17.6" width="2.6" height="3.5"/>
|
||||
<path stroke="#5F6368" fill="#5F6368" d="M6.6,11.5l-2.9,2.1c-0.5,0.3-1.1,0-1-0.6L3,9.4l4.3-7.6c0,0,1.7-0.5,2.5,0c0.7,0.4,1.1,2.1,1.1,2.1L6.6,11.5z"/>
|
||||
<rect stroke="#5F6368" fill="#5F6368" x="20.7" y="17.6" width="2.6" height="3.5"/>
|
||||
<line class="st2" x1="22" y1="14" x2="22" y2="19.4"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13 3.5C13 2.119 10.761 1 8 1C5.239 1 3 2.119 3 3.5C3 3.54 3.02 3.577 3.024 3.617H3V12.489L3.056 12.846C3.336 14.056 5.429 15 8 15C10.571 15 12.664 14.056 12.944 12.846L13 12.489V3.617H12.976C12.98 3.577 13 3.54 13 3.5ZM8 2.032C10.442 2.032 12 2.996 12 3.5C12 4.004 10.442 4.968 8 4.968C5.558 4.968 4 4 4 3.5C4 3 5.558 2.032 8 2.032ZM12 12.49L11.97 12.621C11.855 13.116 10.431 14 8 14C5.569 14 4.145 13.116 4.03 12.621L4 12.49V4.99C5.21092 5.69833 6.59796 6.04855 8 6C9.40243 6.04734 10.7895 5.69572 12 4.986V12.486V12.49Z" fill="#424242"/>
|
||||
<path d="M13 3.5C13 2.119 10.761 1 8 1C5.239 1 3 2.119 3 3.5C3 3.54 3.02 3.577 3.024 3.617H3V12.489L3.056 12.846C3.336 14.056 5.429 15 8 15C10.571 15 12.664 14.056 12.944 12.846L13 12.489V3.617H12.976C12.98 3.577 13 3.54 13 3.5ZM8 2.032C10.442 2.032 12 2.996 12 3.5C12 4.004 10.442 4.968 8 4.968C5.558 4.968 4 4 4 3.5C4 3 5.558 2.032 8 2.032ZM12 12.49L11.97 12.621C11.855 13.116 10.431 14 8 14C5.569 14 4.145 13.116 4.03 12.621L4 12.49V4.99C5.21092 5.69833 6.59796 6.04855 8 6C9.40243 6.04734 10.7895 5.69572 12 4.986V12.486V12.49Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 653 B After Width: | Height: | Size: 653 B |
83
ApplicationExeCode/Resources/decline-curve.svg
Normal file
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 24 24"
|
||||
style="enable-background:new 0 0 24 24;"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="decline-curve.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs36"><rect
|
||||
x="3.3651412"
|
||||
y="2.1265823"
|
||||
width="18.835443"
|
||||
height="19.793574"
|
||||
id="rect250" /></defs><sodipodi:namedview
|
||||
id="namedview34"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="42.791667"
|
||||
inkscape:cx="7.8169425"
|
||||
inkscape:cy="11.731256"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1369"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" />
|
||||
<style
|
||||
type="text/css"
|
||||
id="style20">
|
||||
.st0{fill:url(#SVGID_1_);stroke:#8F9090;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
.st1{fill:none;stroke:#8DC584;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<linearGradient
|
||||
id="SVGID_1_"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1.1804"
|
||||
y1="12.4846"
|
||||
x2="22.8196"
|
||||
y2="12.4846">
|
||||
<stop
|
||||
offset="1.118836e-07"
|
||||
style="stop-color:#9D9D9C"
|
||||
id="stop22" />
|
||||
<stop
|
||||
offset="0.5652"
|
||||
style="stop-color:#CECECE"
|
||||
id="stop24" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#5C5C5B"
|
||||
id="stop26" />
|
||||
</linearGradient>
|
||||
|
||||
<path
|
||||
class="st1"
|
||||
d="M -0.00605706,15.819399"
|
||||
id="path31"
|
||||
style="stroke:#bd0733;stroke-opacity:1;stroke-width:1.98604205;stroke-dasharray:none" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bd0733;stroke-width:1.565;stroke-miterlimit:3.4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
d="m 2.4077345,0.80063714 3.81634,8.62890286 5.4896595,4.489577 9.570206,3.94828"
|
||||
id="path4987" /><path
|
||||
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bd0733;stroke-width:1.465;stroke-miterlimit:3.4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
d="M 4.700913,5.9856087 C 4.637569,6.0857332 4.5585215,6.1779002 4.5108819,6.2859813 c -0.051071,0.1158674 0.025688,0.1399555 0.053646,0.2353594 0.017368,0.059267 0.01643,0.1222573 0.026823,0.1830572 0.02173,0.1271177 -0.01461,0.2640694 0,0.3922657 0.014935,0.1310479 0.04141,0.2610464 0.053646,0.3922658 0.048669,0.521948 0.048905,1.0459338 0.080469,1.5690624 0.03245,0.5378441 0.1713768,1.0952752 0.2682293,1.6213642 0.1219286,0.662301 0.1819265,1.447159 0.4559901,2.065933 0.08573,0.193562 0.2197557,0.363325 0.3218754,0.549173 0.032154,0.05851 0.050016,0.123679 0.080469,0.183057 0.023315,0.04547 0.065488,0.08207 0.080469,0.130755 0.012846,0.04175 -0.00494,0.08743 0,0.130755 0.01951,0.171195 0.028787,0.04125 0.080469,0.209209 0.015627,0.05078 0.00963,0.1066 0.026823,0.156906 0.036756,0.107507 0.093932,0.207478 0.1341147,0.313812 0.022503,0.05954 0.02671,0.125285 0.053646,0.183058 0.018499,0.03968 0.062313,0.06477 0.080469,0.104608 0.018516,0.04062 0.010812,0.08913 0.026823,0.130755 0.011317,0.02943 0.03923,0.05035 0.053646,0.07846 0.021533,0.04199 0.03004,0.08984 0.053646,0.130755 0.123227,0.213582 0.2781483,0.415727 0.4023441,0.627625 0.028056,0.04786 0.019717,0.112801 0.053646,0.156906 0.011996,0.0156 0.042556,0.01 0.053646,0.02615 0.053416,0.07812 0.067443,0.176041 0.1072916,0.261511 0.073304,0.157229 0.1639831,0.319751 0.2414065,0.470718 0.021533,0.04199 0.028874,0.09051 0.053646,0.130755 0.029455,0.04786 0.077837,0.0829 0.1072916,0.130756 0.024772,0.04025 0.029758,0.08999 0.053646,0.130755 0.035633,0.0608 0.1177174,0.100726 0.1609377,0.156906 0.188053,0.244457 0.3947491,0.511867 0.6437506,0.706079 0.1090581,0.08506 0.2111754,0.17849 0.3218753,0.26151 0.070868,0.05315 0.2034612,0.09376 0.2682295,0.156907 0.014136,0.01379 0.012685,0.03852 0.026823,0.0523 0.066825,0.06515 0.1647891,0.107104 0.2414065,0.156906 0.1495494,0.0972 0.2685552,0.235518 0.429166,0.313812 0.1569328,0.0765 0.3218278,0.120276 0.4828142,0.183058 0.2988,0.116525 0.577056,0.265986 0.885156,0.366114 0.104921,0.0341 0.218324,0.04059 0.321876,0.07846 0.123202,0.04504 0.209522,0.123309 0.321875,0.183057 0.118556,0.06305 0.255475,0.09839 0.375522,0.156907 0.02262,0.01108 0.03102,0.04127 0.05365,0.0523 0.02529,0.01233 0.05365,0.01744 0.08047,0.02615 0.03577,0.02615 0.06731,0.05896 0.107296,0.07846 0.197301,0.09618 0.411981,0.134277 0.616928,0.209208 0.06984,0.02554 0.08222,0.05926 0.160938,0.07846 0.07997,0.01949 0.164871,0.02246 0.241406,0.0523 0.05987,0.02334 0.101419,0.08043 0.160938,0.104609 0.05021,0.0204 0.108846,0.01097 0.160938,0.02615 0.07668,-0.04755 0.09227,0.05806 0.134114,0.07846 0.09314,0.04541 0.361754,0.177092 0.375521,0.183057 0.15118,0.06551 0.329875,0.07484 0.482813,0.130755 0.03019,0.01108 0.05365,0.03487 0.08047,0.0523 0.08941,0.02615 0.17767,0.05638 0.26823,0.07846 0.169084,0.04121 0.342197,0.08995 0.509635,0.130755 0.08109,0.01976 0.115289,-0.0029 0.214584,0.02615 0.159612,0.04669 0.317757,0.09858 0.482812,0.130756 0.0526,0.01029 0.107836,-0.0074 0.160938,0 0.459431,0.06399 -0.427927,-0.01818 0.295053,0.0523 0.02669,0.0026 0.05468,-0.0072 0.08047,0 0.105575,0.02941 0.216432,0.09649 0.321875,0.130755 0.05684,0.01848 0.161249,0.0263 0.214584,0.05231 0.01136,0.0055 0.01471,0.0226 0.02682,0.02615 0.372467,0.108939 0.750049,0.161396 1.126563,0.26151 0.154563,0.0411 0.299894,0.116323 0.455991,0.156907 0.06109,0.01588 0.126157,0.01229 0.18776,0.02615 0.129799,0.02921 0.175355,0.0523 0.295052,0.0523"
|
||||
id="path11967" /><path
|
||||
style="fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#bd0733;stroke-width:1.365;stroke-miterlimit:3.4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
d="m 4.1142342,4.6591036 c 0.7162731,0.3603528 0.3547182,0.096268 0.6917,0.4500807 0.060227,0.063236 0.1314934,0.1164444 0.1877606,0.1830573 0.3092215,0.3660775 0.5492063,0.7846792 0.8583342,1.1506459 0.056267,0.066613 0.127533,0.1198216 0.1877606,0.1830573 0.2314472,0.2430074 0.08879,0.1322094 0.3486983,0.3661146 0.1287487,0.1158681 0.2786617,0.2193789 0.4023441,0.339964 0.045591,0.044449 0.066017,0.1086147 0.1072916,0.156906 0.1235958,0.1445999 0.35606,0.326915 0.5096358,0.4184161 0.065183,0.038842 0.148257,0.041505 0.2145835,0.078456 0.06063,0.033784 0.1044623,0.09071 0.1609377,0.1307562 0.3349201,0.2374762 0.7593845,0.4678622 1.1533866,0.601473 0.3228228,0.1094764 0.6730628,0.1396649 0.9924492,0.2615112 0.3681446,0.1404482 0.7257936,0.3177567 1.0997406,0.444567 0.192644,0.06533 0.423003,0.09936 0.616927,0.1569072 0.390938,0.1160003 0.213279,0.095712 0.616928,0.235359 0.167892,0.058079 0.341867,0.098487 0.509637,0.156906 0.08293,0.028872 0.157867,0.077461 0.241406,0.1046089 0.291747,0.09482 0.03668,-0.04749 0.295052,0.07846 0.217191,0.105873 0.423964,0.238462 0.64375,0.339964 0.174056,0.08038 0.35696,0.141152 0.53646,0.209208 0.26904,0.102002 0.578063,0.171066 0.858334,0.235361 0.05294,0.01214 0.10896,0.01052 0.160937,0.02615 0.06508,0.01953 0.123163,0.05746 0.187761,0.07846 0.06995,0.02273 0.143055,0.03487 0.214584,0.0523 0.116233,0.03487 0.234276,0.06445 0.348697,0.10461 0.109363,0.03838 0.210293,0.09902 0.321876,0.130755 0.183491,0.05218 0.377852,0.05941 0.563282,0.104608 0.457244,0.111446 0.920729,0.220769 1.36797,0.366116 0.266491,0.0866 -0.0031,0.01159 0.295053,0.156906 0.178495,0.08702 0.497598,0.229223 0.697396,0.287661 0.04366,0.01277 0.09142,0.01052 0.134115,0.02615 0.07031,-0.02292 0.06578,0.06226 0.107296,0.07846 0.115291,0.04496 0.235516,0.07558 0.348699,0.130756 0.01136,0.0055 0.01788,0.01744 0.02682,0.02615 0.03577,0.01743 0.07089,0.03617 0.107296,0.0523 0.135046,0.05985 0.302484,0.10895 0.429167,0.183057 0.02168,0.01269 0.03102,0.04127 0.05365,0.0523 0.016,0.0078 0.03668,-0.0055 0.05365,0 0.04646,0.0151 0.09108,0.08363 0.134115,0.104608 0.03298,0.01607 0.07277,0.01353 0.107297,0.02615 0.114998,0.04204 0.229542,0.101711 0.348697,0.130755 0.17801,0.04339 0.381906,0.0302 0.563282,0.05231 0.08635,0.01052 0.02598,0.02574 0.08047,0.0523 0.100512,0.04899 0.198343,0.04174 0.295051,0.104608"
|
||||
id="path11973" /></svg>
|
||||
|
After Width: | Height: | Size: 8.4 KiB |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.23 1H11.77L3.52002 9.25L3.35999 9.46997L1 13.59L2.41003 15L6.53003 12.64L6.75 12.48L15 4.22998V2.77002L13.23 1ZM2.41003 13.59L3.92004 10.59L5.37 12.04L2.41003 13.59ZM6.23999 11.53L4.46997 9.76001L12.47 1.76001L14.24 3.53003L6.23999 11.53Z" fill="#424242"/>
|
||||
<path d="M13.23 1H11.77L3.52002 9.25L3.35999 9.46997L1 13.59L2.41003 15L6.53003 12.64L6.75 12.48L15 4.22998V2.77002L13.23 1ZM2.41003 13.59L3.92004 10.59L5.37 12.04L2.41003 13.59ZM6.23999 11.53L4.46997 9.76001L12.47 1.76001L14.24 3.53003L6.23999 11.53Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 373 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 14H15V13H2V0H1V13.5L1.5 14ZM3 11.5V3.5L3.5 3H5.5L6 3.5V11.5L5.5 12H3.5L3 11.5ZM5 11V4H4V11H5ZM11 1.5V11.5L11.5 12H13.5L14 11.5V1.5L13.5 1H11.5L11 1.5ZM13 2V11H12V2H13ZM7 11.5V5.5L7.5 5H9.5L10 5.5V11.5L9.5 12H7.5L7 11.5ZM9 11V6H8V11H9Z" fill="#424242"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 14H15V13H2V0H1V13.5L1.5 14ZM3 11.5V3.5L3.5 3H5.5L6 3.5V11.5L5.5 12H3.5L3 11.5ZM5 11V4H4V11H5ZM11 1.5V11.5L11.5 12H13.5L14 11.5V1.5L13.5 1H11.5L11 1.5ZM13 2V11H12V2H13ZM7 11.5V5.5L7.5 5H9.5L10 5.5V11.5L9.5 12H7.5L7 11.5ZM9 11V6H8V11H9Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 410 B After Width: | Height: | Size: 410 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 11.29L5 10.29V11.71L3.85 12.85L3 12.5V10H1.5L1 9.5V1.5L1.5 1H13.5L14 1.5V6H13V2H2V9H3.5L4 9.5V11.29ZM10.29 13L12.15 14.85L13 14.5V13H14.5L15 12.5V7.5L14.5 7H6.5L6 7.5V12.5L6.5 13H10.29ZM10.5 12H7V8H14V12H12.5L12 12.5V13.29L10.85 12.15L10.5 12Z" fill="#424242"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 11.29L5 10.29V11.71L3.85 12.85L3 12.5V10H1.5L1 9.5V1.5L1.5 1H13.5L14 1.5V6H13V2H2V9H3.5L4 9.5V11.29ZM10.29 13L12.15 14.85L13 14.5V13H14.5L15 12.5V7.5L14.5 7H6.5L6 7.5V12.5L6.5 13H10.29ZM10.5 12H7V8H14V12H12.5L12 12.5V13.29L10.85 12.15L10.5 12Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 417 B After Width: | Height: | Size: 417 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M15 6.49999L14.5302 5.99999H7V1.4698L6.5302 1H1.4698L1 1.4698V9.53019L1.4698 9.99999H4V14.5302L4.4698 15H14.5302L15 14.5302V6.49999ZM2 8.99999V3H6V8.99999H2ZM14 14H5V9.99999H6.5302L7 9.53019V8.01341H14V14Z" fill="#424242"/>
|
||||
<path d="M15 6.49999L14.5302 5.99999H7V1.4698L6.5302 1H1.4698L1 1.4698V9.53019L1.4698 9.99999H4V14.5302L4.4698 15H14.5302L15 14.5302V6.49999ZM2 8.99999V3H6V8.99999H2ZM14 14H5V9.99999H6.5302L7 9.53019V8.01341H14V14Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 336 B |
84
ApplicationExeCode/Resources/plot-template-ensemble.svg
Normal file
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 24 24"
|
||||
style="enable-background:new 0 0 24 24;"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="plot-template-ensemble.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs36"><rect
|
||||
x="3.3651412"
|
||||
y="2.1265823"
|
||||
width="18.835443"
|
||||
height="19.793574"
|
||||
id="rect250" /></defs><sodipodi:namedview
|
||||
id="namedview34"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="42.791667"
|
||||
inkscape:cx="8.5881207"
|
||||
inkscape:cy="11.684518"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1369"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" />
|
||||
<style
|
||||
type="text/css"
|
||||
id="style20">
|
||||
.st0{fill:url(#SVGID_1_);stroke:#8F9090;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
.st1{fill:none;stroke:#8DC584;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<linearGradient
|
||||
id="SVGID_1_"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1.1804"
|
||||
y1="12.4846"
|
||||
x2="22.8196"
|
||||
y2="12.4846">
|
||||
<stop
|
||||
offset="1.118836e-07"
|
||||
style="stop-color:#9D9D9C"
|
||||
id="stop22" />
|
||||
<stop
|
||||
offset="0.5652"
|
||||
style="stop-color:#CECECE"
|
||||
id="stop24" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#5C5C5B"
|
||||
id="stop26" />
|
||||
</linearGradient>
|
||||
|
||||
<path
|
||||
class="st1"
|
||||
d="M1.72,17.75"
|
||||
id="path31" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:24.1697px;fill:#5F6368;stroke-width:13.7989"
|
||||
x="3.2187378"
|
||||
y="21.453714"
|
||||
id="text320"
|
||||
transform="scale(1.0556178,0.94731255)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan318"
|
||||
x="3.2187378"
|
||||
y="21.453714"
|
||||
style="stroke-width:13.7989">E</tspan></text></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
84
ApplicationExeCode/Resources/plot-template-standard.svg
Normal file
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 24 24"
|
||||
style="enable-background:new 0 0 24 24;"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="plot-template-standard.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs36"><rect
|
||||
x="3.3651412"
|
||||
y="2.1265823"
|
||||
width="18.835443"
|
||||
height="19.793574"
|
||||
id="rect250" /></defs><sodipodi:namedview
|
||||
id="namedview34"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="42.791667"
|
||||
inkscape:cx="5.1996105"
|
||||
inkscape:cy="12.36222"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1369"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" />
|
||||
<style
|
||||
type="text/css"
|
||||
id="style20">
|
||||
.st0{fill:url(#SVGID_1_);stroke:#8F9090;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
.st1{fill:none;stroke:#8DC584;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<linearGradient
|
||||
id="SVGID_1_"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1.1804"
|
||||
y1="12.4846"
|
||||
x2="22.8196"
|
||||
y2="12.4846">
|
||||
<stop
|
||||
offset="1.118836e-07"
|
||||
style="stop-color:#9D9D9C"
|
||||
id="stop22" />
|
||||
<stop
|
||||
offset="0.5652"
|
||||
style="stop-color:#CECECE"
|
||||
id="stop24" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#5C5C5B"
|
||||
id="stop26" />
|
||||
</linearGradient>
|
||||
|
||||
<path
|
||||
class="st1"
|
||||
d="M1.72,17.75"
|
||||
id="path31" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:22.7244px;fill:#5F6368;stroke-width:12.9737"
|
||||
x="4.0029178"
|
||||
y="21.346537"
|
||||
id="text348"
|
||||
transform="scale(1.09047,0.91703578)"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan346"
|
||||
x="4.0029178"
|
||||
y="21.346537"
|
||||
style="stroke-width:12.9737">T</tspan></text></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 14H15V13H2V0H1V13.5L1.5 14ZM3 11.5V3.5L3.5 3H5.5L6 3.5V11.5L5.5 12H3.5L3 11.5ZM5 11V4H4V11H5ZM11 1.5V11.5L11.5 12H13.5L14 11.5V1.5L13.5 1H11.5L11 1.5ZM13 2V11H12V2H13ZM7 11.5V5.5L7.5 5H9.5L10 5.5V11.5L9.5 12H7.5L7 11.5ZM9 11V6H8V11H9Z" fill="#424242"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 14H15V13H2V0H1V13.5L1.5 14ZM3 11.5V3.5L3.5 3H5.5L6 3.5V11.5L5.5 12H3.5L3 11.5ZM5 11V4H4V11H5ZM11 1.5V11.5L11.5 12H13.5L14 11.5V1.5L13.5 1H11.5L11 1.5ZM13 2V11H12V2H13ZM7 11.5V5.5L7.5 5H9.5L10 5.5V11.5L9.5 12H7.5L7 11.5ZM9 11V6H8V11H9Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 410 B After Width: | Height: | Size: 410 B |
@@ -1,6 +1,6 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12 12.23V3.77L13.13 3H14V2H13L12.69 2.09L11.5 2.9L10.28 2.08L10 2H9V3H9.85L11 3.77V12.23L9.87 13H9V14H10L10.31 13.91L11.5 13.1L12.72 13.92L13 14H14V13H13.15L12 12.23Z" fill="#424242"/>
|
||||
<path d="M1 10.5V5.5L1.5 5H10V6H2V10H10V11H1.5L1 10.5Z" fill="#424242"/>
|
||||
<path d="M13 5H14.5L15 5.5V10.5L14.5 11H13V10H14V6H13V5Z" fill="#424242"/>
|
||||
<path d="M3 7.5V8.5L3.5 9H7.5L8 8.5V7.5L7.5 7H3.5L3 7.5Z" fill="#424242"/>
|
||||
<path d="M12 12.23V3.77L13.13 3H14V2H13L12.69 2.09L11.5 2.9L10.28 2.08L10 2H9V3H9.85L11 3.77V12.23L9.87 13H9V14H10L10.31 13.91L11.5 13.1L12.72 13.92L13 14H14V13H13.15L12 12.23Z" fill="#5F6368"/>
|
||||
<path d="M1 10.5V5.5L1.5 5H10V6H2V10H10V11H1.5L1 10.5Z" fill="#5F6368"/>
|
||||
<path d="M13 5H14.5L15 5.5V10.5L14.5 11H13V10H14V6H13V5Z" fill="#5F6368"/>
|
||||
<path d="M3 7.5V8.5L3.5 9H7.5L8 8.5V7.5L7.5 7H3.5L3 7.5Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 521 B After Width: | Height: | Size: 521 B |
117
ApplicationExeCode/Resources/regression-curve.svg
Normal file
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 24 24"
|
||||
style="enable-background:new 0 0 24 24;"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="regression-curve.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs36"><linearGradient
|
||||
id="linearGradient1188"
|
||||
inkscape:swatch="gradient"><stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop1184" /><stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop1186" /></linearGradient><rect
|
||||
x="3.3651412"
|
||||
y="2.1265823"
|
||||
width="18.835443"
|
||||
height="19.793574"
|
||||
id="rect250" /></defs><sodipodi:namedview
|
||||
id="namedview34"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.5645695"
|
||||
inkscape:cx="-53.076385"
|
||||
inkscape:cy="34.63515"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1369"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" />
|
||||
<style
|
||||
type="text/css"
|
||||
id="style20">
|
||||
.st0{fill:url(#SVGID_1_);stroke:#8F9090;stroke-width:0.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
.st1{fill:none;stroke:#8DC584;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<linearGradient
|
||||
id="SVGID_1_"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="1.1804"
|
||||
y1="12.4846"
|
||||
x2="22.8196"
|
||||
y2="12.4846">
|
||||
<stop
|
||||
offset="1.118836e-07"
|
||||
style="stop-color:#9D9D9C"
|
||||
id="stop22" />
|
||||
<stop
|
||||
offset="0.5652"
|
||||
style="stop-color:#CECECE"
|
||||
id="stop24" />
|
||||
<stop
|
||||
offset="1"
|
||||
style="stop-color:#5C5C5B"
|
||||
id="stop26" />
|
||||
</linearGradient>
|
||||
|
||||
|
||||
<ellipse
|
||||
style="fill:#999999;fill-opacity:1;stroke:#999999;stroke-width:1.428;stroke-miterlimit:3.4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1331"
|
||||
cx="15.38851"
|
||||
cy="2.4771178"
|
||||
rx="1.8812073"
|
||||
ry="1.6592015" /><ellipse
|
||||
style="fill:#999999;fill-opacity:1;stroke:#999999;stroke-width:1.428;stroke-miterlimit:3.4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1331-3"
|
||||
cx="9.4047928"
|
||||
cy="7.4029331"
|
||||
rx="1.8812073"
|
||||
ry="1.6592015" /><ellipse
|
||||
style="fill:#999999;fill-opacity:1;stroke:#999999;stroke-width:1.428;stroke-miterlimit:3.4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1331-4"
|
||||
cx="22.297638"
|
||||
cy="7.4029331"
|
||||
rx="1.8812073"
|
||||
ry="1.6592015" /><ellipse
|
||||
style="fill:#999999;fill-opacity:1;stroke:#999999;stroke-width:1.428;stroke-miterlimit:3.4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1331-2"
|
||||
cx="5.7637262"
|
||||
cy="20.495371"
|
||||
rx="1.8812073"
|
||||
ry="1.6592015" /><ellipse
|
||||
style="fill:#999999;fill-opacity:1;stroke:#999999;stroke-width:1.428;stroke-miterlimit:3.4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1331-1"
|
||||
cx="20.027578"
|
||||
cy="13.672131"
|
||||
rx="1.8812073"
|
||||
ry="1.6592015" /><ellipse
|
||||
style="fill:#999999;fill-opacity:1;stroke:#999999;stroke-width:1.428;stroke-miterlimit:3.4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1331-8"
|
||||
cx="12"
|
||||
cy="19.498796"
|
||||
rx="1.8812073"
|
||||
ry="1.6592015" /><path
|
||||
style="fill:#000000;fill-opacity:1;stroke:#940e44;stroke-width:2.128;stroke-miterlimit:3.4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 2.5576649,21.966894 21.767013,0.63096397"
|
||||
id="path1387" /></svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4.708 5.578L2.061 8.224L4.708 10.87L4 11.578L1 8.578V7.87L4 4.87L4.708 5.578ZM11.708 4.87L11 5.578L13.647 8.224L11 10.87L11.708 11.578L14.708 8.578V7.87L11.708 4.87ZM4.908 13L5.802 13.448L10.802 3.448L9.908 3L4.908 13Z" fill="#424242"/>
|
||||
<path d="M4.708 5.578L2.061 8.224L4.708 10.87L4 11.578L1 8.578V7.87L4 4.87L4.708 5.578ZM11.708 4.87L11 5.578L13.647 8.224L11 10.87L11.708 11.578L14.708 8.578V7.87L11.708 4.87ZM4.908 13L5.802 13.448L10.802 3.448L9.908 3L4.908 13Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 350 B After Width: | Height: | Size: 350 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 1L3 2V14L4 15H12L13 14V2L12 1H4ZM4 3V2H12V14H4V13H6V12H4V10H8V9H4V7H6V6H4V4H8V3H4Z" fill="#424242"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M4 1L3 2V14L4 15H12L13 14V2L12 1H4ZM4 3V2H12V14H4V13H6V12H4V10H8V9H4V7H6V6H4V4H8V3H4Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 256 B After Width: | Height: | Size: 256 B |
@@ -27,39 +27,64 @@ $plotGridColor: #394046; // Plot grid color
|
||||
$auxiliaryCurveColor: #000000; // Auxiliary curve color
|
||||
$externalInputColor: #e82257; // External input background color
|
||||
|
||||
QCheckBox::indicator, QTreeView::indicator, QTableView::indicator, QListWidget::indicator {
|
||||
svg {
|
||||
stroke: white;
|
||||
stroke-width: 2;
|
||||
fill: none;
|
||||
}
|
||||
|
||||
/*
|
||||
*/
|
||||
|
||||
QCheckBox::indicator,
|
||||
QTreeView::indicator,
|
||||
QTableView::indicator,
|
||||
QListWidget::indicator {
|
||||
background-color: $backgroundColor1;
|
||||
border-radius: 3px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
QCheckBox::indicator:unchecked, QTreeView::indicator:unchecked, QTableView::indicator:unchecked, QListWidget::indicator:unchecked
|
||||
{
|
||||
QCheckBox::indicator:unchecked,
|
||||
QTreeView::indicator:unchecked,
|
||||
QTableView::indicator:unchecked,
|
||||
QListWidget::indicator:unchecked {
|
||||
image: url(:/themes/dark/checkbox-unchecked.svg);
|
||||
}
|
||||
|
||||
QCheckBox::indicator:checked, QTreeView::indicator:checked, QTableView::indicator:checked, QListWidget::indicator:checked
|
||||
{
|
||||
QCheckBox::indicator:checked,
|
||||
QTreeView::indicator:checked,
|
||||
QTableView::indicator:checked,
|
||||
QListWidget::indicator:checked {
|
||||
image: url(:/themes/dark/checkbox-checked.svg);
|
||||
}
|
||||
QCheckBox::indicator:indeterminate, QTreeView::indicator:indeterminate, QTableView::indicator:indeterminate, QListWidget::indicator:indeterminate
|
||||
{
|
||||
|
||||
QCheckBox::indicator:indeterminate,
|
||||
QTreeView::indicator:indeterminate,
|
||||
QTableView::indicator:indeterminate,
|
||||
QListWidget::indicator:indeterminate {
|
||||
image: url(:/themes/dark/checkbox-indeterminate.svg);
|
||||
}
|
||||
|
||||
QCheckBox::indicator:unchecked:disabled, QTreeView::indicator:unchecked:disabled, QTableView::indicator:unchecked:disabled, QListWidget::indicator:unchecked:disabled
|
||||
{
|
||||
QCheckBox::indicator:unchecked:disabled,
|
||||
QTreeView::indicator:unchecked:disabled,
|
||||
QTableView::indicator:unchecked:disabled,
|
||||
QListWidget::indicator:unchecked:disabled {
|
||||
image: url(:/themes/dark/checkbox-unchecked-disabled.svg);
|
||||
}
|
||||
|
||||
QCheckBox::indicator:checked:disabled, QTreeView::indicator:checked:disabled, QTableView::indicator:checked:disabled, QListWidget::indicator:checked:disabled
|
||||
{
|
||||
QCheckBox::indicator:checked:disabled,
|
||||
QTreeView::indicator:checked:disabled,
|
||||
QTableView::indicator:checked:disabled,
|
||||
QListWidget::indicator:checked:disabled {
|
||||
image: url(:/themes/dark/checkbox-checked-disabled.svg);
|
||||
}
|
||||
|
||||
QCheckBox::indicator:indeterminate:disabled, QTreeView::indicator:indeterminate:disabled, QTableView::indicator:indeterminate:disabled, QListWidget::indicator:indeterminate:disabled
|
||||
{
|
||||
QCheckBox::indicator:indeterminate:disabled,
|
||||
QTreeView::indicator:indeterminate:disabled,
|
||||
QTableView::indicator:indeterminate:disabled,
|
||||
QListWidget::indicator:indeterminate:disabled {
|
||||
image: url(:/themes/dark/checkbox-indeterminate-disabled.svg);
|
||||
}
|
||||
|
||||
@@ -76,7 +101,7 @@ RiuQwtPlotWidget {
|
||||
}
|
||||
|
||||
QwtPlot QWidget {
|
||||
color: $textColor;
|
||||
color: $textColor;
|
||||
}
|
||||
|
||||
QwtTextLabel {
|
||||
@@ -93,42 +118,42 @@ QwtPlot["PvtPlot"]::curve["Auxiliary"] {
|
||||
|
||||
QwtPlot["PvtPlot"]::curve["Oil"] {
|
||||
line-color: $curveColorOil;
|
||||
symbol-color: $curveColorOil;
|
||||
symbol-color: $curveColorOil;
|
||||
}
|
||||
|
||||
QwtPlot["PvtPlot"]::curve["Gas"] {
|
||||
line-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["KRW"] {
|
||||
line-color: $curveColorWater;
|
||||
symbol-color: $curveColorWater;
|
||||
symbol-color: $curveColorWater;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["KROW"] {
|
||||
line-color: $curveColorWater;
|
||||
symbol-color: $curveColorWater;
|
||||
symbol-color: $curveColorWater;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["PCOW"] {
|
||||
line-color: $tertiaryColor;
|
||||
symbol-color: $tertiaryColor;
|
||||
symbol-color: $tertiaryColor;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["KRG"] {
|
||||
line-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["KROG"] {
|
||||
line-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["PCOG"] {
|
||||
line-color: $senaryColor;
|
||||
symbol-color: $senaryColor;
|
||||
symbol-color: $senaryColor;
|
||||
}
|
||||
|
||||
QwtPlot["PvtPlot"]::lineMarker["*"] {
|
||||
@@ -146,38 +171,52 @@ QToolBox {
|
||||
QToolButton {
|
||||
background-color: $backgroundColor1;
|
||||
color: $textColor;
|
||||
border-width : 0px;
|
||||
border-width: 0px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
padding-bottom: 6px;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
QToolButton:checked {
|
||||
background-color: $backgroundColor3;
|
||||
color: $textColor;
|
||||
border-width : 0px;
|
||||
border-width: 0px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
padding-bottom: 6px;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
|
||||
QLabel {
|
||||
background-color: transparent;
|
||||
color: $textColor;
|
||||
}
|
||||
|
||||
.QWidget, QFrame, QMainWindow, QDialog, QMenu, QLabel, QCheckBox, QTabBar, QDockWidget, QTextEdit, QPlainTextEdit, QScrollArea, QTextBrowser, QGroupBox, QRadioButton {
|
||||
QWidget,
|
||||
QFrame,
|
||||
QMainWindow,
|
||||
QDialog,
|
||||
QMenu,
|
||||
QLabel,
|
||||
QCheckBox,
|
||||
QTabBar,
|
||||
QDockWidget,
|
||||
QTextEdit,
|
||||
QPlainTextEdit,
|
||||
QScrollArea,
|
||||
QTextBrowser,
|
||||
QGroupBox,
|
||||
QRadioButton {
|
||||
background-color: $mainBackgroundColor;
|
||||
color: $textColor;
|
||||
border-color: $borderColor;
|
||||
selection-background-color: $primaryColor;
|
||||
}
|
||||
|
||||
RiuAbstractOverlayContentFrame, RiuDraggableOverlayFrame {
|
||||
background-color: rgba(36,41,46,0.3);
|
||||
RiuAbstractOverlayContentFrame,
|
||||
RiuDraggableOverlayFrame {
|
||||
background-color: rgba(36, 41, 46, 0.3);
|
||||
}
|
||||
|
||||
QProgressBar {
|
||||
@@ -221,8 +260,7 @@ QTreeView::branch:open:has-children:has-siblings {
|
||||
icon-size: 12px;
|
||||
}
|
||||
|
||||
QHeaderView::section
|
||||
{
|
||||
QHeaderView::section {
|
||||
background-color: $backgroundColor1;
|
||||
color: $textColor;
|
||||
padding: 4px;
|
||||
@@ -232,22 +270,22 @@ QTableView QTableCornerButton::section {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
QHeaderView
|
||||
{
|
||||
QHeaderView {
|
||||
background-color: $backgroundColor1;
|
||||
}
|
||||
|
||||
QDockWidget {
|
||||
background-color: $mainBackgroundColor;
|
||||
titlebar-close-icon: url(:/themes/dark/blank.svg);
|
||||
titlebar-normal-icon: url(:/themes/dark/blank.svg);
|
||||
titlebar-close-icon: url(:/themes/dark/blank.svg);
|
||||
titlebar-normal-icon: url(:/themes/dark/blank.svg);
|
||||
}
|
||||
|
||||
QDockWidget::title {
|
||||
background-color: $backgroundColor1;
|
||||
}
|
||||
|
||||
QDockWidget::close-button, QDockWidget::float-button {
|
||||
QDockWidget::close-button,
|
||||
QDockWidget::float-button {
|
||||
background: transparent;
|
||||
border: none;
|
||||
icon-size: 12px;
|
||||
@@ -255,19 +293,19 @@ QDockWidget::close-button, QDockWidget::float-button {
|
||||
}
|
||||
|
||||
QDockWidget::float-button {
|
||||
image: url(:/themes/dark/float.svg);
|
||||
image: url(:/themes/dark/float.svg);
|
||||
}
|
||||
|
||||
QDockWidget::close-button {
|
||||
image: url(:/themes/dark/close.svg);
|
||||
image: url(:/themes/dark/close.svg);
|
||||
}
|
||||
|
||||
QDockWidget::float-button:hover {
|
||||
image: url(:/themes/dark/float-hover.svg);
|
||||
image: url(:/themes/dark/float-hover.svg);
|
||||
}
|
||||
|
||||
QDockWidget::close-button:hover {
|
||||
image: url(:/themes/dark/close-hover.svg);
|
||||
image: url(:/themes/dark/close-hover.svg);
|
||||
}
|
||||
|
||||
QToolBar QWidget {
|
||||
@@ -293,8 +331,12 @@ QMenu::item:selected {
|
||||
color: $textColor;
|
||||
}
|
||||
|
||||
QLineEdit, QComboBox, QSpinBox,
|
||||
QDoubleSpinBox, QDateEdit, QDateTimeEdit {
|
||||
QLineEdit,
|
||||
QComboBox,
|
||||
QSpinBox,
|
||||
QDoubleSpinBox,
|
||||
QDateEdit,
|
||||
QDateTimeEdit {
|
||||
background-color: $inputColor;
|
||||
color: $textColor;
|
||||
padding: 3px;
|
||||
@@ -302,8 +344,12 @@ QDoubleSpinBox, QDateEdit, QDateTimeEdit {
|
||||
selection-background-color: $secondaryColor;
|
||||
}
|
||||
|
||||
QLineEdit:focus, QComboBox:focus, QSpinBox:focus,
|
||||
QDoubleSpinBox:focus, QDateEdit:focus, QDateTimeEdit:focus {
|
||||
QLineEdit:focus,
|
||||
QComboBox:focus,
|
||||
QSpinBox:focus,
|
||||
QDoubleSpinBox:focus,
|
||||
QDateEdit:focus,
|
||||
QDateTimeEdit:focus {
|
||||
border: 2px solid $primaryColor;
|
||||
}
|
||||
|
||||
@@ -324,7 +370,7 @@ QToolBar QToolButton:hover {
|
||||
QLCDNumber {
|
||||
color: $textColor;
|
||||
border-color: $borderColor;
|
||||
border-width : 1.5px;
|
||||
border-width: 1.5px;
|
||||
border-style: solid;
|
||||
border-radius: 5px;
|
||||
}
|
||||
@@ -345,7 +391,7 @@ QTabWidget {
|
||||
background-color: #535353;
|
||||
}
|
||||
|
||||
QTabWidget::pane {
|
||||
QTabWidget::pane {
|
||||
border-top: 1px solid $backgroundColor3;
|
||||
background-color: $mainBackgroundColor;
|
||||
}
|
||||
@@ -358,7 +404,8 @@ QTabBar::tab {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
QTabBar::tab:selected, QTabBar::tab:hover {
|
||||
QTabBar::tab:selected,
|
||||
QTabBar::tab:hover {
|
||||
background-color: $backgroundColor3;
|
||||
}
|
||||
|
||||
@@ -370,76 +417,78 @@ QTabBar::tab:!selected {
|
||||
color: $textColor;
|
||||
}
|
||||
|
||||
|
||||
/* Scrollbars */
|
||||
|
||||
QScrollBar:vertical {
|
||||
border: 0px;;
|
||||
background: transparent;
|
||||
width: 15px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
}
|
||||
|
||||
QScrollBar:vertical:hover {
|
||||
background: $backgroundColor2;
|
||||
}
|
||||
|
||||
QScrollBar::handle:vertical {
|
||||
background: $backgroundColor4;
|
||||
min-height: 20px;
|
||||
margin: 3px 3px 3px 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
QScrollBar::handle:vertical::hover,
|
||||
QScrollBar::handle:horizontal::hover {
|
||||
background: $backgroundColor5;
|
||||
}
|
||||
|
||||
QScrollBar::handle:vertical::pressed,
|
||||
QScrollBar::handle:horizontal::pressed {
|
||||
background: white;
|
||||
}
|
||||
|
||||
QScrollBar::add-line:vertical,
|
||||
QScrollBar::sub-line:vertical,
|
||||
QScrollBar::add-line:horizontal,
|
||||
QScrollBar::sub-line:horizontal {
|
||||
border: 0px;
|
||||
height: 0px;
|
||||
}
|
||||
|
||||
QScrollBar::up-arrow:vertical,
|
||||
QScrollBar::down-arrow:vertical,
|
||||
QScrollBar::down-arrow:horizontal,
|
||||
QScrollBar::up-arrow:horizontal {
|
||||
border: 0px;
|
||||
background: none;
|
||||
border: 0px;
|
||||
;
|
||||
background: transparent;
|
||||
width: 15px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
}
|
||||
|
||||
QScrollBar::add-page:vertical,
|
||||
QScrollBar::sub-page:vertical,
|
||||
QScrollBar::add-page:horizontal,
|
||||
QScrollBar:vertical:hover {
|
||||
background: $backgroundColor2;
|
||||
}
|
||||
|
||||
QScrollBar::handle:vertical {
|
||||
background: $backgroundColor4;
|
||||
min-height: 20px;
|
||||
margin: 3px 3px 3px 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
QScrollBar::handle:vertical::hover,
|
||||
QScrollBar::handle:horizontal::hover {
|
||||
background: $backgroundColor5;
|
||||
}
|
||||
|
||||
QScrollBar::handle:vertical::pressed,
|
||||
QScrollBar::handle:horizontal::pressed {
|
||||
background: white;
|
||||
}
|
||||
|
||||
QScrollBar::add-line:vertical,
|
||||
QScrollBar::sub-line:vertical,
|
||||
QScrollBar::add-line:horizontal,
|
||||
QScrollBar::sub-line:horizontal {
|
||||
border: 0px;
|
||||
height: 0px;
|
||||
}
|
||||
|
||||
QScrollBar::up-arrow:vertical,
|
||||
QScrollBar::down-arrow:vertical,
|
||||
QScrollBar::down-arrow:horizontal,
|
||||
QScrollBar::up-arrow:horizontal {
|
||||
border: 0px;
|
||||
background: none;
|
||||
}
|
||||
|
||||
QScrollBar::add-page:vertical,
|
||||
QScrollBar::sub-page:vertical,
|
||||
QScrollBar::add-page:horizontal,
|
||||
QScrollBar::sub-page:horizontal {
|
||||
background: none;
|
||||
}
|
||||
background: none;
|
||||
}
|
||||
|
||||
QScrollBar:horizontal {
|
||||
border: 0px;
|
||||
background: transparent;
|
||||
height: 15px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
}
|
||||
border: 0px;
|
||||
background: transparent;
|
||||
height: 15px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
}
|
||||
|
||||
QScrollBar:horizontal:hover {
|
||||
background: $backgroundColor2;
|
||||
}
|
||||
background: $backgroundColor2;
|
||||
}
|
||||
|
||||
QScrollBar::handle:horizontal {
|
||||
background: $backgroundColor4;
|
||||
min-width: 20px;
|
||||
margin: 3px 3px 3px 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
QScrollBar::handle:horizontal {
|
||||
background: $backgroundColor4;
|
||||
min-width: 20px;
|
||||
margin: 3px 3px 3px 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
QFrame#FramedGroupContent {
|
||||
background-color: $mainBackgroundColor;
|
||||
@@ -460,11 +509,14 @@ QMinimizePanel {
|
||||
border: 2px solid $backgroundColor2;
|
||||
}
|
||||
|
||||
QMinimizePanel QLabel, QMinimizePanel QCheckBox, QToolButton {
|
||||
QMinimizePanel QLabel,
|
||||
QMinimizePanel QCheckBox,
|
||||
QToolButton {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
QTextEdit, QPlainTextEdit {
|
||||
QTextEdit,
|
||||
QPlainTextEdit {
|
||||
border: 2px solid $borderColor;
|
||||
}
|
||||
|
||||
@@ -493,4 +545,350 @@ QComboBox::down-arrow {
|
||||
image: url(:/themes/dark/expanded.svg);
|
||||
width: 18px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Styling for advanced docking system
|
||||
* Based on \ResInsight\ThirdParty\qtadvanceddocking\src\stylesheets\default.css
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Default style sheet on Windows Platforms
|
||||
*/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CDockContainerWidget
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CDockContainerWidget {
|
||||
background: $mainBackgroundColor;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CDockSplitter
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CDockContainerWidget>QSplitter {
|
||||
padding: 1 0 1 0;
|
||||
}
|
||||
|
||||
ads--CDockContainerWidget ads--CDockSplitter::handle {
|
||||
background: $backgroundColor3;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CDockAreaWidget
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CDockAreaWidget {
|
||||
background: $mainBackgroundColor;
|
||||
}
|
||||
|
||||
ads--CTitleBarButton {
|
||||
padding: 0px 0px;
|
||||
background: $backgroundColor2;
|
||||
}
|
||||
|
||||
#tabsMenuButton::menu-indicator {
|
||||
image: none;
|
||||
}
|
||||
|
||||
#tabsMenuButton {
|
||||
qproperty-icon: url(:/ads/images/tabs-menu-button.svg);
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
#dockAreaCloseButton {
|
||||
qproperty-icon: url(:/ads/images/close-button.svg), url(:/ads/images/close-button-disabled.svg) disabled;
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
#detachGroupButton {
|
||||
qproperty-icon: url(:/ads/images/detach-button.svg), url(:/ads/images/detach-button-disabled.svg) disabled;
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CDockWidgetTab and close button styling
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CDockWidgetTab {
|
||||
background: $mainBackgroundColor;
|
||||
border-color: $backgroundColor1;
|
||||
border-style: solid;
|
||||
border-width: 0 1px 0 0;
|
||||
padding: 0 0px;
|
||||
}
|
||||
|
||||
ads--CDockWidgetTab[activeTab="true"] {
|
||||
background: $backgroundColor1;
|
||||
}
|
||||
|
||||
ads--CDockWidgetTab QLabel {
|
||||
color: $textColor;
|
||||
background: $mainBackgroundColor;
|
||||
}
|
||||
|
||||
ads--CDockWidgetTab[activeTab="true"] QLabel {
|
||||
color: $textColor;
|
||||
background: $backgroundColor1;
|
||||
}
|
||||
|
||||
#tabCloseButton {
|
||||
margin-top: 2px;
|
||||
background: $backgroundColor2;
|
||||
border: none;
|
||||
padding: 0px -2px;
|
||||
qproperty-icon: url(:/ads/images/close-button.svg), url(:/ads/images/close-button-disabled.svg) disabled;
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
#tabCloseButton:hover {
|
||||
border: 1px solid $backgroundColor3;
|
||||
background: $backgroundColor3;
|
||||
}
|
||||
|
||||
#tabCloseButton:pressed {
|
||||
background: $backgroundColor2;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CDockWidget
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CDockWidget {
|
||||
background: $mainBackgroundColor;
|
||||
border-color: $backgroundColor1;
|
||||
border-style: solid;
|
||||
border-width: 1px 0 0 0;
|
||||
}
|
||||
|
||||
QScrollArea#dockWidgetScrollArea {
|
||||
padding: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Styling of auto hide functionality
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CAutoHideTab
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CAutoHideTab {
|
||||
qproperty-iconSize: 16px 16px;
|
||||
/* this is optional in case you would like to change icon size*/
|
||||
background: none;
|
||||
border: none;
|
||||
padding-left: 2px;
|
||||
padding-right: 0px;
|
||||
text-align: center;
|
||||
min-height: 20px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover {
|
||||
color: palette(highlight);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"] {
|
||||
border-top: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"] {
|
||||
border-bottom: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="0"],
|
||||
ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="2"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"][activeTab="true"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"][activeTab="true"] {
|
||||
border-top: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="1"],
|
||||
ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="3"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"][activeTab="true"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"][activeTab="true"] {
|
||||
border-bottom: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Auto hide tabs with icon only
|
||||
*/
|
||||
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"] {
|
||||
border-top: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"] {
|
||||
border-left: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"] {
|
||||
border-right: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"] {
|
||||
border-bottom: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Auto hide tabs with icon only hover
|
||||
*/
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="0"],
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"][activeTab="true"] {
|
||||
border-top: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="1"],
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"][activeTab="true"] {
|
||||
border-left: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="2"],
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"][activeTab="true"] {
|
||||
border-right: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="3"],
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"][activeTab="true"] {
|
||||
border-bottom: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CAutoHideSideBar
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CAutoHideSideBar {
|
||||
background: palette(window);
|
||||
border: none;
|
||||
qproperty-spacing: 12;
|
||||
}
|
||||
|
||||
#sideTabsContainerWidget {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
ads--CAutoHideSideBar[sideBarLocation="0"] {
|
||||
border-bottom: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideSideBar[sideBarLocation="1"] {
|
||||
border-right: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideSideBar[sideBarLocation="2"] {
|
||||
border-left: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideSideBar[sideBarLocation="3"] {
|
||||
border-top: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CAutoHideDockContainer
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CAutoHideDockContainer {
|
||||
background: palette(window);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer ads--CDockAreaTitleBar {
|
||||
background: palette(highlight);
|
||||
padding: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* This is required because the ads--CDockAreaWidget[focused="true"] will
|
||||
* overwrite the ads--CAutoHideDockContainer ads--CDockAreaTitleBar rule
|
||||
*/
|
||||
|
||||
ads--CAutoHideDockContainer ads--CDockAreaWidget[focused="true"] ads--CDockAreaTitleBar {
|
||||
background: palette(highlight);
|
||||
padding: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#autoHideTitleLabel {
|
||||
padding-left: 4px;
|
||||
color: palette(light);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CAutoHideDockContainer titlebar buttons
|
||||
*****************************************************************************/
|
||||
|
||||
#dockAreaAutoHideButton {
|
||||
qproperty-icon: url(:/ads/images/vs-pin-button.svg);
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer #dockAreaAutoHideButton {
|
||||
qproperty-icon: url(:/ads/images/vs-pin-button-pinned-focused.svg);
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer #dockAreaCloseButton {
|
||||
qproperty-icon: url(:/ads/images/close-button-focused.svg)
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer ads--CTitleBarButton:hover {
|
||||
background: rgba(255, 255, 255, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer ads--CTitleBarButton:pressed {
|
||||
background: rgba(255, 255, 255, 96);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CAutoHideDockContainer Titlebar and Buttons
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CResizeHandle
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CResizeHandle {
|
||||
background: palette(window);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer[sideBarLocation="0"] ads--CResizeHandle {
|
||||
border-top: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer[sideBarLocation="1"] ads--CResizeHandle {
|
||||
border-left: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer[sideBarLocation="2"] ads--CResizeHandle {
|
||||
border-right: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer[sideBarLocation="3"] ads--CResizeHandle {
|
||||
border-top: 1px solid palette(dark);
|
||||
}
|
||||
@@ -24,12 +24,15 @@ $plotGridColor: #394046; // Plot grid color
|
||||
$auxiliaryCurveColor: #000000; // Auxiliary curve color
|
||||
$externalInputColor: #fff2a7; // Background color for external input fields
|
||||
|
||||
/*
|
||||
*/
|
||||
|
||||
QwtPlot {
|
||||
background-color: QPalette::Base;
|
||||
background-color: $mainBackgroundColor;
|
||||
}
|
||||
|
||||
QwtPlot > QWidget {
|
||||
background-color: QPalette::Base;
|
||||
QwtPlot>QWidget {
|
||||
background-color: $mainBackgroundColor;
|
||||
}
|
||||
|
||||
QwtPlot["*"]::grid["*"] {
|
||||
@@ -42,49 +45,50 @@ QwtPlot["PvtPlot"]::curve["Auxiliary"] {
|
||||
|
||||
QwtPlot["PvtPlot"]::curve["Oil"] {
|
||||
line-color: $curveColorOil;
|
||||
symbol-color: $curveColorOil;
|
||||
symbol-color: $curveColorOil;
|
||||
}
|
||||
|
||||
QwtPlot["PvtPlot"]::curve["Gas"] {
|
||||
line-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["KRW"] {
|
||||
line-color: $curveColorWater;
|
||||
symbol-color: $curveColorWater;
|
||||
symbol-color: $curveColorWater;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["KROW"] {
|
||||
line-color: $curveColorWater;
|
||||
symbol-color: $curveColorWater;
|
||||
symbol-color: $curveColorWater;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["PCOW"] {
|
||||
line-color: $tertiaryColor;
|
||||
symbol-color: $tertiaryColor;
|
||||
symbol-color: $tertiaryColor;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["KRG"] {
|
||||
line-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["KROG"] {
|
||||
line-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
symbol-color: $curveColorGas;
|
||||
}
|
||||
|
||||
QwtPlot["RelPermPlot"]::curve["PCOG"] {
|
||||
line-color: $senaryColor;
|
||||
symbol-color: $senaryColor;
|
||||
symbol-color: $senaryColor;
|
||||
}
|
||||
|
||||
QwtPlot["PvtPlot"]::lineMarker["*"] {
|
||||
color: $textColor;
|
||||
}
|
||||
|
||||
QLabel, RiuQwtPlotLegend {
|
||||
QLabel,
|
||||
RiuQwtPlotLegend {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
@@ -97,6 +101,356 @@ QListView[state="ExternalInput"] {
|
||||
border: 2px solid $borderColor;
|
||||
}
|
||||
|
||||
RiuAbstractOverlayContentFrame, RiuDraggableOverlayFrame {
|
||||
background-color: rgba(255,255,255,0.4);
|
||||
RiuAbstractOverlayContentFrame,
|
||||
RiuDraggableOverlayFrame {
|
||||
background-color: rgba(255, 255, 255, 0.4);
|
||||
}
|
||||
|
||||
svg {
|
||||
stroke: currentColor;
|
||||
stroke-width: 2;
|
||||
fill: none;
|
||||
}
|
||||
|
||||
/*
|
||||
* Styling for advanced docking system
|
||||
* Based on \ResInsight\ThirdParty\qtadvanceddocking\src\stylesheets\default.css
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Default style sheet on Windows Platforms
|
||||
*/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CDockContainerWidget
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CDockContainerWidget {
|
||||
background: palette(window);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CDockSplitter
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CDockContainerWidget>QSplitter {
|
||||
padding: 1 0 1 0;
|
||||
}
|
||||
|
||||
ads--CDockContainerWidget ads--CDockSplitter::handle {
|
||||
background: palette(dark);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CDockAreaWidget
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CDockAreaWidget {
|
||||
background: palette(window);
|
||||
}
|
||||
|
||||
ads--CTitleBarButton {
|
||||
padding: 0px 0px;
|
||||
}
|
||||
|
||||
#tabsMenuButton::menu-indicator {
|
||||
image: none;
|
||||
}
|
||||
|
||||
#tabsMenuButton {
|
||||
qproperty-icon: url(:/ads/images/tabs-menu-button.svg);
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
#dockAreaCloseButton {
|
||||
qproperty-icon: url(:/ads/images/close-button.svg), url(:/ads/images/close-button-disabled.svg) disabled;
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
#detachGroupButton {
|
||||
qproperty-icon: url(:/ads/images/detach-button.svg), url(:/ads/images/detach-button-disabled.svg) disabled;
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CDockWidgetTab and close button styling
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CDockWidgetTab {
|
||||
background: palette(window);
|
||||
border-color: palette(light);
|
||||
border-style: solid;
|
||||
border-width: 0 1px 0 0;
|
||||
padding: 0 0px;
|
||||
}
|
||||
|
||||
ads--CDockWidgetTab[activeTab="true"] {
|
||||
background: qlineargradient(spread: pad, x1: 0, y1: 0, x2: 0, y2: 0.5, stop: 0 palette(window), stop: 1 palette(light));
|
||||
/*background: palette(highlight);*/
|
||||
}
|
||||
|
||||
ads--CDockWidgetTab QLabel {
|
||||
color: palette(dark);
|
||||
}
|
||||
|
||||
ads--CDockWidgetTab[activeTab="true"] QLabel {
|
||||
color: palette(foreground);
|
||||
}
|
||||
|
||||
#tabCloseButton {
|
||||
margin-top: 2px;
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0px -2px;
|
||||
qproperty-icon: url(:/ads/images/close-button.svg), url(:/ads/images/close-button-disabled.svg) disabled;
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
#tabCloseButton:hover {
|
||||
border: 1px solid rgba(0, 0, 0, 32);
|
||||
background: rgba(0, 0, 0, 16);
|
||||
}
|
||||
|
||||
#tabCloseButton:pressed {
|
||||
background: rgba(0, 0, 0, 32);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CDockWidget
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CDockWidget {
|
||||
background: palette(light);
|
||||
border-color: palette(light);
|
||||
border-style: solid;
|
||||
border-width: 1px 0 0 0;
|
||||
}
|
||||
|
||||
QScrollArea#dockWidgetScrollArea {
|
||||
padding: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Styling of auto hide functionality
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CAutoHideTab
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CAutoHideTab {
|
||||
qproperty-iconSize: 16px 16px;
|
||||
/* this is optional in case you would like to change icon size*/
|
||||
background: none;
|
||||
border: none;
|
||||
padding-left: 2px;
|
||||
padding-right: 0px;
|
||||
text-align: center;
|
||||
min-height: 20px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover {
|
||||
color: palette(highlight);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"] {
|
||||
border-top: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"] {
|
||||
border-bottom: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="0"],
|
||||
ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="2"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="0"][activeTab="true"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="2"][activeTab="true"] {
|
||||
border-top: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="1"],
|
||||
ads--CAutoHideTab:hover[iconOnly="false"][sideBarLocation="3"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="1"][activeTab="true"],
|
||||
ads--CAutoHideTab[iconOnly="false"][sideBarLocation="3"][activeTab="true"] {
|
||||
border-bottom: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Auto hide tabs with icon only
|
||||
*/
|
||||
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"] {
|
||||
border-top: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"] {
|
||||
border-left: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"] {
|
||||
border-right: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"] {
|
||||
border-bottom: 6px solid rgba(0, 0, 0, 48);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Auto hide tabs with icon only hover
|
||||
*/
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="0"],
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="0"][activeTab="true"] {
|
||||
border-top: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="1"],
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="1"][activeTab="true"] {
|
||||
border-left: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="2"],
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="2"][activeTab="true"] {
|
||||
border-right: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
ads--CAutoHideTab:hover[iconOnly="true"][sideBarLocation="3"],
|
||||
ads--CAutoHideTab[iconOnly="true"][sideBarLocation="3"][activeTab="true"] {
|
||||
border-bottom: 6px solid palette(highlight);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CAutoHideSideBar
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CAutoHideSideBar {
|
||||
background: palette(window);
|
||||
border: none;
|
||||
qproperty-spacing: 12;
|
||||
}
|
||||
|
||||
#sideTabsContainerWidget {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
ads--CAutoHideSideBar[sideBarLocation="0"] {
|
||||
border-bottom: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideSideBar[sideBarLocation="1"] {
|
||||
border-right: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideSideBar[sideBarLocation="2"] {
|
||||
border-left: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideSideBar[sideBarLocation="3"] {
|
||||
border-top: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CAutoHideDockContainer
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CAutoHideDockContainer {
|
||||
background: palette(window);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer ads--CDockAreaTitleBar {
|
||||
background: palette(highlight);
|
||||
padding: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* This is required because the ads--CDockAreaWidget[focused="true"] will
|
||||
* overwrite the ads--CAutoHideDockContainer ads--CDockAreaTitleBar rule
|
||||
*/
|
||||
|
||||
ads--CAutoHideDockContainer ads--CDockAreaWidget[focused="true"] ads--CDockAreaTitleBar {
|
||||
background: palette(highlight);
|
||||
padding: 0px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#autoHideTitleLabel {
|
||||
padding-left: 4px;
|
||||
color: palette(light);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CAutoHideDockContainer titlebar buttons
|
||||
*****************************************************************************/
|
||||
|
||||
#dockAreaAutoHideButton {
|
||||
qproperty-icon: url(:/ads/images/vs-pin-button.svg);
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer #dockAreaAutoHideButton {
|
||||
qproperty-icon: url(:/ads/images/vs-pin-button-pinned-focused.svg);
|
||||
qproperty-iconSize: 16px;
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer #dockAreaCloseButton {
|
||||
qproperty-icon: url(:/ads/images/close-button-focused.svg)
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer ads--CTitleBarButton:hover {
|
||||
background: rgba(255, 255, 255, 48);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer ads--CTitleBarButton:pressed {
|
||||
background: rgba(255, 255, 255, 96);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CAutoHideDockContainer Titlebar and Buttons
|
||||
*****************************************************************************/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* CResizeHandle
|
||||
*****************************************************************************/
|
||||
|
||||
ads--CResizeHandle {
|
||||
background: palette(window);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer[sideBarLocation="0"] ads--CResizeHandle {
|
||||
border-top: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer[sideBarLocation="1"] ads--CResizeHandle {
|
||||
border-left: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer[sideBarLocation="2"] ads--CResizeHandle {
|
||||
border-right: 1px solid palette(dark);
|
||||
}
|
||||
|
||||
ads--CAutoHideDockContainer[sideBarLocation="3"] ads--CResizeHandle {
|
||||
border-top: 1px solid palette(dark);
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect x="3.8" width="2.8" height="2.8" fill="#424242" y="1"/>
|
||||
<rect x="3.8" y="6.6" width="2.8" height="2.8" fill="#424242"/>
|
||||
<rect x="3.8" y="12.2" width="2.8" height="2.8" fill="#424242"/>
|
||||
<rect x="9.4" width="2.8" height="2.8" fill="#424242" y="1"/>
|
||||
<rect x="9.4" y="6.6" width="2.8" height="2.8" fill="#424242"/>
|
||||
<rect x="9.4" y="12.2" width="2.8" height="2.8" fill="#424242"/>
|
||||
<rect x="3.8" width="2.8" height="2.8" fill="#5F6368" y="1"/>
|
||||
<rect x="3.8" y="6.6" width="2.8" height="2.8" fill="#5F6368"/>
|
||||
<rect x="3.8" y="12.2" width="2.8" height="2.8" fill="#5F6368"/>
|
||||
<rect x="9.4" width="2.8" height="2.8" fill="#5F6368" y="1"/>
|
||||
<rect x="9.4" y="6.6" width="2.8" height="2.8" fill="#5F6368"/>
|
||||
<rect x="9.4" y="12.2" width="2.8" height="2.8" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 535 B After Width: | Height: | Size: 535 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 10V9H6.20703C6.11588 9.32228 6.05337 9.65659 6.02242 10H1ZM7.25716 7C7.57052 6.62057 7.93379 6.28389 8.33692 6H1V7H7.25716ZM6.59971 13C6.43777 12.6832 6.30564 12.3486 6.20703 12H1V13H6.59971ZM15 3V4H1V3H15ZM11.6406 13.0312C13.0386 13.0312 14.1719 11.898 14.1719 10.5C14.1719 9.10203 13.0386 7.96875 11.6406 7.96875C10.7037 7.96875 9.88566 8.47778 9.448 9.23438H10.5156V10.0781H8.54688L8.125 9.65625V7.40625H8.96875V8.43775C9.58599 7.63922 10.5533 7.125 11.6406 7.125C13.5046 7.125 15.0156 8.63604 15.0156 10.5C15.0156 12.364 13.5046 13.875 11.6406 13.875C10.2564 13.875 9.06688 13.0417 8.5462 11.8495L9.32848 11.5317C9.7234 12.4154 10.6101 13.0312 11.6406 13.0312Z" fill="#424242"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1 10V9H6.20703C6.11588 9.32228 6.05337 9.65659 6.02242 10H1ZM7.25716 7C7.57052 6.62057 7.93379 6.28389 8.33692 6H1V7H7.25716ZM6.59971 13C6.43777 12.6832 6.30564 12.3486 6.20703 12H1V13H6.59971ZM15 3V4H1V3H15ZM11.6406 13.0312C13.0386 13.0312 14.1719 11.898 14.1719 10.5C14.1719 9.10203 13.0386 7.96875 11.6406 7.96875C10.7037 7.96875 9.88566 8.47778 9.448 9.23438H10.5156V10.0781H8.54688L8.125 9.65625V7.40625H8.96875V8.43775C9.58599 7.63922 10.5533 7.125 11.6406 7.125C13.5046 7.125 15.0156 8.63604 15.0156 10.5C15.0156 12.364 13.5046 13.875 11.6406 13.875C10.2564 13.875 9.06688 13.0417 8.5462 11.8495L9.32848 11.5317C9.7234 12.4154 10.6101 13.0312 11.6406 13.0312Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 838 B After Width: | Height: | Size: 838 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.707 3H14.5L15 3.5V12.5L14.5 13H1.5L1 12.5V3.5L1.5 3H5.293L6.146 2.146L6.5 2H9.5L9.854 2.146L10.707 3ZM2 12H14V4H10.5L10.146 3.854L9.293 3H6.707L5.854 3.854L5.5 4H2V12ZM3.5 5C3.40111 5 3.30444 5.02932 3.22222 5.08427C3.13999 5.13921 3.0759 5.2173 3.03806 5.30866C3.00022 5.40002 2.99031 5.50055 3.00961 5.59755C3.0289 5.69454 3.07652 5.78363 3.14645 5.85355C3.21637 5.92348 3.30546 5.9711 3.40246 5.99039C3.49945 6.00969 3.59998 5.99978 3.69134 5.96194C3.78271 5.9241 3.86079 5.86001 3.91574 5.77779C3.97068 5.69556 4 5.59889 4 5.5C4 5.36739 3.94732 5.24021 3.85355 5.14645C3.75979 5.05268 3.63261 5 3.5 5ZM8 6C8.39556 6 8.78224 6.1173 9.11114 6.33706C9.44004 6.55682 9.69639 6.86918 9.84776 7.23463C9.99914 7.60009 10.0387 8.00222 9.96157 8.39018C9.8844 8.77814 9.69392 9.13451 9.41421 9.41421C9.13451 9.69392 8.77814 9.8844 8.39018 9.96157C8.00222 10.0387 7.60009 9.99913 7.23463 9.84776C6.86918 9.69638 6.55683 9.44004 6.33706 9.11114C6.1173 8.78224 6 8.39556 6 8C6 7.46957 6.21071 6.96086 6.58579 6.58579C6.96086 6.21071 7.46957 6 8 6ZM8 5C7.40666 5 6.82664 5.17595 6.33329 5.50559C5.83994 5.83524 5.45543 6.30377 5.22836 6.85195C5.0013 7.40013 4.94189 8.00333 5.05765 8.58527C5.1734 9.16721 5.45912 9.70176 5.87868 10.1213C6.29824 10.5409 6.83279 10.8266 7.41473 10.9424C7.99667 11.0581 8.59987 10.9987 9.14805 10.7716C9.69623 10.5446 10.1648 10.1601 10.4944 9.66671C10.8241 9.17336 11 8.59334 11 8C11 7.20435 10.6839 6.44129 10.1213 5.87868C9.55871 5.31607 8.79565 5 8 5Z" fill="#424242"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.707 3H14.5L15 3.5V12.5L14.5 13H1.5L1 12.5V3.5L1.5 3H5.293L6.146 2.146L6.5 2H9.5L9.854 2.146L10.707 3ZM2 12H14V4H10.5L10.146 3.854L9.293 3H6.707L5.854 3.854L5.5 4H2V12ZM3.5 5C3.40111 5 3.30444 5.02932 3.22222 5.08427C3.13999 5.13921 3.0759 5.2173 3.03806 5.30866C3.00022 5.40002 2.99031 5.50055 3.00961 5.59755C3.0289 5.69454 3.07652 5.78363 3.14645 5.85355C3.21637 5.92348 3.30546 5.9711 3.40246 5.99039C3.49945 6.00969 3.59998 5.99978 3.69134 5.96194C3.78271 5.9241 3.86079 5.86001 3.91574 5.77779C3.97068 5.69556 4 5.59889 4 5.5C4 5.36739 3.94732 5.24021 3.85355 5.14645C3.75979 5.05268 3.63261 5 3.5 5ZM8 6C8.39556 6 8.78224 6.1173 9.11114 6.33706C9.44004 6.55682 9.69639 6.86918 9.84776 7.23463C9.99914 7.60009 10.0387 8.00222 9.96157 8.39018C9.8844 8.77814 9.69392 9.13451 9.41421 9.41421C9.13451 9.69392 8.77814 9.8844 8.39018 9.96157C8.00222 10.0387 7.60009 9.99913 7.23463 9.84776C6.86918 9.69638 6.55683 9.44004 6.33706 9.11114C6.1173 8.78224 6 8.39556 6 8C6 7.46957 6.21071 6.96086 6.58579 6.58579C6.96086 6.21071 7.46957 6 8 6ZM8 5C7.40666 5 6.82664 5.17595 6.33329 5.50559C5.83994 5.83524 5.45543 6.30377 5.22836 6.85195C5.0013 7.40013 4.94189 8.00333 5.05765 8.58527C5.1734 9.16721 5.45912 9.70176 5.87868 10.1213C6.29824 10.5409 6.83279 10.8266 7.41473 10.9424C7.99667 11.0581 8.59987 10.9987 9.14805 10.7716C9.69623 10.5446 10.1648 10.1601 10.4944 9.66671C10.8241 9.17336 11 8.59334 11 8C11 7.20435 10.6839 6.44129 10.1213 5.87868C9.55871 5.31607 8.79565 5 8 5Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M14.5 2H1.5L1 2.5V13.5L1.5 14H14.5L15 13.5V2.5L14.5 2ZM14 13H2V6H14V13ZM14 5H2V3H14V5Z" fill="#424242"/>
|
||||
<path d="M14.5 2H1.5L1 2.5V13.5L1.5 14H14.5L15 13.5V2.5L14.5 2ZM14 13H2V6H14V13ZM14 5H2V3H14V5Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 217 B After Width: | Height: | Size: 217 B |
@@ -1,3 +1,3 @@
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 1.5L6.5 1H14.5L15 1.5V3.5V8.5L14.5 9H12V8H14V4H7V5H6V3.5V1.5ZM7 2V3H14V2H7ZM1.5 7L1 7.5V14.5L1.5 15H9.5L10 14.5V7.5L9.5 7H1.5ZM2 9V8H9V9H2ZM2 10H9V14H2V10Z" fill="#424242"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 1.5L6.5 1H14.5L15 1.5V3.5V8.5L14.5 9H12V8H14V4H7V5H6V3.5V1.5ZM7 2V3H14V2H7ZM1.5 7L1 7.5V14.5L1.5 15H9.5L10 14.5V7.5L9.5 7H1.5ZM2 9V8H9V9H2ZM2 10H9V14H2V10Z" fill="#5F6368"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 329 B |
@@ -1,5 +1,5 @@
|
||||
---
|
||||
Checks: '-*,modernize-use-override,modernize-use-nullptr,modernize-deprecated-headers,bugprone-bool-pointer-implicit-conversion,bugprone-parent-virtual-call,bugprone-redundant-branch-condition,bugprone-suspicious-semicolon,bugprone-suspicious-string-compare'
|
||||
Checks: '-*,modernize-use-override,modernize-deprecated-headers,modernize-use-using,bugprone-bool-pointer-implicit-conversion,bugprone-parent-virtual-call,bugprone-redundant-branch-condition,bugprone-suspicious-semicolon,bugprone-suspicious-string-compare,modernize-redundant-void-arg,readability-static-accessed-through-instance'
|
||||
WarningsAsErrors: ''
|
||||
HeaderFilterRegex: 'ApplicationLibCode/*.*$'
|
||||
FormatStyle: 'file'
|
||||
|
||||
@@ -616,3 +616,47 @@ FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
||||
for more details.
|
||||
|
||||
===============================================================================
|
||||
Notice for the open-vds library
|
||||
===============================================================================
|
||||
|
||||
https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/blob/master/LICENSE
|
||||
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
|
||||
===============================================================================
|
||||
Notice for the open-zgy library
|
||||
===============================================================================
|
||||
|
||||
https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-zgy/-/blob/master/LICENSE.txt
|
||||
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
|
||||
===============================================================================
|
||||
Notice for the regression-analysis library
|
||||
===============================================================================
|
||||
|
||||
https://github.com/CeetronSolutions/regression-analysis
|
||||
|
||||
|
||||
Copyright (C) 2023- Equinor ASA
|
||||
|
||||
regression-analysis 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.
|
||||
|
||||
regression-analysis 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.
|
||||
|
||||
@@ -32,3 +32,5 @@
|
||||
#define RESINSIGHT_PATCH_VERSION "@RESINSIGHT_PATCH_VERSION@"
|
||||
|
||||
#define RESINSIGHT_OCTAVE_VERSION "@OCTAVE_VERSION_STRING@"
|
||||
|
||||
#define RESINSIGHT_PYTHON_VERSION "@Python3_VERSION@"
|
||||
|
||||
@@ -0,0 +1,457 @@
|
||||
// ResInsight version string : 2023.06.0-RC_03
|
||||
// Report generated : Mon Jun 12 12:27:33 2023
|
||||
//
|
||||
//
|
||||
|
||||
AnalysisPlot
|
||||
AnalysisPlotCollection
|
||||
AnalysisPlotDataEntry
|
||||
Annotations
|
||||
AsciiDataCurve
|
||||
CalcScript
|
||||
CellEdgeResultSlot
|
||||
CellFilterCollection
|
||||
CellPropertyFilter
|
||||
CellPropertyFilters
|
||||
CellRangeFilter
|
||||
CellRangeFilterCollection
|
||||
ChangeDataSourceFeatureUi
|
||||
CmdAddItemExecData
|
||||
CmdDeleteItemExecData
|
||||
CmdSelectionChangeExecData
|
||||
ColorLegend
|
||||
ColorLegendCollection
|
||||
ColorLegendItem
|
||||
CompletionTemplateCollection
|
||||
CorrelationMatrixPlot
|
||||
CorrelationPlot
|
||||
CorrelationPlotCollection
|
||||
CorrelationReportPlot
|
||||
CrossSection
|
||||
CrossSectionCollection
|
||||
CsvSummaryCase
|
||||
CurveIntersection
|
||||
DataContainerFloat
|
||||
DataContainerString
|
||||
DataContainerTime
|
||||
DeclineCurve
|
||||
DepthTrackPlot
|
||||
DoubleParameter
|
||||
Eclipse2dViewCollection
|
||||
EclipseCase
|
||||
EclipseGeometrySelectionItem
|
||||
EclipseResultAddress
|
||||
ElasticProperties
|
||||
ElasticPropertyScaling
|
||||
ElasticPropertyScalingCollection
|
||||
EnsembleFractureStatistics
|
||||
EnsembleFractureStatisticsPlot
|
||||
EnsembleFractureStatisticsPlotCollection
|
||||
EnsembleStatisticsSurface
|
||||
EnsembleSurface
|
||||
EnsembleWellLogStatisticsCurve
|
||||
EnsembleWellLogs
|
||||
EnsembleWellLogsCollection
|
||||
FaciesInitialPressureConfig
|
||||
FaciesProperties
|
||||
Fault
|
||||
Faults
|
||||
FileSummaryCase
|
||||
FileSurface
|
||||
FishbonesCollection
|
||||
FishbonesMultipleSubs
|
||||
FishbonesPipeProperties
|
||||
FlowCharacteristicsPlot
|
||||
FlowDiagSolution
|
||||
FlowPlotCollection
|
||||
FormationNames
|
||||
FormationNamesCollectionObject
|
||||
FractureContainment
|
||||
FractureDefinitionCollection
|
||||
FractureGroupStatisticsCollection
|
||||
FractureTemplateCollection
|
||||
GeoMech2dViewCollection
|
||||
GeoMechGeometrySelectionItem
|
||||
GeoMechPart
|
||||
GeoMechPartCollection
|
||||
GeoMechPropertyFilter
|
||||
GeoMechPropertyFilters
|
||||
GeoMechResultDefinition
|
||||
GeoMechResultSlot
|
||||
GeoMechView
|
||||
GridCaseSurface
|
||||
GridCollection
|
||||
GridCrossPlotCurve
|
||||
GridCrossPlotCurveSet
|
||||
GridInfo
|
||||
GridInfoCollection
|
||||
GridStatisticsPlot
|
||||
GridStatisticsPlotCollection
|
||||
GridSummaryCase
|
||||
GridTimeHistoryCurve
|
||||
IntegerParameter
|
||||
Intersection2dView
|
||||
Intersection2dViewCollection
|
||||
IntersectionBox
|
||||
IntersectionCollection
|
||||
IntersectionResultDefinition
|
||||
Legend
|
||||
ListParameter
|
||||
MainPlotCollection
|
||||
MdiWindowController
|
||||
MockModelSettings
|
||||
ModeledWellPath
|
||||
MultiPlot
|
||||
MultiSnapshotDefinition
|
||||
MultiSummaryPlot
|
||||
NonNetLayers
|
||||
ObservedDataCollection
|
||||
ObservedFmuRftData
|
||||
ObservedPressureDepthData
|
||||
ParameterGroup
|
||||
ParameterList
|
||||
ParameterResultCrossPlot
|
||||
PdmDocument
|
||||
PdmObjectCollection
|
||||
PdmObjectGroup
|
||||
Perforation
|
||||
PerforationCollection
|
||||
PlotDataFilterCollection
|
||||
PlotDataFilterItem
|
||||
PlotTemplateCollection
|
||||
PlotTemplateFileItem
|
||||
PolyLineFilter
|
||||
PolygonFilter
|
||||
PolylineTarget
|
||||
PolylinesFromFileAnnotation
|
||||
PressureTable
|
||||
PressureTableItem
|
||||
PropertyFilter
|
||||
RegressionAnalysisCurve
|
||||
ResInsightAnalysisModels
|
||||
ResInsightGeoMechCase
|
||||
ResInsightGeoMechModels
|
||||
ResInsightOilField
|
||||
ResInsightProject
|
||||
ResampleData
|
||||
ReservoirCellResultStorage
|
||||
ReservoirView
|
||||
ResultDefinition
|
||||
ResultSlot
|
||||
ResultStorageEntryInfo
|
||||
RftAddress
|
||||
RiaMemoryCleanup
|
||||
RiaPreferences
|
||||
RiaPreferencesGeoMech
|
||||
RiaPreferencesSummary
|
||||
RiaPreferencesSystem
|
||||
RiaRegressionTest
|
||||
RicCaseAndFileExportSettingsUi
|
||||
RicCellRangeUi
|
||||
RicCreateDepthAdjustedLasFilesUi
|
||||
RicCreateEnsembleSurfaceUi
|
||||
RicCreateEnsembleWellLogUi
|
||||
RicCreateMultipleWellPathLateralsUi
|
||||
RicDeleteItemExecData
|
||||
RicExportCarfinUi
|
||||
RicExportCompletionDataSettingsUi
|
||||
RicExportContourMapToTextUi
|
||||
RicExportEclipseInputGridUi
|
||||
RicExportLgrUi
|
||||
RicExportToLasFileObj
|
||||
RicExportToLasFileResampleUi
|
||||
RicExportWellPathsUi
|
||||
RicGridCalculator
|
||||
RicHoloLensCreateSessionUi
|
||||
RicHoloLensExportToFolderUi
|
||||
RicHoloLensServerSettings
|
||||
RicLinkVisibleViewsFeatureUi
|
||||
RicPasteAsciiDataToSummaryPlotFeatureUi
|
||||
RicSaturationPressureUi
|
||||
RicSaveEclipseInputVisibleCellsUi
|
||||
RicSaveMultiPlotTemplateFeatureSettings
|
||||
RicSelectCaseOrEnsembleUi
|
||||
RicSelectPlotTemplateUi
|
||||
RicSelectSummaryPlotUI
|
||||
RicSelectViewUI
|
||||
RicSummaryAddressSelection
|
||||
RicSummaryCurveCalculator
|
||||
RicSummaryCurveCreator
|
||||
RicWellPathsUnitSystemSettingsUi
|
||||
RifReaderSettings
|
||||
Rim3dWellLogCurveCollection
|
||||
Rim3dWellLogExtractionCurve
|
||||
Rim3dWellLogFileCurve
|
||||
Rim3dWellLogRftCurve
|
||||
RimAnnotationCollection
|
||||
RimAnnotationCollectionBase
|
||||
RimAnnotationGroupCollection
|
||||
RimAnnotationLineAppearance
|
||||
RimAnnotationTextAppearance
|
||||
RimBinaryExportSettings
|
||||
RimCaseCollection
|
||||
RimCellFilterCollection
|
||||
RimCommandExecuteScript
|
||||
RimCommandIssueFieldChanged
|
||||
RimCommandObject
|
||||
RimCommandRouter
|
||||
RimContourMapView
|
||||
RimCsvUserData
|
||||
RimCustomObjectiveFunction
|
||||
RimCustomObjectiveFunctionCollection
|
||||
RimCustomObjectiveFunctionWeight
|
||||
RimDerivedEnsembleCase
|
||||
RimDerivedEnsembleCaseCollection
|
||||
RimDialogData
|
||||
RimEclipseContourMapProjection
|
||||
RimEclipseResultAddressCollection
|
||||
RimElementVectorResult
|
||||
RimEllipseFractureTemplate
|
||||
RimEnsembleCurveFilter
|
||||
RimEnsembleCurveFilterCollection
|
||||
RimEnsembleCurveSet
|
||||
RimEnsembleCurveSetCollection
|
||||
RimEnsembleStatistics
|
||||
RimEnsembleWellLogCurveSet
|
||||
RimEquilibriumAxisAnnotation
|
||||
RimExportInputSettings
|
||||
RimFaultResultSlot
|
||||
RimFractureExportSettings
|
||||
RimGeoMechContourMapProjection
|
||||
RimGeoMechContourMapView
|
||||
RimGeoMechFaultReactivationResult
|
||||
RimGridCalculation
|
||||
RimGridCalculationCollection
|
||||
RimGridCalculationVariable
|
||||
RimGridCrossPlot
|
||||
RimGridCrossPlotCollection
|
||||
RimGridCrossPlotCurveSetNameConfig
|
||||
RimGridCrossPlotNameConfig
|
||||
RimIdenticalGridCaseGroup
|
||||
RimInputProperty
|
||||
RimInputPropertyCollection
|
||||
RimInputReservoir
|
||||
RimIntersectionResultsDefinitionCollection
|
||||
RimMeasurement
|
||||
RimMswCompletionParameters
|
||||
RimMudWeightWindowParameters
|
||||
RimMultiPlotCollection
|
||||
RimMultipleEclipseResults
|
||||
RimMultipleLocations
|
||||
RimMultipleValveLocations
|
||||
RimNonDarcyPerforationParameters
|
||||
RimObjectiveFunction
|
||||
RimObservedEclipseUserData
|
||||
RimOilFieldEntry
|
||||
RimOilRegionEntry
|
||||
RimPlotAxisAnnotation
|
||||
RimPlotCellFilterCollection
|
||||
RimPlotCellPropertyFilter
|
||||
RimPolylineAppearance
|
||||
RimPolylinesAnnotationInView
|
||||
RimPolylinesFromFileAnnotationInView
|
||||
RimProcess
|
||||
RimReachCircleAnnotation
|
||||
RimReachCircleAnnotationInView
|
||||
RimResultSelectionUi
|
||||
RimRftCase
|
||||
RimRftTopologyCurve
|
||||
RimRoffCase
|
||||
RimSEGYConvertOptions
|
||||
RimSaturationPressurePlot
|
||||
RimSaturationPressurePlotCollection
|
||||
RimStatisticalCalculation
|
||||
RimStatisticalCollection
|
||||
RimStimPlanColors
|
||||
RimStimPlanFractureTemplate
|
||||
RimStimPlanLegendConfig
|
||||
RimSummaryAddressCollection
|
||||
RimSummaryCalculation
|
||||
RimSummaryCalculationCollection
|
||||
RimSummaryCalculationVariable
|
||||
RimSummaryCurveCollection
|
||||
RimSummaryCurveCollectionModifier
|
||||
RimSummaryMultiPlotCollection
|
||||
RimSummaryPlotManager
|
||||
RimSummaryTable
|
||||
RimSummaryTableCollection
|
||||
RimSurfaceIntersectionBand
|
||||
RimSurfaceIntersectionCollection
|
||||
RimSurfaceIntersectionCurve
|
||||
RimTensorResults
|
||||
RimTernaryLegendConfig
|
||||
RimTextAnnotation
|
||||
RimTextAnnotationInView
|
||||
RimThermalFractureTemplate
|
||||
RimTimeAxisAnnotation
|
||||
RimTimeStepFilter
|
||||
RimUserDefinedPolylinesAnnotationInView
|
||||
RimVfpPlotCollection
|
||||
RimViewLinkerCollection
|
||||
RimViewNameConfig
|
||||
RimVirtualPerforationResults
|
||||
RimWellAllocationOverTimePlot
|
||||
RimWellConnectivityTable
|
||||
RimWellIASettings
|
||||
RimWellIASettingsCollection
|
||||
RimWellLogExtractionCurve
|
||||
RimWellLogExtractionCurveNameConfig
|
||||
RimWellLogFileCurveNameConfig
|
||||
RimWellLogPlotNameConfig
|
||||
RimWellLogRftCurveNameConfig
|
||||
RimWellLogWbsCurve
|
||||
RimWellPathEntry
|
||||
RimWellPathImport
|
||||
RimWellPathTieIn
|
||||
RiuCreateMultipleFractionsUi
|
||||
RiuMultipleFractionsOptions
|
||||
ScriptLocation
|
||||
SeismicCollection
|
||||
SeismicData
|
||||
SeismicDataCollection
|
||||
SeismicDifferenceData
|
||||
SeismicSection
|
||||
SeismicSectionCollection
|
||||
SimWellFracture
|
||||
SimWellFractureCollection
|
||||
StimPlanFractureTemplate
|
||||
StimPlanModel
|
||||
StimPlanModelCollection
|
||||
StimPlanModelCurve
|
||||
StimPlanModelPlot
|
||||
StimPlanModelPlotCollection
|
||||
StimPlanModelTemplate
|
||||
StimPlanModelTemplateCollection
|
||||
StreamlineInViewCollection
|
||||
StringParameter
|
||||
SummaryAddress
|
||||
SummaryCaseCollection
|
||||
SummaryCaseSubCollection
|
||||
SummaryCrossPlot
|
||||
SummaryCrossPlotCollection
|
||||
SummaryCurve
|
||||
SummaryCurveAutoName
|
||||
SummaryObservedDataFile
|
||||
SummaryPageDownloadEntity
|
||||
SummaryPlot
|
||||
SummaryPlotCollection
|
||||
SummaryTimeAxisProperties
|
||||
SummaryYAxisProperties
|
||||
Surface
|
||||
SurfaceCollection
|
||||
SurfaceInView
|
||||
SurfaceInViewCollection
|
||||
SurfaceResultDefinition
|
||||
TC2
|
||||
TestCommand1
|
||||
ThermalFractureTemplate
|
||||
TofAccumulatedPhaseFractionsPlot
|
||||
TotalWellAllocationPlot
|
||||
TriangleGeometry
|
||||
UserDefinedFilter
|
||||
UserDefinedPolylinesAnnotation
|
||||
ValveTemplate
|
||||
ValveTemplateCollection
|
||||
VfpPlot
|
||||
View3dOverlayInfoConfig
|
||||
ViewController
|
||||
ViewLinker
|
||||
WbsParameters
|
||||
Well
|
||||
WellAllocationPlot
|
||||
WellAllocationPlotLegend
|
||||
WellBoreStabilityPlot
|
||||
WellDistributionPlot
|
||||
WellDistributionPlotCollection
|
||||
WellFlowRateCurve
|
||||
WellLogCalculatedCurve
|
||||
WellLogExtractionCurve
|
||||
WellLogFile
|
||||
WellLogFileChannel
|
||||
WellLogFileCurve
|
||||
WellLogPlot
|
||||
WellLogPlotCollection
|
||||
WellLogPlotTrack
|
||||
WellLogRftCurve
|
||||
WellMeasurement
|
||||
WellMeasurementCurve
|
||||
WellMeasurementFilePath
|
||||
WellMeasurementInView
|
||||
WellMeasurements
|
||||
WellMeasurementsInView
|
||||
WellPath
|
||||
WellPathAicdParameters
|
||||
WellPathAttribute
|
||||
WellPathAttributes
|
||||
WellPathBase
|
||||
WellPathCompletionSettings
|
||||
WellPathCompletions
|
||||
WellPathFracture
|
||||
WellPathFractureCollection
|
||||
WellPathGeometry
|
||||
WellPathGeometryDef
|
||||
WellPathGroup
|
||||
WellPathTarget
|
||||
WellPathValve
|
||||
WellPaths
|
||||
WellPltPlot
|
||||
WellPltPlotCollection
|
||||
WellRftEnsembleCurveSet
|
||||
WellRftPlot
|
||||
WellRftPlotCollection
|
||||
Wells
|
||||
cafNamedTreeNode
|
||||
cafObjectReferenceTreeNode
|
||||
cafTreeNode
|
||||
cloneView
|
||||
closeProject
|
||||
computeCaseGroupStatistics
|
||||
createGridCaseGroup
|
||||
createGridCaseGroupResult
|
||||
createLgrForCompletions
|
||||
createMultiPlot
|
||||
createMultipleFractures
|
||||
createSaturationPressurePlots
|
||||
createStatisticsCase
|
||||
createStatisticsCaseResult
|
||||
createView
|
||||
createViewResult
|
||||
createWbsPlotResult
|
||||
createWellBoreStabilityPlot
|
||||
exportContourMapToText
|
||||
exportFlowCharacteristics
|
||||
exportLgrForCompletions
|
||||
exportMsw
|
||||
exportMultiCaseSnapshots
|
||||
exportProperty
|
||||
exportPropertyInViews
|
||||
exportSimWellFractureCompletions
|
||||
exportSnapshots
|
||||
exportVisibleCells
|
||||
exportWellLogPlotData
|
||||
exportWellLogPlotDataResult
|
||||
exportWellPathCompletions
|
||||
exportWellPaths
|
||||
importFormationNames
|
||||
importWellLogFiles
|
||||
importWellLogFilesResult
|
||||
importWellPaths
|
||||
importWellPathsResult
|
||||
loadCase
|
||||
loadCaseResult
|
||||
openProject
|
||||
replaceCase
|
||||
replaceMultipleCases
|
||||
replaceSourceCases
|
||||
runOctaveScript
|
||||
saveProject
|
||||
saveProjectAs
|
||||
scaleFractureTemplate
|
||||
setExportFolder
|
||||
setFractureContainment
|
||||
setMainWindowSize
|
||||
setPlotWindowSize
|
||||
setStartDir
|
||||
setTimeStep
|
||||
stackCurves
|
||||
unstackCurves
|
||||
@@ -30,8 +30,10 @@ set(SOURCE_GROUP_HEADER_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaDateTimeDefines.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaPlotCollectionScheduler.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaScheduler.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaSeismicDefines.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryDefines.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaLasDefines.h
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaWellFlowDefines.h
|
||||
)
|
||||
|
||||
set(SOURCE_GROUP_SOURCE_FILES
|
||||
@@ -67,7 +69,9 @@ set(SOURCE_GROUP_SOURCE_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaPlotCollectionScheduler.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaScheduler.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaSummaryDefines.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaSeismicDefines.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaLasDefines.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RiaWellFlowDefines.cpp
|
||||
)
|
||||
|
||||
list(APPEND CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
#include "RicfCommandFileExecutor.h"
|
||||
#include "RicfCommandObject.h"
|
||||
|
||||
#include "CommandRouter/RimCommandRouter.h"
|
||||
#include "PlotTemplates/RimPlotTemplateFolderItem.h"
|
||||
#include "Rim2dIntersectionViewCollection.h"
|
||||
#include "RimAnnotationCollection.h"
|
||||
@@ -47,6 +46,7 @@
|
||||
#include "RimAnnotationTextAppearance.h"
|
||||
#include "RimCellFilterCollection.h"
|
||||
#include "RimCommandObject.h"
|
||||
#include "RimCommandRouter.h"
|
||||
#include "RimCompletionTemplateCollection.h"
|
||||
#include "RimEclipseCaseCollection.h"
|
||||
#include "RimEclipseView.h"
|
||||
@@ -124,6 +124,11 @@
|
||||
#include "gtest/gtest.h"
|
||||
#endif // USE_UNIT_TESTS
|
||||
|
||||
// Required to ignore warning of usused variable when defining caf::PdmMarkdownGenerator
|
||||
#if defined( __clang__ )
|
||||
#pragma clang diagnostic ignored "-Wunused-variable"
|
||||
#endif
|
||||
|
||||
RiaApplication* RiaApplication::s_riaApplication = nullptr;
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -244,7 +249,8 @@ void RiaApplication::createMockModelCustomized()
|
||||
void RiaApplication::createInputMockModel()
|
||||
{
|
||||
bool createView = true;
|
||||
RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( QStringList( RiaDefines::mockModelBasicInputCase() ), createView );
|
||||
RiaImportEclipseCaseTools::openEclipseInputCaseAndPropertiesFromFileNames( QStringList( RiaDefines::mockModelBasicInputCase() ),
|
||||
createView );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -562,8 +568,8 @@ bool RiaApplication::loadProject( const QString& projectFileName, ProjectLoadAct
|
||||
oilField->fractureDefinitionCollection()->createAndAssignTemplateCopyForNonMatchingUnit();
|
||||
|
||||
{
|
||||
std::vector<RimWellPathFracture*> wellPathFractures;
|
||||
oilField->wellPathCollection->descendantsIncludingThisOfType( wellPathFractures );
|
||||
std::vector<RimWellPathFracture*> wellPathFractures =
|
||||
oilField->wellPathCollection->descendantsIncludingThisOfType<RimWellPathFracture>();
|
||||
|
||||
for ( auto fracture : wellPathFractures )
|
||||
{
|
||||
@@ -621,8 +627,7 @@ bool RiaApplication::loadProject( const QString& projectFileName, ProjectLoadAct
|
||||
|
||||
if ( m_project->isProjectFileVersionEqualOrOlderThan( "2018.1.0.103" ) )
|
||||
{
|
||||
std::vector<RimStimPlanColors*> stimPlanColors;
|
||||
riv->descendantsIncludingThisOfType( stimPlanColors );
|
||||
std::vector<RimStimPlanColors*> stimPlanColors = riv->descendantsIncludingThisOfType<RimStimPlanColors>();
|
||||
if ( stimPlanColors.size() == 1 )
|
||||
{
|
||||
stimPlanColors[0]->updateConductivityResultName();
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "RiaCompletionTypeCalculationScheduler.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaResultNames.h"
|
||||
|
||||
#include "RigCaseCellResultsData.h"
|
||||
#include "RigEclipseCaseData.h"
|
||||
|
||||
@@ -48,7 +48,7 @@ private:
|
||||
~RiaCompletionTypeCalculationScheduler() override;
|
||||
|
||||
RiaCompletionTypeCalculationScheduler( const RiaCompletionTypeCalculationScheduler& o ) = delete;
|
||||
void operator=( const RiaCompletionTypeCalculationScheduler& o ) = delete;
|
||||
void operator=( const RiaCompletionTypeCalculationScheduler& o ) = delete;
|
||||
|
||||
private:
|
||||
std::vector<caf::PdmPointer<RimEclipseCase>> m_eclipseCasesToRecalculate;
|
||||
|
||||
@@ -46,6 +46,8 @@ template <>
|
||||
void caf::AppEnum<RiaDefines::DateTimePeriod>::setUp()
|
||||
{
|
||||
addItem( RiaDefines::DateTimePeriod::NONE, "NONE", "None" );
|
||||
addItem( RiaDefines::DateTimePeriod::MINUTE, "MINUTE", "Minute" );
|
||||
addItem( RiaDefines::DateTimePeriod::HOUR, "HOUR", "Hour" );
|
||||
addItem( RiaDefines::DateTimePeriod::DAY, "DAY", "Day" );
|
||||
addItem( RiaDefines::DateTimePeriod::WEEK, "WEEK", "Week" );
|
||||
addItem( RiaDefines::DateTimePeriod::MONTH, "MONTH", "Month" );
|
||||
|
||||
@@ -45,6 +45,8 @@ enum class TimeFormatComponents
|
||||
enum class DateTimePeriod
|
||||
{
|
||||
NONE = -1,
|
||||
MINUTE,
|
||||
HOUR,
|
||||
DAY,
|
||||
WEEK,
|
||||
MONTH,
|
||||
|
||||
@@ -41,6 +41,17 @@ void caf::AppEnum<RiaDefines::ResultCatType>::setUp()
|
||||
setDefault( RiaDefines::ResultCatType::DYNAMIC_NATIVE );
|
||||
}
|
||||
|
||||
template <>
|
||||
void caf::AppEnum<RiaDefines::ResultDataType>::setUp()
|
||||
{
|
||||
addItem( RiaDefines::ResultDataType::UNKNOWN, "UNKNOWN", "Unknown" );
|
||||
addItem( RiaDefines::ResultDataType::FLOAT, "FLOAT", "Float" );
|
||||
addItem( RiaDefines::ResultDataType::DOUBLE, "DOUBLE", "Double" );
|
||||
addItem( RiaDefines::ResultDataType::INTEGER, "INTEGER", "Integer" );
|
||||
|
||||
setDefault( RiaDefines::ResultDataType::FLOAT );
|
||||
}
|
||||
|
||||
template <>
|
||||
void caf::AppEnum<RiaDefines::DepthUnitType>::setUp()
|
||||
{
|
||||
@@ -123,7 +134,6 @@ void caf::AppEnum<RiaDefines::ThemeEnum>::setUp()
|
||||
{
|
||||
addItem( RiaDefines::ThemeEnum::DEFAULT, "DEFAULT", "Default theme" );
|
||||
addItem( RiaDefines::ThemeEnum::DARK, "DARK", "Dark theme" );
|
||||
addItem( RiaDefines::ThemeEnum::LIGHT, "LIGHT", "Light theme" );
|
||||
setDefault( RiaDefines::ThemeEnum::DEFAULT );
|
||||
}
|
||||
|
||||
@@ -159,15 +169,6 @@ void caf::AppEnum<RiaDefines::RowCount>::setUp()
|
||||
|
||||
} // namespace caf
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiaDefines::isNativeCategoryResult( const QString& resultName )
|
||||
{
|
||||
return resultName.endsWith( "NUM" ) || resultName == RiaResultNames::indexIResultName() ||
|
||||
resultName == RiaResultNames::indexJResultName() || resultName == RiaResultNames::indexKResultName();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -52,6 +52,14 @@ enum class ResultCatType
|
||||
UNDEFINED = 999
|
||||
};
|
||||
|
||||
enum class ResultDataType
|
||||
{
|
||||
UNKNOWN,
|
||||
FLOAT,
|
||||
DOUBLE,
|
||||
INTEGER
|
||||
};
|
||||
|
||||
// WARNING: DO NOT CHANGE THE ORDER WITHOUT KNOWING WHAT YOU ARE DOING!
|
||||
// You may well change the behaviour of property filters.
|
||||
enum class WellPathComponentType
|
||||
@@ -79,8 +87,6 @@ enum class MeshModeType
|
||||
NO_MESH
|
||||
};
|
||||
|
||||
bool isNativeCategoryResult( const QString& resultName );
|
||||
|
||||
// Mock model text identifiers
|
||||
QString mockModelBasic();
|
||||
QString mockModelBasicWithResults();
|
||||
@@ -165,7 +171,6 @@ enum class ThemeEnum
|
||||
{
|
||||
DEFAULT,
|
||||
DARK,
|
||||
LIGHT,
|
||||
UNDEFINED
|
||||
};
|
||||
|
||||
|
||||
@@ -70,6 +70,12 @@ std::vector<QString> RiaEclipseFileNameTools::findSummaryFileCandidates()
|
||||
auto smryCandidate = relatedFilePath( EclipseFileType::ECLIPSE_SMSPEC );
|
||||
auto esmryCandidate = relatedFilePath( EclipseFileType::ECLIPSE_ESMRY );
|
||||
|
||||
if ( !smryCandidate.isEmpty() && !esmryCandidate.isEmpty() )
|
||||
{
|
||||
// If both files exist, we prefer the SMSPEC file
|
||||
esmryCandidate = "";
|
||||
}
|
||||
|
||||
return { smryCandidate, esmryCandidate };
|
||||
}
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
#include "RimSummaryPlot.h"
|
||||
#include "RimTextAnnotation.h"
|
||||
#include "RimTextAnnotationInView.h"
|
||||
#include "RimTools.h"
|
||||
#include "RimViewLinker.h"
|
||||
#include "RimViewLinkerCollection.h"
|
||||
#include "RimWellLogFile.h"
|
||||
@@ -1375,10 +1376,9 @@ void RiaGuiApplication::applyGuiPreferences( const RiaPreferences*
|
||||
|
||||
if ( this->project() )
|
||||
{
|
||||
std::vector<RimViewWindow*> allViewWindows;
|
||||
project()->descendantsIncludingThisOfType( allViewWindows );
|
||||
std::vector<RimViewWindow*> allViewWindows = project()->descendantsIncludingThisOfType<RimViewWindow>();
|
||||
|
||||
RimWellPathCollection* wellPathCollection = this->project()->activeOilField()->wellPathCollection();
|
||||
RimWellPathCollection* wellPathCollection = RimTools::wellPathCollection();
|
||||
|
||||
bool existingViewsWithDifferentMeshLines = false;
|
||||
bool existingViewsWithCustomColors = false;
|
||||
@@ -1446,10 +1446,10 @@ void RiaGuiApplication::applyGuiPreferences( const RiaPreferences*
|
||||
reply = QMessageBox::question( activeMainWindow(),
|
||||
QString( "Apply %1 to Existing Views or Plots?" ).arg( listString ),
|
||||
QString( "You have changed default %1 and have existing views or plots with "
|
||||
"different settings.\n" )
|
||||
"different settings.\n" )
|
||||
.arg( listString ) +
|
||||
QString( "Do you want to apply the new default settings to all existing "
|
||||
"views?" ),
|
||||
"views?" ),
|
||||
QMessageBox::Ok | QMessageBox::Cancel );
|
||||
applySettingsToAllViews = ( reply == QMessageBox::Ok );
|
||||
}
|
||||
@@ -1674,7 +1674,7 @@ bool RiaGuiApplication::notify( QObject* receiver, QEvent* event )
|
||||
memoryExhaustedBox = new QMessageBox( QMessageBox::Critical,
|
||||
"ResInsight Exhausted Memory",
|
||||
"Memory is Exhausted!\n ResInsight could not allocate the memory needed, and is now "
|
||||
"unstable and will probably crash soon." );
|
||||
"unstable and will probably crash soon." );
|
||||
}
|
||||
|
||||
bool done = false;
|
||||
|
||||
@@ -19,9 +19,11 @@
|
||||
#include "RiaMemoryCleanup.h"
|
||||
|
||||
#include "RigCaseCellResultsData.h"
|
||||
#include "RigEclipseResultInfo.h"
|
||||
#include "RigFemPartResultsCollection.h"
|
||||
#include "RigFemResultAddress.h"
|
||||
#include "RigGeoMechCaseData.h"
|
||||
|
||||
#include "Rim3dView.h"
|
||||
#include "RimEclipseCase.h"
|
||||
#include "RimEclipseResultDefinition.h"
|
||||
@@ -29,8 +31,6 @@
|
||||
#include "RimGeoMechResultDefinition.h"
|
||||
#include "RimProject.h"
|
||||
|
||||
#include "RigEclipseResultInfo.h"
|
||||
#include "cafPdmUiListEditor.h"
|
||||
#include "cafPdmUiPushButtonEditor.h"
|
||||
#include "cafPdmUiTreeSelectionEditor.h"
|
||||
|
||||
@@ -46,17 +46,15 @@ CAF_PDM_SOURCE_INIT( RiaMemoryCleanup, "RiaMemoryCleanup" );
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiaMemoryCleanup::RiaMemoryCleanup()
|
||||
{
|
||||
// clang-format off
|
||||
CAF_PDM_InitFieldNoDefault(&m_case, "DataCase", "Case");
|
||||
CAF_PDM_InitFieldNoDefault( &m_case, "DataCase", "Case" );
|
||||
m_case = nullptr;
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_resultsToDelete, "ResultsToDelete", "Results In Memory");
|
||||
m_resultsToDelete.uiCapability()->setUiLabelPosition(caf::PdmUiItemInfo::TOP);
|
||||
m_resultsToDelete.uiCapability()->setUiEditorTypeName(caf::PdmUiTreeSelectionEditor::uiEditorTypeName());
|
||||
CAF_PDM_InitFieldNoDefault( &m_resultsToDelete, "ResultsToDelete", "Results In Memory" );
|
||||
m_resultsToDelete.uiCapability()->setUiLabelPosition( caf::PdmUiItemInfo::TOP );
|
||||
m_resultsToDelete.uiCapability()->setUiEditorTypeName( caf::PdmUiTreeSelectionEditor::uiEditorTypeName() );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&m_performDelete, "ClearSelectedData", "");
|
||||
caf::PdmUiPushButtonEditor::configureEditorForField(&m_performDelete);
|
||||
// clang-format on
|
||||
CAF_PDM_InitFieldNoDefault( &m_performDelete, "ClearSelectedData", "" );
|
||||
caf::PdmUiPushButtonEditor::configureEditorForField( &m_performDelete );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -153,8 +151,7 @@ std::set<RigFemResultAddress> RiaMemoryCleanup::findGeoMechCaseResultsInUse() co
|
||||
auto geoMechCase = dynamic_cast<RimGeoMechCase*>( m_case() );
|
||||
if ( geoMechCase )
|
||||
{
|
||||
std::vector<RimFemResultObserver*> geoMechResults;
|
||||
geoMechCase->descendantsIncludingThisOfType( geoMechResults );
|
||||
std::vector<RimFemResultObserver*> geoMechResults = geoMechCase->descendantsIncludingThisOfType<RimFemResultObserver>();
|
||||
for ( RimFemResultObserver* resultDef : geoMechResults )
|
||||
{
|
||||
auto pdmObj = dynamic_cast<caf::PdmObject*>( resultDef );
|
||||
@@ -181,8 +178,7 @@ std::set<RigEclipseResultAddress> RiaMemoryCleanup::findEclipseResultsInUse() co
|
||||
RimEclipseCase* eclipseCase = dynamic_cast<RimEclipseCase*>( m_case() );
|
||||
if ( eclipseCase )
|
||||
{
|
||||
std::vector<RimEclipseResultDefinition*> eclipseResultDefs;
|
||||
eclipseCase->descendantsIncludingThisOfType( eclipseResultDefs );
|
||||
auto eclipseResultDefs = eclipseCase->descendantsIncludingThisOfType<RimEclipseResultDefinition>();
|
||||
for ( RimEclipseResultDefinition* resultDef : eclipseResultDefs )
|
||||
{
|
||||
RigEclipseResultAddress resultAddr( resultDef->resultType(), resultDef->resultVariable() );
|
||||
|
||||
@@ -432,7 +432,7 @@ void RiaPreferencesSummary::defineEditorAttribute( const caf::PdmFieldHandle* fi
|
||||
auto attrib = dynamic_cast<caf::PdmUiListEditorAttribute*>( attribute );
|
||||
if ( attrib )
|
||||
{
|
||||
attrib->m_heightHint = 30;
|
||||
attrib->heightHint = 30;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
#include "RiaResultNames.h"
|
||||
|
||||
#include "RigEclipseResultAddress.h"
|
||||
|
||||
#include "cafAppEnum.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -361,6 +363,30 @@ QString RiaResultNames::indexKResultName()
|
||||
return "INDEX_K";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RigEclipseResultAddress RiaResultNames::staticIntegerAddress( const QString& resultName )
|
||||
{
|
||||
return RigEclipseResultAddress( RiaDefines::ResultCatType::STATIC_NATIVE, RiaDefines::ResultDataType::INTEGER, resultName );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiaResultNames::faultDistanceName()
|
||||
{
|
||||
return "FAULTDIST";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiaResultNames::facies()
|
||||
{
|
||||
return "FACIES";
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -20,7 +20,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
class RigEclipseResultAddress;
|
||||
|
||||
#include <QString>
|
||||
|
||||
#include <set>
|
||||
#include <vector>
|
||||
|
||||
@@ -66,9 +69,13 @@ QString faultReactAssessmentPrefix();
|
||||
|
||||
QString completionTypeResultName();
|
||||
|
||||
QString indexIResultName();
|
||||
QString indexJResultName();
|
||||
QString indexKResultName();
|
||||
QString indexIResultName();
|
||||
QString indexJResultName();
|
||||
QString indexKResultName();
|
||||
RigEclipseResultAddress staticIntegerAddress( const QString& resultName );
|
||||
|
||||
QString faultDistanceName();
|
||||
QString facies();
|
||||
|
||||
QString soil();
|
||||
QString sgas();
|
||||
|
||||
35
ApplicationLibCode/Application/RiaSeismicDefines.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 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 "RiaSeismicDefines.h"
|
||||
|
||||
#include "cafAppEnum.h"
|
||||
|
||||
namespace caf
|
||||
{
|
||||
template <>
|
||||
void caf::AppEnum<RiaDefines::SeismicSectionType>::setUp()
|
||||
{
|
||||
addItem( RiaDefines::SeismicSectionType::SS_INLINE, "SS_INLINE", "Inline" );
|
||||
addItem( RiaDefines::SeismicSectionType::SS_XLINE, "SS_XLINE", "Xline" );
|
||||
addItem( RiaDefines::SeismicSectionType::SS_DEPTHSLICE, "SS_DEPTHSLICE", "Depth Slice" );
|
||||
addItem( RiaDefines::SeismicSectionType::SS_POLYLINE, "SS_POLYLINE", "Polyline" );
|
||||
addItem( RiaDefines::SeismicSectionType::SS_WELLPATH, "SS_WELLPATH", "Well Path" );
|
||||
setDefault( RiaDefines::SeismicSectionType::SS_INLINE );
|
||||
}
|
||||
} // namespace caf
|
||||
39
ApplicationLibCode/Application/RiaSeismicDefines.h
Normal file
@@ -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
|
||||
|
||||
namespace RiaDefines
|
||||
{
|
||||
enum class SeismicSliceDirection
|
||||
{
|
||||
INLINE,
|
||||
XLINE,
|
||||
DEPTH
|
||||
};
|
||||
|
||||
enum class SeismicSectionType
|
||||
{
|
||||
SS_INLINE,
|
||||
SS_XLINE,
|
||||
SS_DEPTHSLICE,
|
||||
SS_POLYLINE,
|
||||
SS_WELLPATH
|
||||
};
|
||||
|
||||
}; // namespace RiaDefines
|
||||
@@ -22,6 +22,13 @@
|
||||
|
||||
namespace RiaDefines
|
||||
{
|
||||
enum class FileType
|
||||
{
|
||||
SMSPEC,
|
||||
REVEAL_SUMMARY,
|
||||
STIMPLAN_SUMMARY
|
||||
};
|
||||
|
||||
QString summaryField();
|
||||
QString summaryAquifer();
|
||||
QString summaryNetwork();
|
||||
|
||||
27
ApplicationLibCode/Application/RiaWellFlowDefines.cpp
Normal file
@@ -0,0 +1,27 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 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 "RiaWellFlowDefines.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiaDefines::reservoirTracerName()
|
||||
{
|
||||
return "Reservoir";
|
||||
}
|
||||
26
ApplicationLibCode/Application/RiaWellFlowDefines.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// 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>
|
||||
|
||||
namespace RiaDefines
|
||||
{
|
||||
QString reservoirTracerName();
|
||||
}; // namespace RiaDefines
|
||||
@@ -531,6 +531,24 @@ const caf::ColorTable& RiaColorTables::correlationPaletteColors()
|
||||
return colorTable;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const caf::ColorTable& RiaColorTables::heatMapPaletteColors()
|
||||
{
|
||||
static std::vector<cvf::Color3ub> colors{ cvf::Color3ub::DARK_BLUE,
|
||||
cvf::Color3ub( 0, 0, 240 ), // Medium Blue
|
||||
cvf::Color3ub( 0, 102, 204 ), // Transition Medium Blue to Cyan
|
||||
cvf::Color3ub::CYAN,
|
||||
cvf::Color3ub( 75, 255, 47 ), // Green/Yellow more green
|
||||
cvf::Color3ub::DARK_ORANGE,
|
||||
cvf::Color3ub::YELLOW };
|
||||
|
||||
static caf::ColorTable colorTable = caf::ColorTable( colors );
|
||||
|
||||
return colorTable;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
class RiaColorTables
|
||||
{
|
||||
public:
|
||||
typedef std::map<RiaDefines::WellPathComponentType, cvf::Color3::ColorIdent> WellPathComponentColors;
|
||||
using WellPathComponentColors = std::map<RiaDefines::WellPathComponentType, cvf::Color3::ColorIdent>;
|
||||
|
||||
static const caf::ColorTable& normalPaletteColors();
|
||||
static const caf::ColorTable& normalPaletteOppositeOrderingColors();
|
||||
@@ -62,6 +62,7 @@ public:
|
||||
static const caf::ColorTable& wellPathsPaletteColors();
|
||||
static const caf::ColorTable& waterAndRockPaletteColors();
|
||||
static const caf::ColorTable& correlationPaletteColors();
|
||||
static const caf::ColorTable& heatMapPaletteColors();
|
||||
|
||||
static cvf::Color3f undefinedCellColor();
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ class QDateTime;
|
||||
class RiaCurveDataTools
|
||||
{
|
||||
public:
|
||||
typedef std::vector<std::pair<size_t, size_t>> CurveIntervals;
|
||||
using CurveIntervals = std::vector<std::pair<size_t, size_t>>;
|
||||
|
||||
enum class ErrorAxis
|
||||
{
|
||||
|
||||
@@ -38,7 +38,7 @@ template <typename XValueType>
|
||||
class RiaCurveMerger
|
||||
{
|
||||
public:
|
||||
typedef XValueComparator<XValueType> XComparator;
|
||||
using XComparator = XValueComparator<XValueType>;
|
||||
RiaCurveMerger();
|
||||
|
||||
void addCurveData( const std::vector<XValueType>& xValues, const std::vector<double>& yValues );
|
||||
@@ -78,7 +78,7 @@ private:
|
||||
std::vector<std::vector<double>> m_interpolatedValuesForAllCurves;
|
||||
};
|
||||
|
||||
typedef RiaCurveMerger<time_t> RiaTimeHistoryCurveMerger;
|
||||
using RiaTimeHistoryCurveMerger = RiaCurveMerger<time_t>;
|
||||
|
||||
template <>
|
||||
bool XValueComparator<double>::equals( const double& lhs, const double& rhs );
|
||||
|
||||
@@ -64,12 +64,14 @@ QDateTime RiaDateStringParser::parseDateString( const std::string& dateString, O
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiaDateStringParser::parseDateStringWithSeparators( const std::string& dateString, int& year, int& month, int& day, OrderPreference preference )
|
||||
{
|
||||
auto tryParseAllYearFirst = []( const std::string& dateString, int& year, int& month, int& day ) {
|
||||
auto tryParseAllYearFirst = []( const std::string& dateString, int& year, int& month, int& day )
|
||||
{
|
||||
return tryParseYearFirst( dateString, year, month, day ) || tryParseDayFirst( dateString, year, month, day ) ||
|
||||
tryParseMonthFirst( dateString, year, month, day );
|
||||
};
|
||||
|
||||
auto tryParseAllDayFirst = []( const std::string& dateString, int& year, int& month, int& day ) {
|
||||
auto tryParseAllDayFirst = []( const std::string& dateString, int& year, int& month, int& day )
|
||||
{
|
||||
return tryParseDayFirst( dateString, year, month, day ) || tryParseYearFirst( dateString, year, month, day ) ||
|
||||
tryParseMonthFirst( dateString, year, month, day );
|
||||
};
|
||||
@@ -83,12 +85,14 @@ bool RiaDateStringParser::parseDateStringWithSeparators( const std::string& date
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiaDateStringParser::parseDateStringWithoutSeparators( const std::string& dateString, int& year, int& month, int& day, OrderPreference preference )
|
||||
{
|
||||
auto tryParseAllYearFirstNoSeparators = []( const std::string& dateString, int& year, int& month, int& day ) {
|
||||
auto tryParseAllYearFirstNoSeparators = []( const std::string& dateString, int& year, int& month, int& day )
|
||||
{
|
||||
return tryParseYearFirstNoSeparators( dateString, year, month, day ) ||
|
||||
tryParseDayFirstNoSeparators( dateString, year, month, day ) || tryParseMonthFirstNoSeparators( dateString, year, month, day );
|
||||
};
|
||||
|
||||
auto tryParseAllDayFirstNoSeparators = []( const std::string& dateString, int& year, int& month, int& day ) {
|
||||
auto tryParseAllDayFirstNoSeparators = []( const std::string& dateString, int& year, int& month, int& day )
|
||||
{
|
||||
return tryParseDayFirstNoSeparators( dateString, year, month, day ) || tryParseYearFirstNoSeparators( dateString, year, month, day ) ||
|
||||
tryParseMonthFirstNoSeparators( dateString, year, month, day );
|
||||
};
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "RiaEnsembleNameTools.h"
|
||||
|
||||
#include "RiaFilePathTools.h"
|
||||
#include "RiaSummaryDefines.h"
|
||||
#include "RiaTextStringTools.h"
|
||||
|
||||
#include "RimCaseDisplayNameTools.h"
|
||||
@@ -133,6 +134,105 @@ std::vector<QStringList> RiaEnsembleNameTools::groupFilesByEnsemble( const QStri
|
||||
return groupedByIteration;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::map<QString, QStringList> RiaEnsembleNameTools::groupFilesByCustomEnsemble( const QStringList& fileNames, RiaDefines::FileType fileType )
|
||||
{
|
||||
std::vector<QStringList> componentsForAllFilePaths;
|
||||
for ( const auto& filePath : fileNames )
|
||||
{
|
||||
QStringList components = RiaFilePathTools::splitPathIntoComponents( filePath );
|
||||
componentsForAllFilePaths.push_back( components );
|
||||
}
|
||||
|
||||
auto mapping = findUniqueCustomEnsembleNames( fileType, fileNames, componentsForAllFilePaths );
|
||||
|
||||
std::set<QString> iterations;
|
||||
for ( const auto& [name, iterFileNamePair] : mapping )
|
||||
{
|
||||
iterations.insert( iterFileNamePair.first );
|
||||
}
|
||||
|
||||
std::map<QString, QStringList> groupedByIteration;
|
||||
|
||||
for ( const QString& groupIteration : iterations )
|
||||
{
|
||||
QStringList fileNamesFromIteration;
|
||||
|
||||
for ( const auto& [name, iterFileNamePair] : mapping )
|
||||
{
|
||||
QString iteration = iterFileNamePair.first;
|
||||
QString fileName = iterFileNamePair.second;
|
||||
|
||||
if ( groupIteration == iteration )
|
||||
{
|
||||
fileNamesFromIteration << fileName;
|
||||
}
|
||||
}
|
||||
groupedByIteration[groupIteration] = fileNamesFromIteration;
|
||||
}
|
||||
|
||||
return groupedByIteration;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::map<QString, std::pair<QString, QString>>
|
||||
RiaEnsembleNameTools::findUniqueCustomEnsembleNames( RiaDefines::FileType fileType,
|
||||
const QStringList& fileNames,
|
||||
const std::vector<QStringList>& fileNameComponents )
|
||||
{
|
||||
CAF_ASSERT( fileNames.size() == static_cast<int>( fileNameComponents.size() ) );
|
||||
|
||||
std::map<QString, std::pair<QString, QString>> mapping;
|
||||
|
||||
int i = 0;
|
||||
for ( const auto& fileComponents : fileNameComponents )
|
||||
{
|
||||
int numComponents = fileComponents.size();
|
||||
|
||||
if ( fileType == RiaDefines::FileType::STIMPLAN_SUMMARY )
|
||||
{
|
||||
if ( numComponents >= 8 && fileComponents[numComponents - 6] == "stimplan" )
|
||||
{
|
||||
// Expected path: realization/iteration/stimplan/output/well/job/fracture/data.csv
|
||||
// Example: realization-1/iteration-1/stimplan/output/H-B33/job-01/mainfrac/data.csv
|
||||
QString fileName = fileNames[i];
|
||||
QString fracture = fileComponents[numComponents - 2];
|
||||
QString job = fileComponents[numComponents - 3];
|
||||
QString well = fileComponents[numComponents - 4];
|
||||
QString iteration = fileComponents[numComponents - 7];
|
||||
QString realization = fileComponents[numComponents - 8];
|
||||
|
||||
QString key = QString( "%1, %2, %3, %4, %5" ).arg( iteration, realization, well, fracture, job );
|
||||
QString displayName = QString( "%1, %2, %3, %4" ).arg( iteration, well, fracture, job );
|
||||
mapping[key] = std::make_pair( displayName, fileName );
|
||||
}
|
||||
}
|
||||
else if ( fileType == RiaDefines::FileType::REVEAL_SUMMARY )
|
||||
{
|
||||
if ( numComponents >= 6 && fileComponents[numComponents - 4] == "reveal" )
|
||||
{
|
||||
// Expected path: realization/iteration/reveal/output/well/data.csv
|
||||
// Example: realization-1/iteration-1/reveal/output/H-B33/data.csv
|
||||
|
||||
QString fileName = fileNames[i];
|
||||
QString well = fileComponents[numComponents - 2];
|
||||
QString iteration = fileComponents[numComponents - 5];
|
||||
QString realization = fileComponents[numComponents - 6];
|
||||
QString key = QString( "%1, %2, %3" ).arg( iteration, realization, well );
|
||||
QString displayName = QString( "%1, %2" ).arg( iteration, well );
|
||||
mapping[key] = std::make_pair( displayName, fileName );
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
return mapping;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -165,8 +265,7 @@ QString RiaEnsembleNameTools::uniqueShortNameForSummaryCase( RimSummaryCase* sum
|
||||
{
|
||||
std::set<QString> allAutoShortNames;
|
||||
|
||||
std::vector<RimSummaryCase*> allCases;
|
||||
RimProject::current()->descendantsOfType( allCases );
|
||||
std::vector<RimSummaryCase*> allCases = RimProject::current()->descendantsOfType<RimSummaryCase>();
|
||||
|
||||
for ( auto sumCase : allCases )
|
||||
{
|
||||
@@ -283,8 +382,10 @@ QString RiaEnsembleNameTools::findCommonBaseName( const QStringList& fileNames )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RiaEnsembleNameTools::uniqueShortName( const QString& sourceFileName, const QStringList& allFileNames, const QString& ensembleCaseName )
|
||||
{
|
||||
std::map<QString, QStringList> keyFileComponentsForAllFiles = RiaFilePathTools::keyPathComponentsForEachFilePath( allFileNames );
|
||||
// Handle ensemble with only one realizations separately.
|
||||
if ( allFileNames.size() == 1 ) return ensembleCaseName;
|
||||
|
||||
std::map<QString, QStringList> keyFileComponentsForAllFiles = RiaFilePathTools::keyPathComponentsForEachFilePath( allFileNames );
|
||||
return uniqueShortNameFromComponents( sourceFileName, keyFileComponentsForAllFiles, ensembleCaseName );
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
#include "RiaSummaryDefines.h"
|
||||
|
||||
class RimSummaryCase;
|
||||
|
||||
//==================================================================================================
|
||||
@@ -49,7 +51,12 @@ public:
|
||||
const std::map<QString, QStringList>& keyFileComponentsForAllFiles,
|
||||
const QString& ensembleCaseName );
|
||||
|
||||
static std::vector<QStringList> groupFilesByEnsemble( const QStringList& fileNames, EnsembleGroupingMode groupingMode );
|
||||
static std::vector<QStringList> groupFilesByEnsemble( const QStringList& fileNames, EnsembleGroupingMode groupingMode );
|
||||
static std::map<QString, QStringList> groupFilesByCustomEnsemble( const QStringList& fileNames, RiaDefines::FileType fileType );
|
||||
|
||||
static std::map<QString, std::pair<QString, QString>> findUniqueCustomEnsembleNames( RiaDefines::FileType fileType,
|
||||
const QStringList& fileNames,
|
||||
const std::vector<QStringList>& fileNameComponents );
|
||||
|
||||
static QString uniqueShortNameForEnsembleCase( RimSummaryCase* summaryCase );
|
||||
static QString uniqueShortNameForSummaryCase( RimSummaryCase* summaryCase );
|
||||
|
||||
@@ -40,14 +40,14 @@ RigEclipseWellLogExtractor* RiaExtractionTools::findOrCreateWellLogExtractor( Ri
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RigGeoMechWellLogExtractor* RiaExtractionTools::findOrCreateWellLogExtractor( RimWellPath* wellPath, RimGeoMechCase* geomCase )
|
||||
RigGeoMechWellLogExtractor* RiaExtractionTools::findOrCreateWellLogExtractor( RimWellPath* wellPath, RimGeoMechCase* geomCase, int partId )
|
||||
{
|
||||
if ( !( wellPath && geomCase ) ) return nullptr;
|
||||
|
||||
auto wlPlotCollection = wellLogPlotCollection();
|
||||
if ( !wlPlotCollection ) return nullptr;
|
||||
|
||||
return wlPlotCollection->findOrCreateExtractor( wellPath, geomCase );
|
||||
return wlPlotCollection->findOrCreateExtractor( wellPath, geomCase, partId );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -60,8 +60,7 @@ RigEclipseWellLogExtractor* RiaExtractionTools::findOrCreateSimWellExtractor( co
|
||||
auto wlPlotCollection = wellLogPlotCollection();
|
||||
if ( !wlPlotCollection ) return nullptr;
|
||||
|
||||
RimEclipseCase* eclipseCase = nullptr;
|
||||
simWell->firstAncestorOrThisOfType( eclipseCase );
|
||||
auto eclipseCase = simWell->firstAncestorOrThisOfType<RimEclipseCase>();
|
||||
if ( !( eclipseCase && eclipseCase->eclipseCaseData() ) )
|
||||
{
|
||||
return nullptr;
|
||||
|
||||
@@ -37,7 +37,7 @@ class QString;
|
||||
namespace RiaExtractionTools
|
||||
{
|
||||
RigEclipseWellLogExtractor* findOrCreateWellLogExtractor( RimWellPath* wellPath, RimEclipseCase* eclipseCase );
|
||||
RigGeoMechWellLogExtractor* findOrCreateWellLogExtractor( RimWellPath* wellPath, RimGeoMechCase* geomCase );
|
||||
RigGeoMechWellLogExtractor* findOrCreateWellLogExtractor( RimWellPath* wellPath, RimGeoMechCase* geomCase, int partId = 0 );
|
||||
|
||||
RigEclipseWellLogExtractor* findOrCreateSimWellExtractor( const RimSimWellInView* simWell, const RigWellPath* wellPathGeom );
|
||||
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
|
||||
RiaImageCompareReporter::RiaImageCompareReporter( void )
|
||||
RiaImageCompareReporter::RiaImageCompareReporter()
|
||||
{
|
||||
m_showOriginal = true;
|
||||
m_showGenerated = true;
|
||||
m_showInteractiveDiff = false;
|
||||
}
|
||||
|
||||
RiaImageCompareReporter::~RiaImageCompareReporter( void )
|
||||
RiaImageCompareReporter::~RiaImageCompareReporter()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -61,11 +61,11 @@ void RiaImageTools::distanceTransform2d( std::vector<std::vector<unsigned int>>&
|
||||
}
|
||||
}
|
||||
|
||||
auto f = []( int64_t x, int64_t i, const std::vector<std::vector<int64_t>>& g, int64_t y ) {
|
||||
return ( x - i ) * ( x - i ) + g[i][y] * g[i][y];
|
||||
};
|
||||
auto f = []( int64_t x, int64_t i, const std::vector<std::vector<int64_t>>& g, int64_t y )
|
||||
{ return ( x - i ) * ( x - i ) + g[i][y] * g[i][y]; };
|
||||
|
||||
auto sep = []( int64_t i, int64_t u, const std::vector<std::vector<int64_t>>& g, int64_t y ) {
|
||||
auto sep = []( int64_t i, int64_t u, const std::vector<std::vector<int64_t>>& g, int64_t y )
|
||||
{
|
||||
if ( i == u ) return (int64_t)0;
|
||||
|
||||
int64_t numerator = u * u - i * i + g[u][y] * g[u][y] - g[i][y] * g[i][y];
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
#include "SummaryPlotCommands/RicNewSummaryCurveFeature.h"
|
||||
#include "SummaryPlotCommands/RicSummaryPlotFeatureImpl.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaGuiApplication.h"
|
||||
#include "RiaLogging.h"
|
||||
|
||||
@@ -74,8 +73,8 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile( const QStringList&
|
||||
bool noDialog,
|
||||
std::shared_ptr<RifReaderSettings> readerSettings )
|
||||
{
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RimProject* project = app->project();
|
||||
RimProject* project = RimProject::current();
|
||||
if ( !project ) return false;
|
||||
|
||||
// Get list of files to import
|
||||
RifSummaryCaseRestartSelector selector;
|
||||
@@ -124,11 +123,10 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile( const QStringList&
|
||||
auto existingSummaryCase = sumCaseColl->findTopLevelSummaryCaseFromFileName( newSumCase->summaryHeaderFilename() );
|
||||
if ( existingSummaryCase )
|
||||
{
|
||||
existingSummaryCase->firstAncestorOrThisOfType( existingCollection );
|
||||
existingCollection = existingSummaryCase->firstAncestorOrThisOfType<RimSummaryCaseCollection>();
|
||||
|
||||
// Replace file summary case pointers in Rft Curves
|
||||
std::vector<RimWellLogRftCurve*> rftCurves;
|
||||
existingSummaryCase->objectsWithReferringPtrFieldsOfType( rftCurves );
|
||||
auto rftCurves = existingSummaryCase->objectsWithReferringPtrFieldsOfType<RimWellLogRftCurve>();
|
||||
for ( RimWellLogRftCurve* curve : rftCurves )
|
||||
{
|
||||
if ( curve->summaryCase() == existingSummaryCase )
|
||||
@@ -139,8 +137,7 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile( const QStringList&
|
||||
|
||||
// Replace all occurrences of file sum with ecl sum
|
||||
|
||||
std::vector<RimSummaryCurve*> objects;
|
||||
existingSummaryCase->objectsWithReferringPtrFieldsOfType( objects );
|
||||
auto objects = existingSummaryCase->objectsWithReferringPtrFieldsOfType<RimSummaryCurve>();
|
||||
|
||||
// UI settings of a curve filter is updated based
|
||||
// on the new case association for the curves in the curve filter
|
||||
@@ -159,8 +156,7 @@ bool RiaImportEclipseCaseTools::openEclipseCasesFromFile( const QStringList&
|
||||
summaryCurve->setSummaryCaseY( newSumCase );
|
||||
}
|
||||
|
||||
RimSummaryCurveCollection* parentCollection = nullptr;
|
||||
summaryCurve->firstAncestorOrThisOfType( parentCollection );
|
||||
auto parentCollection = summaryCurve->firstAncestorOrThisOfType<RimSummaryCurveCollection>();
|
||||
if ( parentCollection )
|
||||
{
|
||||
parentCollection->loadDataAndUpdate( true );
|
||||
@@ -254,24 +250,25 @@ bool RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilter( const QString
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( const QStringList& fileNames, bool createDefaultView )
|
||||
RiaImportEclipseCaseTools::CaseFileNameAndId
|
||||
RiaImportEclipseCaseTools::openEclipseInputCaseAndPropertiesFromFileNames( const QStringList& fileNames, bool createDefaultView )
|
||||
{
|
||||
RimProject* project = RimProject::current();
|
||||
if ( !project ) return { QString(), -1 };
|
||||
|
||||
auto* rimInputReservoir = new RimEclipseInputCase();
|
||||
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RimProject* project = app->project();
|
||||
|
||||
project->assignCaseIdToCase( rimInputReservoir );
|
||||
|
||||
bool gridImportSuccess = rimInputReservoir->openDataFileSet( fileNames );
|
||||
if ( !gridImportSuccess )
|
||||
{
|
||||
RiaLogging::error( "Failed to import grid" );
|
||||
return -1;
|
||||
delete rimInputReservoir;
|
||||
return { QString(), -1 };
|
||||
}
|
||||
|
||||
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
|
||||
if ( analysisModels == nullptr ) return false;
|
||||
if ( analysisModels == nullptr ) return { QString(), -1 };
|
||||
|
||||
analysisModels->cases.push_back( rimInputReservoir );
|
||||
|
||||
@@ -297,7 +294,22 @@ int RiaImportEclipseCaseTools::openEclipseInputCaseFromFileNames( const QStringL
|
||||
Riu3DMainWindowTools::selectAsCurrentItem( eclipseView->cellResult() );
|
||||
}
|
||||
|
||||
return rimInputReservoir->caseId();
|
||||
return { rimInputReservoir->gridFileName(), rimInputReservoir->caseId() };
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<int> RiaImportEclipseCaseTools::openEclipseInputCasesFromFileNames( const QStringList& fileNames, bool createDefaultView )
|
||||
{
|
||||
std::vector<int> eclipseCaseIds;
|
||||
for ( const auto& fileName : fileNames )
|
||||
{
|
||||
// Open with single file
|
||||
auto [caseFileName, caseId] = openEclipseInputCaseAndPropertiesFromFileNames( { fileName }, createDefaultView );
|
||||
eclipseCaseIds.push_back( caseId );
|
||||
}
|
||||
return eclipseCaseIds;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -318,6 +330,12 @@ int RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( const QStr
|
||||
bool createView,
|
||||
std::shared_ptr<RifReaderSettings> readerSettings )
|
||||
{
|
||||
RimProject* project = RimProject::current();
|
||||
if ( !project ) return -1;
|
||||
|
||||
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
|
||||
if ( analysisModels == nullptr ) return -1;
|
||||
|
||||
QFileInfo gridFileName( fileName );
|
||||
QString caseName = gridFileName.completeBaseName();
|
||||
|
||||
@@ -325,16 +343,6 @@ int RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( const QStr
|
||||
rimResultReservoir->setCaseInfo( caseName, fileName );
|
||||
rimResultReservoir->setReaderSettings( readerSettings );
|
||||
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RimProject* project = app->project();
|
||||
|
||||
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
|
||||
if ( analysisModels == nullptr )
|
||||
{
|
||||
delete rimResultReservoir;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ( RiaGuiApplication::isRunning() )
|
||||
{
|
||||
RicShowMainWindowFeature::showMainWindow();
|
||||
@@ -345,9 +353,7 @@ int RiaImportEclipseCaseTools::openEclipseCaseShowTimeStepFilterImpl( const QStr
|
||||
if ( !rimResultReservoir->importGridAndResultMetaData( showTimeStepFilter ) )
|
||||
{
|
||||
analysisModels->removeCaseFromAllGroups( rimResultReservoir );
|
||||
|
||||
delete rimResultReservoir;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -395,8 +401,8 @@ bool RiaImportEclipseCaseTools::addEclipseCases( const QStringList& fileNames, R
|
||||
std::vector<std::vector<int>> mainCaseGridDimensions;
|
||||
RimIdenticalGridCaseGroup* gridCaseGroup = nullptr;
|
||||
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RimProject* project = app->project();
|
||||
RimProject* project = RimProject::current();
|
||||
if ( !project ) return false;
|
||||
|
||||
{
|
||||
QString firstFileName = fileNames[0];
|
||||
@@ -409,7 +415,6 @@ bool RiaImportEclipseCaseTools::addEclipseCases( const QStringList& fileNames, R
|
||||
if ( !rimResultReservoir->openEclipseGridFile() )
|
||||
{
|
||||
delete rimResultReservoir;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -487,28 +492,81 @@ bool RiaImportEclipseCaseTools::addEclipseCases( const QStringList& fileNames, R
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
int RiaImportEclipseCaseTools::openRoffCaseFromFileNames( const QStringList& fileNames, bool createDefaultView )
|
||||
std::vector<int> RiaImportEclipseCaseTools::openRoffCasesFromFileNames( const QStringList& fileNames, bool createDefaultView )
|
||||
{
|
||||
CAF_ASSERT( !fileNames.empty() );
|
||||
|
||||
auto* roffCase = new RimRoffCase();
|
||||
RimProject* project = RimProject::current();
|
||||
if ( !project ) return {};
|
||||
|
||||
RiaApplication* app = RiaApplication::instance();
|
||||
RimProject* project = app->project();
|
||||
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
|
||||
if ( !analysisModels ) return {};
|
||||
|
||||
std::vector<int> roffCaseIds;
|
||||
for ( const auto& fileName : fileNames )
|
||||
{
|
||||
auto* roffCase = new RimRoffCase();
|
||||
project->assignCaseIdToCase( roffCase );
|
||||
roffCase->setGridFileName( fileName );
|
||||
|
||||
bool gridImportSuccess = roffCase->openEclipseGridFile();
|
||||
if ( !gridImportSuccess )
|
||||
{
|
||||
const auto errMsg = "Failed to import grid from file: " + fileName.toStdString();
|
||||
RiaLogging::error( errMsg.c_str() );
|
||||
delete roffCase;
|
||||
continue;
|
||||
}
|
||||
|
||||
analysisModels->cases.push_back( roffCase );
|
||||
|
||||
RimEclipseView* eclipseView = nullptr;
|
||||
if ( createDefaultView )
|
||||
{
|
||||
eclipseView = roffCase->createAndAddReservoirView();
|
||||
|
||||
eclipseView->cellResult()->setResultType( RiaDefines::ResultCatType::INPUT_PROPERTY );
|
||||
|
||||
if ( RiaGuiApplication::isRunning() )
|
||||
{
|
||||
if ( RiuMainWindow::instance() ) RiuMainWindow::instance()->selectAsCurrentItem( eclipseView->cellResult() );
|
||||
}
|
||||
|
||||
eclipseView->loadDataAndUpdate();
|
||||
}
|
||||
|
||||
analysisModels->updateConnectedEditors();
|
||||
roffCaseIds.push_back( roffCase->caseId() );
|
||||
}
|
||||
return roffCaseIds;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimRoffCase* RiaImportEclipseCaseTools::openRoffCaseFromFileName( const QString& fileName, bool createDefaultView )
|
||||
{
|
||||
RimProject* project = RimProject::current();
|
||||
if ( !project ) return nullptr;
|
||||
|
||||
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
|
||||
if ( !analysisModels ) return nullptr;
|
||||
|
||||
auto* roffCase = new RimRoffCase();
|
||||
project->assignCaseIdToCase( roffCase );
|
||||
roffCase->setGridFileName( fileNames[0] );
|
||||
roffCase->setGridFileName( fileName );
|
||||
|
||||
bool gridImportSuccess = roffCase->openEclipseGridFile();
|
||||
if ( !gridImportSuccess )
|
||||
{
|
||||
RiaLogging::error( "Failed to import grid" );
|
||||
return -1;
|
||||
const auto errMsg = "Failed to import grid from file: " + fileName.toStdString();
|
||||
RiaLogging::error( errMsg.c_str() );
|
||||
delete roffCase;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
RimEclipseCaseCollection* analysisModels = project->activeOilField() ? project->activeOilField()->analysisModels() : nullptr;
|
||||
if ( !analysisModels ) return -1;
|
||||
|
||||
analysisModels->cases.push_back( roffCase );
|
||||
analysisModels->updateConnectedEditors();
|
||||
|
||||
RimEclipseView* eclipseView = nullptr;
|
||||
if ( createDefaultView )
|
||||
@@ -516,16 +574,17 @@ int RiaImportEclipseCaseTools::openRoffCaseFromFileNames( const QStringList& fil
|
||||
eclipseView = roffCase->createAndAddReservoirView();
|
||||
|
||||
eclipseView->cellResult()->setResultType( RiaDefines::ResultCatType::INPUT_PROPERTY );
|
||||
eclipseView->loadDataAndUpdate();
|
||||
|
||||
roffCase->updateAllRequiredEditors();
|
||||
if ( RiaGuiApplication::isRunning() )
|
||||
{
|
||||
if ( RiuMainWindow::instance() ) RiuMainWindow::instance()->selectAsCurrentItem( eclipseView->cellResult() );
|
||||
}
|
||||
|
||||
eclipseView->loadDataAndUpdate();
|
||||
// Make sure the call to setExpanded is done after the call to selectAsCurrentItem
|
||||
Riu3DMainWindowTools::setExpanded( eclipseView );
|
||||
}
|
||||
}
|
||||
|
||||
analysisModels->updateConnectedEditors();
|
||||
|
||||
return roffCase->caseId();
|
||||
return roffCase;
|
||||
}
|
||||
|
||||
@@ -20,11 +20,14 @@
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
class QString;
|
||||
class QStringList;
|
||||
|
||||
class RimIdenticalGridCaseGroup;
|
||||
class RimRoffCase;
|
||||
class RifReaderSettings;
|
||||
|
||||
//==================================================================================================
|
||||
@@ -33,7 +36,8 @@ class RifReaderSettings;
|
||||
class RiaImportEclipseCaseTools
|
||||
{
|
||||
public:
|
||||
typedef std::map<QString, int> FileCaseIdMap;
|
||||
using CaseFileNameAndId = std::pair<QString, int>;
|
||||
using FileCaseIdMap = std::map<QString, int>;
|
||||
|
||||
static bool openEclipseCasesFromFile( const QStringList& fileNames,
|
||||
bool createView,
|
||||
@@ -43,14 +47,17 @@ public:
|
||||
|
||||
static bool openEclipseCaseShowTimeStepFilter( const QString& fileName );
|
||||
|
||||
static int openEclipseInputCaseFromFileNames( const QStringList& fileNames, bool createDefaultView );
|
||||
static CaseFileNameAndId openEclipseInputCaseAndPropertiesFromFileNames( const QStringList& fileNames, bool createDefaultView );
|
||||
static std::vector<int> openEclipseInputCasesFromFileNames( const QStringList& fileNames, bool createDefaultView );
|
||||
|
||||
static bool openMockModel( const QString& name );
|
||||
|
||||
static bool addEclipseCases( const QStringList& fileNames, RimIdenticalGridCaseGroup** resultingCaseGroup = nullptr );
|
||||
|
||||
static int openEclipseCaseFromFile( const QString& fileName, bool createView, std::shared_ptr<RifReaderSettings> readerSettings = nullptr );
|
||||
|
||||
static int openRoffCaseFromFileNames( const QStringList& fileNames, bool createDefaultView );
|
||||
static std::vector<int> openRoffCasesFromFileNames( const QStringList& fileNames, bool createDefaultView );
|
||||
static RimRoffCase* openRoffCaseFromFileName( const QString& fileName, bool createDefaultView );
|
||||
|
||||
private:
|
||||
static int openEclipseCaseShowTimeStepFilterImpl( const QString& fileName,
|
||||
|
||||
@@ -44,9 +44,8 @@ void RiaOptionItemFactory::appendOptionItemsForEnsembleCurveSets( QList<caf::Pdm
|
||||
{
|
||||
options->push_back( caf::PdmOptionItemInfo( "None", nullptr ) );
|
||||
|
||||
RimMainPlotCollection* mainPlotColl = RimMainPlotCollection::current();
|
||||
std::vector<RimEnsembleCurveSet*> ensembleCurveSets;
|
||||
mainPlotColl->descendantsOfType( ensembleCurveSets );
|
||||
RimMainPlotCollection* mainPlotColl = RimMainPlotCollection::current();
|
||||
std::vector<RimEnsembleCurveSet*> ensembleCurveSets = mainPlotColl->descendantsOfType<RimEnsembleCurveSet>();
|
||||
for ( auto ensembleCurveSet : ensembleCurveSets )
|
||||
{
|
||||
options->push_back( caf::PdmOptionItemInfo( ensembleCurveSet->name(), ensembleCurveSet ) );
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <QDateTime>
|
||||
#include <QLocale>
|
||||
#include <QString>
|
||||
#include <QTime>
|
||||
|
||||
#include "cafPdmUiItem.h"
|
||||
|
||||
@@ -32,6 +33,8 @@
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
const DateTimeSpan RiaQDateTimeTools::TIMESPAN_MINUTE = DateTimeSpan( 0, 0, 0, 0, 1 );
|
||||
const DateTimeSpan RiaQDateTimeTools::TIMESPAN_HOUR = DateTimeSpan( 0, 0, 0, 1 );
|
||||
const DateTimeSpan RiaQDateTimeTools::TIMESPAN_DAY = DateTimeSpan( 0, 0, 1 );
|
||||
const DateTimeSpan RiaQDateTimeTools::TIMESPAN_WEEK = DateTimeSpan( 0, 0, 7 );
|
||||
const DateTimeSpan RiaQDateTimeTools::TIMESPAN_MONTH = DateTimeSpan( 0, 1, 0 );
|
||||
@@ -48,6 +51,22 @@ Qt::TimeSpec RiaQDateTimeTools::currentTimeSpec()
|
||||
return Qt::UTC;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
quint64 RiaQDateTimeTools::secondsInMinute()
|
||||
{
|
||||
return 60;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
quint64 RiaQDateTimeTools::secondsInHour()
|
||||
{
|
||||
return 60 * 60;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -142,7 +161,12 @@ QDateTime RiaQDateTimeTools::addYears( const QDateTime& dt, double years )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QDateTime RiaQDateTimeTools::addSpan( const QDateTime& dt, DateTimeSpan span )
|
||||
{
|
||||
return createUtcDateTime( dt ).addYears( span.years() ).addMonths( span.months() ).addDays( span.days() );
|
||||
return createUtcDateTime( dt )
|
||||
.addYears( span.years() )
|
||||
.addMonths( span.months() )
|
||||
.addDays( span.days() )
|
||||
.addSecs( span.hours() * RiaQDateTimeTools::secondsInHour() )
|
||||
.addSecs( span.minutes() * RiaQDateTimeTools::secondsInMinute() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -150,7 +174,12 @@ QDateTime RiaQDateTimeTools::addSpan( const QDateTime& dt, DateTimeSpan span )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QDateTime RiaQDateTimeTools::subtractSpan( const QDateTime& dt, DateTimeSpan span )
|
||||
{
|
||||
return createUtcDateTime( dt ).addYears( -span.years() ).addMonths( -span.months() ).addDays( -span.days() );
|
||||
return createUtcDateTime( dt )
|
||||
.addYears( -span.years() )
|
||||
.addMonths( -span.months() )
|
||||
.addDays( -span.days() )
|
||||
.addSecs( -span.hours() * RiaQDateTimeTools::secondsInHour() )
|
||||
.addSecs( -span.minutes() * RiaQDateTimeTools::secondsInMinute() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -250,6 +279,10 @@ const DateTimeSpan RiaQDateTimeTools::timeSpan( RiaDefines::DateTimePeriod perio
|
||||
{
|
||||
switch ( period )
|
||||
{
|
||||
case RiaDefines::DateTimePeriod::MINUTE:
|
||||
return TIMESPAN_MINUTE;
|
||||
case RiaDefines::DateTimePeriod::HOUR:
|
||||
return TIMESPAN_HOUR;
|
||||
case RiaDefines::DateTimePeriod::DAY:
|
||||
return TIMESPAN_DAY;
|
||||
case RiaDefines::DateTimePeriod::WEEK:
|
||||
@@ -274,13 +307,19 @@ const DateTimeSpan RiaQDateTimeTools::timeSpan( RiaDefines::DateTimePeriod perio
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QDateTime RiaQDateTimeTools::truncateTime( const QDateTime& dt, RiaDefines::DateTimePeriod period )
|
||||
{
|
||||
int y = dt.date().year();
|
||||
int m = dt.date().month();
|
||||
int d = dt.date().day();
|
||||
int dow = dt.date().dayOfWeek();
|
||||
int y = dt.date().year();
|
||||
int m = dt.date().month();
|
||||
int d = dt.date().day();
|
||||
int dow = dt.date().dayOfWeek();
|
||||
int h = dt.time().hour();
|
||||
int minute = dt.time().minute();
|
||||
|
||||
switch ( period )
|
||||
{
|
||||
case RiaDefines::DateTimePeriod::MINUTE:
|
||||
return createUtcDateTime( QDate( y, m, d ), QTime( h, minute, 0 ) );
|
||||
case RiaDefines::DateTimePeriod::HOUR:
|
||||
return createUtcDateTime( QDate( y, m, d ), QTime( h, 0, 0 ) );
|
||||
case RiaDefines::DateTimePeriod::DAY:
|
||||
return createUtcDateTime( QDate( y, m, d ) );
|
||||
case RiaDefines::DateTimePeriod::WEEK:
|
||||
@@ -499,3 +538,90 @@ QList<caf::PdmOptionItemInfo> RiaQDateTimeTools::createOptionItems( const std::v
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::set<QDateTime> RiaQDateTimeTools::createEvenlyDistributedDates( const std::vector<QDateTime>& inputDates, int numDates )
|
||||
{
|
||||
std::set<QDateTime> outputDates;
|
||||
if ( inputDates.empty() || numDates <= 0 )
|
||||
{
|
||||
return {};
|
||||
}
|
||||
if ( static_cast<size_t>( numDates ) > inputDates.size() )
|
||||
{
|
||||
outputDates = std::set( inputDates.begin(), inputDates.end() );
|
||||
return outputDates;
|
||||
}
|
||||
if ( numDates == 1 )
|
||||
{
|
||||
outputDates = { inputDates.front() };
|
||||
return outputDates;
|
||||
}
|
||||
|
||||
// Find the minimum and maximum dates in the input vector
|
||||
QDateTime minDate = *std::min_element( inputDates.begin(), inputDates.end() );
|
||||
QDateTime maxDate = *std::max_element( inputDates.begin(), inputDates.end() );
|
||||
|
||||
// Calculate the time step between each selected date
|
||||
qint64 timeStep = ( maxDate.toMSecsSinceEpoch() - minDate.toMSecsSinceEpoch() ) / ( static_cast<qint64>( numDates ) - 1 );
|
||||
|
||||
// Find the index of the input date that is closest to each new date
|
||||
for ( int i = 0; i < numDates; ++i )
|
||||
{
|
||||
qint64 targetTime = minDate.toMSecsSinceEpoch() + i * timeStep;
|
||||
int closestIndex = 0;
|
||||
qint64 closestTimeDiff = std::numeric_limits<qint64>::max();
|
||||
for ( size_t j = 0; j < inputDates.size(); ++j )
|
||||
{
|
||||
qint64 timeDiff = std::abs( inputDates[j].toMSecsSinceEpoch() - targetTime );
|
||||
if ( timeDiff < closestTimeDiff )
|
||||
{
|
||||
closestIndex = static_cast<int>( j );
|
||||
closestTimeDiff = timeDiff;
|
||||
}
|
||||
}
|
||||
|
||||
// Add the closest date to the output vector
|
||||
outputDates.insert( inputDates[closestIndex] );
|
||||
}
|
||||
|
||||
return outputDates;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<QDateTime> RiaQDateTimeTools::getTimeStepsWithinSelectedRange( const std::vector<QDateTime>& timeSteps,
|
||||
const QDateTime& fromTimeStep,
|
||||
const QDateTime& toTimeStep )
|
||||
{
|
||||
std::vector<QDateTime> selectedTimeSteps;
|
||||
auto isTimeStepInSelectedRange = [&]( const QDateTime& timeStep ) -> bool { return fromTimeStep <= timeStep && timeStep <= toTimeStep; };
|
||||
std::copy_if( timeSteps.begin(), timeSteps.end(), std::back_inserter( selectedTimeSteps ), isTimeStepInSelectedRange );
|
||||
|
||||
return selectedTimeSteps;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::set<QDateTime>
|
||||
RiaQDateTimeTools::createEvenlyDistributedDatesInInterval( const QDateTime& fromTimeStamp, const QDateTime& toTimeStamp, int numDates )
|
||||
{
|
||||
if ( numDates < 2 ) return {};
|
||||
|
||||
// Calculate the time step between the two time stamps
|
||||
qint64 timeStep = ( toTimeStamp.toMSecsSinceEpoch() - fromTimeStamp.toMSecsSinceEpoch() ) / ( static_cast<qint64>( numDates ) - 1 );
|
||||
|
||||
// Create a set of evenly spaced datetimes.
|
||||
std::set<QDateTime> outputDates;
|
||||
for ( int i = 0; i < numDates; ++i )
|
||||
{
|
||||
qint64 targetTime = i * timeStep;
|
||||
outputDates.insert( RiaQDateTimeTools::addMSecs( fromTimeStamp, targetTime ) );
|
||||
}
|
||||
|
||||
return outputDates;
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
#include <QString>
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -88,12 +89,20 @@ public:
|
||||
dateFormatString( const QString& fullDateFormat,
|
||||
RiaDefines::DateFormatComponents dateComponents = RiaDefines::DateFormatComponents::DATE_FORMAT_YEAR_MONTH_DAY );
|
||||
static QString
|
||||
timeFormatString( const QString& fullTimeFormat,
|
||||
timeFormatString( const QString& fullTimeFormat,
|
||||
RiaDefines::TimeFormatComponents timeComponents = RiaDefines::TimeFormatComponents::TIME_FORMAT_HOUR_MINUTE_SECOND );
|
||||
|
||||
static QList<caf::PdmOptionItemInfo> createOptionItems( const std::vector<time_t>& timeSteps );
|
||||
|
||||
static std::set<QDateTime> createEvenlyDistributedDates( const std::vector<QDateTime>& inputDates, int numDates );
|
||||
static std::set<QDateTime>
|
||||
createEvenlyDistributedDatesInInterval( const QDateTime& fromTimeStep, const QDateTime& toTimeStep, int numDates );
|
||||
static std::vector<QDateTime>
|
||||
getTimeStepsWithinSelectedRange( const std::vector<QDateTime>& timeSteps, const QDateTime& fromTimeStep, const QDateTime& toTimeStep );
|
||||
|
||||
private:
|
||||
static const DateTimeSpan TIMESPAN_MINUTE;
|
||||
static const DateTimeSpan TIMESPAN_HOUR;
|
||||
static const DateTimeSpan TIMESPAN_DAY;
|
||||
static const DateTimeSpan TIMESPAN_WEEK;
|
||||
static const DateTimeSpan TIMESPAN_MONTH;
|
||||
@@ -104,6 +113,8 @@ private:
|
||||
|
||||
static quint64 secondsInDay();
|
||||
static quint64 secondsInYear();
|
||||
static quint64 secondsInHour();
|
||||
static quint64 secondsInMinute();
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
@@ -116,23 +127,31 @@ public:
|
||||
: m_years( 0 )
|
||||
, m_months( 0 )
|
||||
, m_days( 0 )
|
||||
, m_hours( 0 )
|
||||
, m_minutes( 0 )
|
||||
{
|
||||
}
|
||||
DateTimeSpan( int years, int months, int days )
|
||||
DateTimeSpan( int years, int months, int days, int hours = 0, int minutes = 0 )
|
||||
: m_years( years )
|
||||
, m_months( months )
|
||||
, m_days( days )
|
||||
, m_hours( hours )
|
||||
, m_minutes( minutes )
|
||||
{
|
||||
}
|
||||
|
||||
int years() const { return m_years; }
|
||||
int months() const { return m_months; }
|
||||
int days() const { return m_days; }
|
||||
int hours() const { return m_hours; }
|
||||
int minutes() const { return m_minutes; }
|
||||
|
||||
bool isEmpty() { return m_years == 0 && m_months == 0 && m_days; }
|
||||
bool isEmpty() { return m_years == 0 && m_months == 0 && m_days == 0 && m_hours == 0 && m_minutes == 0; }
|
||||
|
||||
private:
|
||||
int m_years;
|
||||
int m_months;
|
||||
int m_days;
|
||||
int m_hours;
|
||||
int m_minutes;
|
||||
};
|
||||
|
||||
@@ -33,10 +33,13 @@ std::vector<const RigWellPath*> RiaSimWellBranchTools::simulationWellBranches( c
|
||||
{
|
||||
std::vector<RimEclipseCase*> simCases = RimEclipseCaseTools::eclipseCases();
|
||||
|
||||
auto caseItr = std::find_if( simCases.begin(), simCases.end(), [&simWellName]( const RimEclipseCase* eclCase ) {
|
||||
const auto& eclData = eclCase->eclipseCaseData();
|
||||
return eclData != nullptr && eclData->hasSimulationWell( simWellName );
|
||||
} );
|
||||
auto caseItr = std::find_if( simCases.begin(),
|
||||
simCases.end(),
|
||||
[&simWellName]( const RimEclipseCase* eclCase )
|
||||
{
|
||||
const auto& eclData = eclCase->eclipseCaseData();
|
||||
return eclData != nullptr && eclData->hasSimulationWell( simWellName );
|
||||
} );
|
||||
RimEclipseCase* eclipseCase = caseItr != simCases.end() ? *caseItr : nullptr;
|
||||
RigEclipseCaseData* eclCaseData = eclipseCase != nullptr ? eclipseCase->eclipseCaseData() : nullptr;
|
||||
return eclCaseData != nullptr ? eclCaseData->simulationWellBranches( simWellName, false, useAutoDetectionOfBranches )
|
||||
|
||||
@@ -80,9 +80,8 @@ void RiaStdStringTools::splitByDelimiter( const std::string& str, Container& con
|
||||
template <typename InputIt>
|
||||
std::string join( InputIt begin, InputIt end, const std::string& separator = ", " )
|
||||
{
|
||||
auto compose_key = [&separator]( std::string& key, const std::string& key_part ) -> std::string {
|
||||
return key.empty() ? key_part : key + separator + key_part;
|
||||
};
|
||||
auto compose_key = [&separator]( std::string& key, const std::string& key_part ) -> std::string
|
||||
{ return key.empty() ? key_part : key + separator + key_part; };
|
||||
|
||||
return std::accumulate( begin, end, std::string(), compose_key );
|
||||
}
|
||||
|
||||
@@ -243,7 +243,7 @@ QStringList RiaSummaryStringTools::dataSourceNames( const std::vector<RimSummary
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::set<RifEclipseSummaryAddress> RiaSummaryStringTools::computeFilteredAddresses( const QStringList& textFilters,
|
||||
std::set<RifEclipseSummaryAddress> RiaSummaryStringTools::computeFilteredAddresses( const QStringList& textFilters,
|
||||
const std::set<RifEclipseSummaryAddress>& sourceAddresses,
|
||||
bool includeDiffCurves )
|
||||
{
|
||||
|
||||
@@ -40,6 +40,8 @@
|
||||
#include "RimSummaryMultiPlot.h"
|
||||
#include "RimSummaryMultiPlotCollection.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
#include "RimSummaryTable.h"
|
||||
#include "RimSummaryTableCollection.h"
|
||||
|
||||
#include "cafPdmObject.h"
|
||||
|
||||
@@ -125,14 +127,12 @@ RimSummaryPlot* RiaSummaryTools::parentSummaryPlot( caf::PdmObject* object )
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
RimSummaryPlot* summaryPlot = nullptr;
|
||||
|
||||
if ( object )
|
||||
{
|
||||
object->firstAncestorOrThisOfType( summaryPlot );
|
||||
return object->firstAncestorOrThisOfType<RimSummaryPlot>();
|
||||
}
|
||||
|
||||
return summaryPlot;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -140,14 +140,12 @@ RimSummaryPlot* RiaSummaryTools::parentSummaryPlot( caf::PdmObject* object )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryMultiPlotCollection* RiaSummaryTools::parentSummaryPlotCollection( caf::PdmObject* object )
|
||||
{
|
||||
RimSummaryMultiPlotCollection* summaryPlotColl = nullptr;
|
||||
|
||||
if ( object )
|
||||
{
|
||||
object->firstAncestorOrThisOfType( summaryPlotColl );
|
||||
return object->firstAncestorOrThisOfType<RimSummaryMultiPlotCollection>();
|
||||
}
|
||||
|
||||
return summaryPlotColl;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -155,14 +153,12 @@ RimSummaryMultiPlotCollection* RiaSummaryTools::parentSummaryPlotCollection( caf
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryMultiPlot* RiaSummaryTools::parentSummaryMultiPlot( caf::PdmObject* object )
|
||||
{
|
||||
RimSummaryMultiPlot* multiPlot = nullptr;
|
||||
|
||||
if ( object )
|
||||
{
|
||||
object->firstAncestorOrThisOfType( multiPlot );
|
||||
return object->firstAncestorOrThisOfType<RimSummaryMultiPlot>();
|
||||
}
|
||||
|
||||
return multiPlot;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -170,14 +166,12 @@ RimSummaryMultiPlot* RiaSummaryTools::parentSummaryMultiPlot( caf::PdmObject* ob
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryCrossPlot* RiaSummaryTools::parentCrossPlot( caf::PdmObject* object )
|
||||
{
|
||||
RimSummaryCrossPlot* crossPlot = nullptr;
|
||||
|
||||
if ( object )
|
||||
{
|
||||
object->firstAncestorOrThisOfType( crossPlot );
|
||||
return object->firstAncestorOrThisOfType<RimSummaryCrossPlot>();
|
||||
}
|
||||
|
||||
return crossPlot;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -185,14 +179,12 @@ RimSummaryCrossPlot* RiaSummaryTools::parentCrossPlot( caf::PdmObject* object )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryCrossPlotCollection* RiaSummaryTools::parentCrossPlotCollection( caf::PdmObject* object )
|
||||
{
|
||||
RimSummaryCrossPlotCollection* crossPlotColl = nullptr;
|
||||
|
||||
if ( object )
|
||||
{
|
||||
object->firstAncestorOrThisOfType( crossPlotColl );
|
||||
return object->firstAncestorOrThisOfType<RimSummaryCrossPlotCollection>();
|
||||
}
|
||||
|
||||
return crossPlotColl;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -203,6 +195,32 @@ bool RiaSummaryTools::isSummaryCrossPlot( const RimSummaryPlot* plot )
|
||||
return dynamic_cast<const RimSummaryCrossPlot*>( plot );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryTable* RiaSummaryTools::parentSummaryTable( caf::PdmObject* object )
|
||||
{
|
||||
if ( object )
|
||||
{
|
||||
return object->firstAncestorOrThisOfType<RimSummaryTable>();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSummaryTableCollection* RiaSummaryTools::parentSummaryTableCollection( caf::PdmObject* object )
|
||||
{
|
||||
if ( object )
|
||||
{
|
||||
return object->firstAncestorOrThisOfType<RimSummaryTableCollection>();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -260,7 +278,7 @@ void RiaSummaryTools::getSummaryCasesAndAddressesForCalculation( int
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::pair<std::vector<time_t>, std::vector<double>> RiaSummaryTools::resampledValuesForPeriod( const RifEclipseSummaryAddress& address,
|
||||
const std::vector<time_t>& timeSteps,
|
||||
std::vector<double>& values,
|
||||
const std::vector<double>& values,
|
||||
RiaDefines::DateTimePeriod period )
|
||||
{
|
||||
RiaTimeHistoryCurveResampler resampler;
|
||||
|
||||
@@ -33,6 +33,8 @@ class RimSummaryCrossPlotCollection;
|
||||
class RimSummaryCaseMainCollection;
|
||||
class RimSummaryCase;
|
||||
class RimSummaryCaseCollection;
|
||||
class RimSummaryTable;
|
||||
class RimSummaryTableCollection;
|
||||
class RimObservedDataCollection;
|
||||
|
||||
class RifEclipseSummaryAddress;
|
||||
@@ -68,6 +70,9 @@ public:
|
||||
static RimSummaryCrossPlotCollection* parentCrossPlotCollection( caf::PdmObject* object );
|
||||
static bool isSummaryCrossPlot( const RimSummaryPlot* plot );
|
||||
|
||||
static RimSummaryTable* parentSummaryTable( caf::PdmObject* object );
|
||||
static RimSummaryTableCollection* parentSummaryTableCollection( caf::PdmObject* object );
|
||||
|
||||
static bool hasAccumulatedData( const RifEclipseSummaryAddress& address );
|
||||
static void getSummaryCasesAndAddressesForCalculation( int id,
|
||||
std::vector<RimSummaryCase*>& cases,
|
||||
@@ -75,7 +80,7 @@ public:
|
||||
|
||||
static std::pair<std::vector<time_t>, std::vector<double>> resampledValuesForPeriod( const RifEclipseSummaryAddress& address,
|
||||
const std::vector<time_t>& timeSteps,
|
||||
std::vector<double>& values,
|
||||
const std::vector<double>& values,
|
||||
RiaDefines::DateTimePeriod period );
|
||||
|
||||
static RimSummaryCase* summaryCaseById( int caseId );
|
||||
|
||||
@@ -174,3 +174,11 @@ QStringList RiaTextStringTools::splitSkipEmptyParts( const QString& text, const
|
||||
return text.split( regExp, QString::SkipEmptyParts );
|
||||
#endif
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::strong_ordering operator<=>( const QString& lhs, const QString& rhs )
|
||||
{
|
||||
return lhs.compare( rhs ) <=> 0;
|
||||
}
|
||||
|
||||