2012-05-18 09:45:23 +02:00
/////////////////////////////////////////////////////////////////////////////////
//
2014-09-23 15:04:57 +02:00
// Copyright (C) 2011- Statoil ASA
// Copyright (C) 2013- Ceetron Solutions AS
// Copyright (C) 2011-2012 Ceetron AS
2012-05-18 09:45:23 +02:00
//
// 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.
//
/////////////////////////////////////////////////////////////////////////////////
2013-03-22 16:24:42 +01:00
# include "RiaPreferences.h"
2013-05-06 10:55:00 +02:00
2015-07-31 18:58:23 +02:00
# include "RifReaderSettings.h"
2013-05-06 10:55:00 +02:00
# include "cafPdmFieldCvfColor.h"
2014-07-22 12:10:51 +02:00
# include "cafPdmUiCheckBoxEditor.h"
2015-07-31 18:58:23 +02:00
# include "cafPdmUiFieldHandle.h"
# include "cafPdmUiFilePathEditor.h"
2012-05-18 09:45:23 +02:00
2013-03-22 16:24:42 +01:00
CAF_PDM_SOURCE_INIT ( RiaPreferences , " RiaPreferences " ) ;
2012-05-18 09:45:23 +02:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2013-03-22 15:50:44 +01:00
RiaPreferences : : RiaPreferences ( void )
2012-05-18 09:45:23 +02:00
{
2013-06-26 09:01:43 +02:00
CAF_PDM_InitField ( & navigationPolicy , " navigationPolicy " , caf : : AppEnum < RiaApplication : : RINavigationPolicy > ( RiaApplication : : NAVIGATION_POLICY_CEETRON ) , " Navigation mode " , " " , " " , " " ) ;
2012-05-18 09:45:23 +02:00
2013-04-24 07:35:31 +02:00
CAF_PDM_InitFieldNoDefault ( & scriptDirectories , " scriptDirectory " , " Shared Script Folder(s) " , " " , " " , " " ) ;
2015-08-05 13:27:36 +02:00
scriptDirectories . uiCapability ( ) - > setUiEditorTypeName ( caf : : PdmUiFilePathEditor : : uiEditorTypeName ( ) ) ;
2012-06-26 16:10:41 +02:00
2012-05-18 09:45:23 +02:00
CAF_PDM_InitField ( & scriptEditorExecutable , " scriptEditorExecutable " , QString ( " kate " ) , " Script Editor " , " " , " " , " " ) ;
2015-08-05 13:27:36 +02:00
scriptEditorExecutable . uiCapability ( ) - > setUiEditorTypeName ( caf : : PdmUiFilePathEditor : : uiEditorTypeName ( ) ) ;
2012-06-26 16:10:41 +02:00
2014-07-22 12:10:51 +02:00
CAF_PDM_InitField ( & octaveExecutable , " octaveExecutable " , QString ( " octave " ) , " Octave executable location " , " " , " " , " " ) ;
2015-08-05 13:27:36 +02:00
octaveExecutable . uiCapability ( ) - > setUiEditorTypeName ( caf : : PdmUiFilePathEditor : : uiEditorTypeName ( ) ) ;
octaveExecutable . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : TOP ) ;
2014-07-22 12:10:51 +02:00
2014-08-01 08:15:22 +02:00
CAF_PDM_InitField ( & octaveShowHeaderInfoWhenExecutingScripts , " octaveShowHeaderInfoWhenExecutingScripts " , false , " Show text header when executing scripts " , " " , " " , " " ) ;
2015-08-05 13:27:36 +02:00
octaveShowHeaderInfoWhenExecutingScripts . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2012-05-18 09:45:23 +02:00
2013-05-29 12:59:08 +02:00
CAF_PDM_InitField ( & ssihubAddress , " ssihubAddress " , QString ( " http:// " ) , " ssihub Address " , " " , " " , " " ) ;
2015-09-22 08:39:53 +02:00
ssihubAddress . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : TOP ) ;
2013-05-29 12:59:08 +02:00
2012-10-12 15:05:42 +02:00
CAF_PDM_InitField ( & defaultGridLines , " defaultGridLines " , true , " Gridlines " , " " , " " , " " ) ;
2013-04-12 13:15:41 +02:00
CAF_PDM_InitField ( & defaultGridLineColors , " defaultGridLineColors " , cvf : : Color3f ( 0.92f , 0.92f , 0.92f ) , " Mesh color " , " " , " " , " " ) ;
CAF_PDM_InitField ( & defaultFaultGridLineColors , " defaultFaultGridLineColors " , cvf : : Color3f ( 0.08f , 0.08f , 0.08f ) , " Mesh color along faults " , " " , " " , " " ) ;
2013-10-01 11:13:23 +02:00
CAF_PDM_InitField ( & defaultWellLabelColor , " defaultWellLableColor " , cvf : : Color3f ( 0.92f , 0.92f , 0.92f ) , " Well label color " , " " , " The default well label color in new views " , " " ) ;
2013-04-12 13:15:41 +02:00
2013-04-15 13:13:41 +02:00
CAF_PDM_InitField ( & defaultViewerBackgroundColor , " defaultViewerBackgroundColor " , cvf : : Color3f ( 0.69f , 0.77f , 0.87f ) , " Viewer background " , " " , " The viewer background color for new views " , " " ) ;
2016-08-09 13:21:59 +02:00
CAF_PDM_InitField ( & defaultScaleFactorZ , " defaultScaleFactorZ " , 5 , " Default Z scale factor " , " " , " " , " " ) ;
2016-08-09 13:09:08 +02:00
CAF_PDM_InitField ( & fontSizeInScene , " fontSizeInScene " , QString ( " 8 " ) , " Font size " , " " , " " , " " ) ;
2015-10-30 11:42:11 +01:00
CAF_PDM_InitField ( & showLasCurveWithoutTvdWarning , " showLasCurveWithoutTvdWarning " , true , " Show LAS curve without TVD warning " , " " , " " , " " ) ;
showLasCurveWithoutTvdWarning . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2012-10-12 15:05:42 +02:00
2012-05-18 09:45:23 +02:00
CAF_PDM_InitField ( & useShaders , " useShaders " , true , " Use Shaders " , " " , " " , " " ) ;
2015-09-22 08:39:53 +02:00
useShaders . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2012-10-23 08:27:49 +02:00
CAF_PDM_InitField ( & showHud , " showHud " , false , " Show 3D Information " , " " , " " , " " ) ;
2015-09-22 08:39:53 +02:00
showHud . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2015-09-18 19:24:02 +02:00
CAF_PDM_InitField ( & appendClassNameToUiText , " appendClassNameToUiText " , false , " [System] Show Class Names " , " " , " " , " " ) ;
2015-09-22 08:39:53 +02:00
appendClassNameToUiText . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2015-10-30 11:45:55 +01:00
# ifndef _DEBUG
appendClassNameToUiText . uiCapability ( ) - > setUiHidden ( true ) ;
# endif
2012-05-18 09:45:23 +02:00
CAF_PDM_InitFieldNoDefault ( & lastUsedProjectFileName , " lastUsedProjectFileName " , " Last Used Project File " , " " , " " , " " ) ;
2015-08-05 13:27:36 +02:00
lastUsedProjectFileName . uiCapability ( ) - > setUiHidden ( true ) ;
2012-08-31 19:12:47 +02:00
2014-10-24 11:38:47 +02:00
CAF_PDM_InitField ( & autocomputeDepthRelatedProperties , " autocomputeDepth " , true , " Compute DEPTH related properties " , " " , " DEPTH, DX, DY, DZ, TOP, BOTTOM " , " " ) ;
2015-08-05 13:27:36 +02:00
autocomputeDepthRelatedProperties . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2014-10-24 11:38:47 +02:00
CAF_PDM_InitField ( & loadAndShowSoil , " loadAndShowSoil " , true , " Load and show SOIL " , " " , " " , " " ) ;
2015-08-05 13:27:36 +02:00
loadAndShowSoil . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2014-07-30 09:13:47 +02:00
CAF_PDM_InitFieldNoDefault ( & readerSettings , " readerSettings " , " Reader settings " , " " , " " , " " ) ;
2016-05-31 13:37:50 +02:00
readerSettings = new RifReaderSettings ;
2016-08-09 13:09:08 +02:00
2016-10-24 13:54:35 +02:00
CAF_PDM_InitField ( & autoCreatePlotsOnImport , " AutoCreatePlotsOnImport " , true , " Create Summary Plots When Importing Eclipse Case " , " " , " " , " " ) ;
autoCreatePlotsOnImport . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
CAF_PDM_InitField ( & defaultCurveFilter , " DefaultCurveFilter " , QString ( " F*PT " ) , " Default Vector Selection Filter " , " " , " " , " " ) ;
2016-08-09 13:09:08 +02:00
m_tabNames < < " General " ;
2016-08-09 13:21:59 +02:00
m_tabNames < < " Octave " ;
2016-10-24 13:54:35 +02:00
m_tabNames < < " Summary " ;
2012-05-18 09:45:23 +02:00
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2013-03-22 15:50:44 +01:00
RiaPreferences : : ~ RiaPreferences ( void )
2012-05-18 09:45:23 +02:00
{
2015-12-09 13:52:25 +01:00
delete readerSettings ;
2012-05-18 09:45:23 +02:00
}
2012-06-26 16:10:41 +02:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2013-03-22 15:50:44 +01:00
void RiaPreferences : : defineEditorAttribute ( const caf : : PdmFieldHandle * field , QString uiConfigName , caf : : PdmUiEditorAttribute * attribute )
2012-06-26 16:10:41 +02:00
{
2014-07-30 09:13:47 +02:00
readerSettings - > defineEditorAttribute ( field , uiConfigName , attribute ) ;
2013-04-24 07:35:31 +02:00
if ( field = = & scriptDirectories )
2012-06-26 16:10:41 +02:00
{
caf : : PdmUiFilePathEditorAttribute * myAttr = static_cast < caf : : PdmUiFilePathEditorAttribute * > ( attribute ) ;
if ( myAttr )
{
myAttr - > m_selectDirectory = true ;
2013-04-24 07:35:31 +02:00
myAttr - > m_appendUiSelectedFolderToText = true ;
2012-06-26 16:10:41 +02:00
}
}
2014-07-30 09:13:47 +02:00
else if ( field = = & octaveShowHeaderInfoWhenExecutingScripts | |
2014-10-24 11:38:47 +02:00
field = = & autocomputeDepthRelatedProperties | |
2015-09-22 08:39:53 +02:00
field = = & loadAndShowSoil | |
field = = & useShaders | |
field = = & showHud | |
2015-10-30 11:42:11 +01:00
field = = & appendClassNameToUiText | |
2016-10-24 13:54:35 +02:00
field = = & showLasCurveWithoutTvdWarning | |
field = = & autoCreatePlotsOnImport )
2014-07-22 12:10:51 +02:00
{
caf : : PdmUiCheckBoxEditorAttribute * myAttr = static_cast < caf : : PdmUiCheckBoxEditorAttribute * > ( attribute ) ;
if ( myAttr )
{
myAttr - > m_useNativeCheckBoxLabel = true ;
}
}
2012-06-26 16:10:41 +02:00
}
2012-10-12 15:05:42 +02:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2013-04-08 12:16:38 +02:00
void RiaPreferences : : defineUiOrdering ( QString uiConfigName , caf : : PdmUiOrdering & uiOrdering )
2012-10-12 15:05:42 +02:00
{
2016-08-09 13:09:08 +02:00
if ( uiConfigName = = m_tabNames [ 0 ] )
{
2016-08-09 13:21:59 +02:00
caf : : PdmUiGroup * defaultSettingsGroup = uiOrdering . addNewGroup ( " Default settings " ) ;
defaultSettingsGroup - > add ( & defaultViewerBackgroundColor ) ;
defaultSettingsGroup - > add ( & defaultGridLines ) ;
defaultSettingsGroup - > add ( & defaultGridLineColors ) ;
defaultSettingsGroup - > add ( & defaultFaultGridLineColors ) ;
defaultSettingsGroup - > add ( & defaultWellLabelColor ) ;
defaultSettingsGroup - > add ( & fontSizeInScene ) ;
2016-08-09 13:09:08 +02:00
2016-08-09 13:21:59 +02:00
caf : : PdmUiGroup * viewsGroup = uiOrdering . addNewGroup ( " 3D views " ) ;
viewsGroup - > add ( & navigationPolicy ) ;
viewsGroup - > add ( & useShaders ) ;
viewsGroup - > add ( & showHud ) ;
2016-08-09 13:09:08 +02:00
2016-08-09 13:21:59 +02:00
caf : : PdmUiGroup * newCaseBehaviourGroup = uiOrdering . addNewGroup ( " Behavior when loading new case " ) ;
newCaseBehaviourGroup - > add ( & defaultScaleFactorZ ) ;
newCaseBehaviourGroup - > add ( & autocomputeDepthRelatedProperties ) ;
newCaseBehaviourGroup - > add ( & loadAndShowSoil ) ;
newCaseBehaviourGroup - > add ( & showLasCurveWithoutTvdWarning ) ;
2014-07-30 09:13:47 +02:00
2016-08-09 13:09:08 +02:00
std : : vector < caf : : PdmFieldHandle * > readerSettingsFields ;
readerSettings - > fields ( readerSettingsFields ) ;
for ( size_t i = 0 ; i < readerSettingsFields . size ( ) ; i + + )
{
2016-08-09 13:21:59 +02:00
newCaseBehaviourGroup - > add ( readerSettingsFields [ i ] ) ;
2016-08-09 13:09:08 +02:00
}
2016-08-09 13:21:59 +02:00
caf : : PdmUiGroup * ssihubGroup = uiOrdering . addNewGroup ( " SSIHUB " ) ;
ssihubGroup - > add ( & ssihubAddress ) ;
2016-08-09 13:09:08 +02:00
uiOrdering . add ( & appendClassNameToUiText ) ;
}
else if ( uiConfigName = = m_tabNames [ 1 ] )
2014-07-30 09:13:47 +02:00
{
2016-08-09 13:21:59 +02:00
caf : : PdmUiGroup * octaveGroup = uiOrdering . addNewGroup ( " Octave " ) ;
octaveGroup - > add ( & octaveExecutable ) ;
octaveGroup - > add ( & octaveShowHeaderInfoWhenExecutingScripts ) ;
caf : : PdmUiGroup * scriptGroup = uiOrdering . addNewGroup ( " Script files " ) ;
scriptGroup - > add ( & scriptDirectories ) ;
scriptGroup - > add ( & scriptEditorExecutable ) ;
2014-07-30 09:13:47 +02:00
}
2016-10-24 13:54:35 +02:00
else if ( uiConfigName = = m_tabNames [ 2 ] )
{
uiOrdering . add ( & autoCreatePlotsOnImport ) ;
uiOrdering . add ( & defaultCurveFilter ) ;
}
2016-08-09 13:09:08 +02:00
uiOrdering . setForgetRemainingFields ( true ) ;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QList < caf : : PdmOptionItemInfo > RiaPreferences : : calculateValueOptions ( const caf : : PdmFieldHandle * fieldNeedingOptions , bool * useOptionsOnly )
{
QList < caf : : PdmOptionItemInfo > options ;
* useOptionsOnly = true ;
if ( & fontSizeInScene = = fieldNeedingOptions )
{
QStringList fontSizes ;
fontSizes < < " 8 " ;
2016-08-29 14:25:50 +02:00
fontSizes < < " 12 " ;
2016-08-09 13:09:08 +02:00
fontSizes < < " 16 " ;
2016-08-29 14:25:50 +02:00
fontSizes < < " 24 " ;
fontSizes < < " 32 " ;
2016-08-09 13:09:08 +02:00
for ( int oIdx = 0 ; oIdx < fontSizes . size ( ) ; + + oIdx )
{
options . push_back ( caf : : PdmOptionItemInfo ( fontSizes [ oIdx ] , fontSizes [ oIdx ] ) ) ;
}
}
return options ;
2012-10-12 15:05:42 +02:00
}
2016-08-09 13:09:08 +02:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QStringList RiaPreferences : : tabNames ( )
{
return m_tabNames ;
}