2012-05-18 02:45:23 -05:00
/////////////////////////////////////////////////////////////////////////////////
//
2014-09-23 08:04:57 -05:00
// Copyright (C) 2011- Statoil ASA
// Copyright (C) 2013- Ceetron Solutions AS
// Copyright (C) 2011-2012 Ceetron AS
2012-05-18 02:45:23 -05: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 10:24:42 -05:00
# include "RiaPreferences.h"
2013-05-06 03:55:00 -05:00
2015-07-31 11:58:23 -05:00
# include "RifReaderSettings.h"
2013-05-06 03:55:00 -05:00
# include "cafPdmFieldCvfColor.h"
2014-07-22 05:10:51 -05:00
# include "cafPdmUiCheckBoxEditor.h"
2015-07-31 11:58:23 -05:00
# include "cafPdmUiFieldHandle.h"
# include "cafPdmUiFilePathEditor.h"
2012-05-18 02:45:23 -05:00
2013-03-22 10:24:42 -05:00
CAF_PDM_SOURCE_INIT ( RiaPreferences , " RiaPreferences " ) ;
2012-05-18 02:45:23 -05:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2013-03-22 09:50:44 -05:00
RiaPreferences : : RiaPreferences ( void )
2012-05-18 02:45:23 -05:00
{
2017-04-27 06:16:44 -05:00
CAF_PDM_InitField ( & navigationPolicy , " navigationPolicy " , caf : : AppEnum < RiaApplication : : RINavigationPolicy > ( RiaApplication : : NAVIGATION_POLICY_CEETRON ) , " Navigation Mode " , " " , " " , " " ) ;
2012-05-18 02:45:23 -05:00
2013-04-24 00:35:31 -05:00
CAF_PDM_InitFieldNoDefault ( & scriptDirectories , " scriptDirectory " , " Shared Script Folder(s) " , " " , " " , " " ) ;
2015-08-05 06:27:36 -05:00
scriptDirectories . uiCapability ( ) - > setUiEditorTypeName ( caf : : PdmUiFilePathEditor : : uiEditorTypeName ( ) ) ;
2012-06-26 09:10:41 -05:00
2012-05-18 02:45:23 -05:00
CAF_PDM_InitField ( & scriptEditorExecutable , " scriptEditorExecutable " , QString ( " kate " ) , " Script Editor " , " " , " " , " " ) ;
2015-08-05 06:27:36 -05:00
scriptEditorExecutable . uiCapability ( ) - > setUiEditorTypeName ( caf : : PdmUiFilePathEditor : : uiEditorTypeName ( ) ) ;
2012-06-26 09:10:41 -05:00
2017-04-27 06:16:44 -05:00
CAF_PDM_InitField ( & octaveExecutable , " octaveExecutable " , QString ( " octave " ) , " Octave Executable Location " , " " , " " , " " ) ;
2015-08-05 06:27:36 -05:00
octaveExecutable . uiCapability ( ) - > setUiEditorTypeName ( caf : : PdmUiFilePathEditor : : uiEditorTypeName ( ) ) ;
octaveExecutable . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : TOP ) ;
2014-07-22 05:10:51 -05:00
2017-04-27 06:16:44 -05:00
CAF_PDM_InitField ( & octaveShowHeaderInfoWhenExecutingScripts , " octaveShowHeaderInfoWhenExecutingScripts " , false , " Show Text Header When Executing Scripts " , " " , " " , " " ) ;
2015-08-05 06:27:36 -05:00
octaveShowHeaderInfoWhenExecutingScripts . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2012-05-18 02:45:23 -05:00
2017-04-27 06:16:44 -05:00
CAF_PDM_InitField ( & ssihubAddress , " ssihubAddress " , QString ( " http:// " ) , " SSIHUB Address " , " " , " " , " " ) ;
2015-09-22 01:39:53 -05:00
ssihubAddress . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : TOP ) ;
2013-05-29 05:59:08 -05:00
2012-10-12 08:05:42 -05:00
CAF_PDM_InitField ( & defaultGridLines , " defaultGridLines " , true , " Gridlines " , " " , " " , " " ) ;
2017-04-27 06:16:44 -05: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 " , " " , " " , " " ) ;
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 06:15:41 -05:00
2017-04-27 06:16:44 -05:00
CAF_PDM_InitField ( & defaultViewerBackgroundColor , " defaultViewerBackgroundColor " , cvf : : Color3f ( 0.69f , 0.77f , 0.87f ) , " Viewer Background " , " " , " The viewer background color for new views " , " " ) ;
2013-04-15 06:13:41 -05:00
2017-04-27 06:16:44 -05:00
CAF_PDM_InitField ( & defaultScaleFactorZ , " defaultScaleFactorZ " , 5 , " Default Z Scale Factor " , " " , " " , " " ) ;
CAF_PDM_InitField ( & fontSizeInScene , " fontSizeInScene " , QString ( " 8 " ) , " Font Size " , " " , " " , " " ) ;
2016-08-09 06:09:08 -05:00
2017-04-27 06:16:44 -05:00
CAF_PDM_InitField ( & showLasCurveWithoutTvdWarning , " showLasCurveWithoutTvdWarning " , true , " Show LAS Curve Without TVD Warning " , " " , " " , " " ) ;
2015-10-30 05:42:11 -05:00
showLasCurveWithoutTvdWarning . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2012-10-12 08:05:42 -05:00
2012-05-18 02:45:23 -05:00
CAF_PDM_InitField ( & useShaders , " useShaders " , true , " Use Shaders " , " " , " " , " " ) ;
2015-09-22 01:39:53 -05:00
useShaders . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2012-10-23 01:27:49 -05:00
CAF_PDM_InitField ( & showHud , " showHud " , false , " Show 3D Information " , " " , " " , " " ) ;
2015-09-22 01:39:53 -05:00
showHud . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2015-09-18 12:24:02 -05:00
CAF_PDM_InitField ( & appendClassNameToUiText , " appendClassNameToUiText " , false , " [System] Show Class Names " , " " , " " , " " ) ;
2015-09-22 01:39:53 -05:00
appendClassNameToUiText . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2015-10-30 05:45:55 -05:00
# ifndef _DEBUG
appendClassNameToUiText . uiCapability ( ) - > setUiHidden ( true ) ;
# endif
2012-05-18 02:45:23 -05:00
CAF_PDM_InitFieldNoDefault ( & lastUsedProjectFileName , " lastUsedProjectFileName " , " Last Used Project File " , " " , " " , " " ) ;
2015-08-05 06:27:36 -05:00
lastUsedProjectFileName . uiCapability ( ) - > setUiHidden ( true ) ;
2012-08-31 12:12:47 -05:00
2017-04-27 06:16:44 -05:00
CAF_PDM_InitField ( & autocomputeDepthRelatedProperties , " autocomputeDepth " , true , " Compute DEPTH Related Properties " , " " , " DEPTH, DX, DY, DZ, TOP, BOTTOM " , " " ) ;
2015-08-05 06:27:36 -05:00
autocomputeDepthRelatedProperties . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2014-10-24 04:38:47 -05:00
2017-04-27 06:16:44 -05:00
CAF_PDM_InitField ( & loadAndShowSoil , " loadAndShowSoil " , true , " Load and Show SOIL " , " " , " " , " " ) ;
2015-08-05 06:27:36 -05:00
loadAndShowSoil . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2014-07-30 02:13:47 -05:00
2017-04-27 06:16:44 -05:00
CAF_PDM_InitFieldNoDefault ( & readerSettings , " readerSettings " , " Reader Settings " , " " , " " , " " ) ;
2016-05-31 06:37:50 -05:00
readerSettings = new RifReaderSettings ;
2016-08-09 06:09:08 -05:00
2017-04-20 08:58:52 -05:00
CAF_PDM_InitField ( & autoCreatePlotsOnImport , " AutoCreatePlotsOnImport " , true , " Automatically Create Summary Plots On Import " , " " , " " , " " ) ;
2016-10-24 06:54:35 -05:00
autoCreatePlotsOnImport . uiCapability ( ) - > setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
CAF_PDM_InitField ( & defaultCurveFilter , " DefaultCurveFilter " , QString ( " F*PT " ) , " Default Vector Selection Filter " , " " , " " , " " ) ;
2016-08-09 06:09:08 -05:00
m_tabNames < < " General " ;
2017-04-27 06:16:44 -05:00
m_tabNames < < " Eclipse " ;
2016-08-09 06:21:59 -05:00
m_tabNames < < " Octave " ;
2016-10-24 06:54:35 -05:00
m_tabNames < < " Summary " ;
2012-05-18 02:45:23 -05:00
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2013-03-22 09:50:44 -05:00
RiaPreferences : : ~ RiaPreferences ( void )
2012-05-18 02:45:23 -05:00
{
2015-12-09 06:52:25 -06:00
delete readerSettings ;
2012-05-18 02:45:23 -05:00
}
2012-06-26 09:10:41 -05:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2013-03-22 09:50:44 -05:00
void RiaPreferences : : defineEditorAttribute ( const caf : : PdmFieldHandle * field , QString uiConfigName , caf : : PdmUiEditorAttribute * attribute )
2012-06-26 09:10:41 -05:00
{
2014-07-30 02:13:47 -05:00
readerSettings - > defineEditorAttribute ( field , uiConfigName , attribute ) ;
2013-04-24 00:35:31 -05:00
if ( field = = & scriptDirectories )
2012-06-26 09:10:41 -05:00
{
2017-04-25 03:31:37 -05:00
caf : : PdmUiFilePathEditorAttribute * myAttr = dynamic_cast < caf : : PdmUiFilePathEditorAttribute * > ( attribute ) ;
2012-06-26 09:10:41 -05:00
if ( myAttr )
{
myAttr - > m_selectDirectory = true ;
2013-04-24 00:35:31 -05:00
myAttr - > m_appendUiSelectedFolderToText = true ;
2012-06-26 09:10:41 -05:00
}
}
2014-07-30 02:13:47 -05:00
else if ( field = = & octaveShowHeaderInfoWhenExecutingScripts | |
2014-10-24 04:38:47 -05:00
field = = & autocomputeDepthRelatedProperties | |
2015-09-22 01:39:53 -05:00
field = = & loadAndShowSoil | |
field = = & useShaders | |
field = = & showHud | |
2015-10-30 05:42:11 -05:00
field = = & appendClassNameToUiText | |
2016-10-24 06:54:35 -05:00
field = = & showLasCurveWithoutTvdWarning | |
field = = & autoCreatePlotsOnImport )
2014-07-22 05:10:51 -05:00
{
2017-04-25 03:31:37 -05:00
caf : : PdmUiCheckBoxEditorAttribute * myAttr = dynamic_cast < caf : : PdmUiCheckBoxEditorAttribute * > ( attribute ) ;
2014-07-22 05:10:51 -05:00
if ( myAttr )
{
myAttr - > m_useNativeCheckBoxLabel = true ;
}
}
2012-06-26 09:10:41 -05:00
}
2012-10-12 08:05:42 -05:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
2013-04-08 05:16:38 -05:00
void RiaPreferences : : defineUiOrdering ( QString uiConfigName , caf : : PdmUiOrdering & uiOrdering )
2012-10-12 08:05:42 -05:00
{
2016-08-09 06:09:08 -05:00
if ( uiConfigName = = m_tabNames [ 0 ] )
{
2017-04-27 06:16:44 -05:00
caf : : PdmUiGroup * defaultSettingsGroup = uiOrdering . addNewGroup ( " Default Settings " ) ;
2016-08-09 06:21:59 -05:00
defaultSettingsGroup - > add ( & defaultViewerBackgroundColor ) ;
defaultSettingsGroup - > add ( & defaultGridLines ) ;
defaultSettingsGroup - > add ( & defaultGridLineColors ) ;
defaultSettingsGroup - > add ( & defaultFaultGridLineColors ) ;
defaultSettingsGroup - > add ( & defaultWellLabelColor ) ;
defaultSettingsGroup - > add ( & fontSizeInScene ) ;
2016-08-09 06:09:08 -05:00
2017-04-27 06:16:44 -05:00
caf : : PdmUiGroup * viewsGroup = uiOrdering . addNewGroup ( " 3D Views " ) ;
2016-08-09 06:21:59 -05:00
viewsGroup - > add ( & navigationPolicy ) ;
viewsGroup - > add ( & useShaders ) ;
viewsGroup - > add ( & showHud ) ;
2016-08-09 06:09:08 -05:00
2017-04-27 06:16:44 -05:00
caf : : PdmUiGroup * otherGroup = uiOrdering . addNewGroup ( " Other " ) ;
otherGroup - > add ( & ssihubAddress ) ;
otherGroup - > add ( & showLasCurveWithoutTvdWarning ) ;
uiOrdering . add ( & appendClassNameToUiText ) ;
}
else if ( uiConfigName = = m_tabNames [ 1 ] )
{
caf : : PdmUiGroup * newCaseBehaviourGroup = uiOrdering . addNewGroup ( " Behavior When Loading Data " ) ;
2016-08-09 06:21:59 -05:00
newCaseBehaviourGroup - > add ( & defaultScaleFactorZ ) ;
newCaseBehaviourGroup - > add ( & autocomputeDepthRelatedProperties ) ;
newCaseBehaviourGroup - > add ( & loadAndShowSoil ) ;
2014-07-30 02:13:47 -05:00
2017-04-18 04:32:04 -05:00
readerSettings - > defineUiOrdering ( uiConfigName , * newCaseBehaviourGroup ) ;
2016-08-09 06:09:08 -05:00
}
2017-04-27 06:16:44 -05:00
else if ( uiConfigName = = m_tabNames [ 2 ] )
2014-07-30 02:13:47 -05:00
{
2016-08-09 06:21:59 -05: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 02:13:47 -05:00
}
2017-04-27 06:16:44 -05:00
else if ( uiConfigName = = m_tabNames [ 3 ] )
2016-10-24 06:54:35 -05:00
{
uiOrdering . add ( & autoCreatePlotsOnImport ) ;
uiOrdering . add ( & defaultCurveFilter ) ;
}
2016-08-09 06:09:08 -05:00
2017-03-21 07:47:53 -05:00
uiOrdering . skipRemainingFields ( true ) ;
2016-08-09 06:09:08 -05:00
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
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 07:25:50 -05:00
fontSizes < < " 12 " ;
2016-08-09 06:09:08 -05:00
fontSizes < < " 16 " ;
2016-08-29 07:25:50 -05:00
fontSizes < < " 24 " ;
fontSizes < < " 32 " ;
2016-08-09 06:09:08 -05:00
for ( int oIdx = 0 ; oIdx < fontSizes . size ( ) ; + + oIdx )
{
options . push_back ( caf : : PdmOptionItemInfo ( fontSizes [ oIdx ] , fontSizes [ oIdx ] ) ) ;
}
}
return options ;
2012-10-12 08:05:42 -05:00
}
2016-08-09 06:09:08 -05:00
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QStringList RiaPreferences : : tabNames ( )
{
return m_tabNames ;
}