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
{
2017-04-27 13:16:44 +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
2017-04-27 13:16:44 +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
2017-04-27 13:16:44 +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
2017-04-27 13:16:44 +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" , "" , "" , "" );
2017-04-27 13:16:44 +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" , "" , "" , "" );
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
2017-04-27 13:16:44 +02: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 13:13:41 +02:00
2017-04-27 13:16:44 +02:00
CAF_PDM_InitField ( & defaultScaleFactorZ , "defaultScaleFactorZ" , 5 , "Default Z Scale Factor" , "" , "" , "" );
CAF_PDM_InitField ( & fontSizeInScene , "fontSizeInScene" , QString ( "8" ), "Font Size" , "" , "" , "" );
2016-08-09 13:09:08 +02:00
2017-04-27 13:16:44 +02:00
CAF_PDM_InitField ( & showLasCurveWithoutTvdWarning , "showLasCurveWithoutTvdWarning" , true , "Show LAS Curve Without TVD Warning" , "" , "" , "" );
2015-10-30 11:42:11 +01:00
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
2017-04-27 13:16:44 +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
2017-04-27 13:16:44 +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
2017-04-27 13:16:44 +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
2017-04-20 15:58:52 +02:00
CAF_PDM_InitField ( & autoCreatePlotsOnImport , "AutoCreatePlotsOnImport" , true , "Automatically Create Summary Plots On Import" , "" , "" , "" );
2016-10-24 13:54:35 +02:00
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" ;
2017-04-27 13:16:44 +02:00
m_tabNames << "Eclipse" ;
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
{
2017-04-25 10:31:37 +02:00
caf :: PdmUiFilePathEditorAttribute * myAttr = dynamic_cast < caf :: PdmUiFilePathEditorAttribute *> ( attribute );
2012-06-26 16:10:41 +02:00
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
{
2017-04-25 10:31:37 +02:00
caf :: PdmUiCheckBoxEditorAttribute * myAttr = dynamic_cast < caf :: PdmUiCheckBoxEditorAttribute *> ( attribute );
2014-07-22 12:10:51 +02:00
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 ])
{
2017-04-27 13:16:44 +02:00
caf :: PdmUiGroup * defaultSettingsGroup = uiOrdering . addNewGroup ( "Default Settings" );
2016-08-09 13:21:59 +02:00
defaultSettingsGroup -> add ( & defaultViewerBackgroundColor );
defaultSettingsGroup -> add ( & defaultGridLines );
defaultSettingsGroup -> add ( & defaultGridLineColors );
defaultSettingsGroup -> add ( & defaultFaultGridLineColors );
defaultSettingsGroup -> add ( & defaultWellLabelColor );
defaultSettingsGroup -> add ( & fontSizeInScene );
2017-05-03 13:44:37 +02:00
defaultSettingsGroup -> add ( & defaultScaleFactorZ );
2016-08-09 13:09:08 +02:00
2017-04-27 13:16:44 +02:00
caf :: PdmUiGroup * viewsGroup = uiOrdering . addNewGroup ( "3D Views" );
2016-08-09 13:21:59 +02:00
viewsGroup -> add ( & navigationPolicy );
viewsGroup -> add ( & useShaders );
viewsGroup -> add ( & showHud );
2016-08-09 13:09:08 +02:00
2017-04-27 13:16:44 +02: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 13:21:59 +02:00
newCaseBehaviourGroup -> add ( & autocomputeDepthRelatedProperties );
newCaseBehaviourGroup -> add ( & loadAndShowSoil );
2014-07-30 09:13:47 +02:00
2017-04-18 11:32:04 +02:00
readerSettings -> defineUiOrdering ( uiConfigName , * newCaseBehaviourGroup );
2016-08-09 13:09:08 +02:00
}
2017-04-27 13:16:44 +02:00
else if ( uiConfigName == m_tabNames [ 2 ])
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
}
2017-04-27 13:16:44 +02:00
else if ( uiConfigName == m_tabNames [ 3 ])
2016-10-24 13:54:35 +02:00
{
uiOrdering . add ( & autoCreatePlotsOnImport );
uiOrdering . add ( & defaultCurveFilter );
}
2016-08-09 13:09:08 +02:00
2017-03-21 13:47:53 +01:00
uiOrdering . skipRemainingFields ( true );
2016-08-09 13:09:08 +02: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 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 ;
}