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" , "" );
2012-10-12 15:05:42 +02:00
CAF_PDM_InitField ( & defaultScaleFactorZ , "defaultScaleFactorZ" , 5 , "Z scale factor" , "" , "" , "" );
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
readerSettings = new RifReaderSettings ;
CAF_PDM_InitFieldNoDefault ( & readerSettings , "readerSettings" , "Reader settings" , "" , "" , "" );
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
{
}
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 ||
field == & showLasCurveWithoutTvdWarning )
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
{
uiOrdering . add ( & navigationPolicy );
caf :: PdmUiGroup * scriptGroup = uiOrdering . addNewGroup ( "Script configuration" );
2013-04-24 07:35:31 +02:00
scriptGroup -> add ( & scriptDirectories );
2012-10-12 15:05:42 +02:00
scriptGroup -> add ( & scriptEditorExecutable );
2014-07-22 12:10:51 +02:00
caf :: PdmUiGroup * octaveGroup = uiOrdering . addNewGroup ( "Octave" );
octaveGroup -> add ( & octaveExecutable );
octaveGroup -> add ( & octaveShowHeaderInfoWhenExecutingScripts );
2012-10-12 15:05:42 +02:00
caf :: PdmUiGroup * defaultSettingsGroup = uiOrdering . addNewGroup ( "Default settings" );
defaultSettingsGroup -> add ( & defaultScaleFactorZ );
2013-04-15 13:13:41 +02:00
defaultSettingsGroup -> add ( & defaultViewerBackgroundColor );
2012-10-12 15:05:42 +02:00
defaultSettingsGroup -> add ( & defaultGridLines );
2013-04-12 13:15:41 +02:00
defaultSettingsGroup -> add ( & defaultGridLineColors );
defaultSettingsGroup -> add ( & defaultFaultGridLineColors );
2013-10-01 11:13:23 +02:00
defaultSettingsGroup -> add ( & defaultWellLabelColor );
2015-10-30 11:42:11 +01:00
defaultSettingsGroup -> add ( & showLasCurveWithoutTvdWarning );
2012-10-12 15:05:42 +02:00
2014-10-24 11:38:47 +02:00
caf :: PdmUiGroup * autoComputeGroup = uiOrdering . addNewGroup ( "Behavior when loading new case" );
2012-10-24 10:52:44 +02:00
autoComputeGroup -> add ( & autocomputeDepthRelatedProperties );
2014-10-24 11:38:47 +02:00
autoComputeGroup -> add ( & loadAndShowSoil );
2014-07-30 09:13:47 +02:00
caf :: PdmUiGroup * readerSettingsGroup = uiOrdering . addNewGroup ( "Reader settings" );
std :: vector < caf :: PdmFieldHandle *> readerSettingsFields ;
readerSettings -> fields ( readerSettingsFields );
for ( size_t i = 0 ; i < readerSettingsFields . size (); i ++ )
{
readerSettingsGroup -> add ( readerSettingsFields [ i ]);
}
2012-10-12 15:05:42 +02:00
}
2013-04-12 13:15:41 +02:00
//--------------------------------------------------------------------------------------------------
2013-12-20 08:48:54 +01:00
/// This function is called as part of the regression test system to make sure the configuration
/// for regression tests is consistent
2013-04-12 13:15:41 +02:00
//--------------------------------------------------------------------------------------------------
2014-01-23 13:17:49 +01:00
void RiaPreferences :: configureForRegressionTests ()
2013-04-12 13:15:41 +02:00
{
2013-09-12 08:56:38 +02:00
useShaders = true ;
showHud = false ;
2013-04-12 13:15:41 +02:00
2013-09-12 08:56:38 +02:00
autocomputeDepthRelatedProperties = true ;
2014-10-24 11:38:47 +02:00
loadAndShowSoil = true ;
2013-12-20 08:48:54 +01:00
2014-07-30 09:13:47 +02:00
CVF_ASSERT ( readerSettings );
readerSettings -> importFaults = false ;
2013-04-12 13:15:41 +02:00
}