2012-05-18 02:45:23 -05:00
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2011-2012 Statoil ASA, Ceetron AS
//
// 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:12:00 -05:00
# include "RiaStdInclude.h"
2013-03-22 10:24:42 -05:00
# include "RiaPreferences.h"
2013-05-06 03:55:00 -05:00
2012-06-26 09:10:41 -05:00
# include "cafPdmUiFilePathEditor.h"
2013-05-06 03:55:00 -05:00
# include "cafPdmFieldCvfColor.h"
2014-07-22 05:10:51 -05:00
# include "cafPdmUiCheckBoxEditor.h"
2014-07-30 02:13:47 -05:00
# include "RifReaderSettings.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
{
2013-06-26 02:01:43 -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) " , " " , " " , " " ) ;
scriptDirectories . 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 " , " " , " " , " " ) ;
2012-06-26 09:10:41 -05:00
scriptEditorExecutable . setUiEditorTypeName ( caf : : PdmUiFilePathEditor : : uiEditorTypeName ( ) ) ;
2014-07-22 05:10:51 -05:00
CAF_PDM_InitField ( & octaveExecutable , " octaveExecutable " , QString ( " octave " ) , " Octave executable location " , " " , " " , " " ) ;
2012-06-26 09:10:41 -05:00
octaveExecutable . setUiEditorTypeName ( caf : : PdmUiFilePathEditor : : uiEditorTypeName ( ) ) ;
2014-07-22 05:10:51 -05:00
octaveExecutable . setUiLabelPosition ( caf : : PdmUiItemInfo : : TOP ) ;
2014-08-01 01:15:22 -05:00
CAF_PDM_InitField ( & octaveShowHeaderInfoWhenExecutingScripts , " octaveShowHeaderInfoWhenExecutingScripts " , false , " Show text header when executing scripts " , " " , " " , " " ) ;
2014-07-22 05:10:51 -05:00
octaveShowHeaderInfoWhenExecutingScripts . setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
2012-05-18 02:45:23 -05:00
2013-05-29 05:59:08 -05:00
CAF_PDM_InitField ( & ssihubAddress , " ssihubAddress " , QString ( " http:// " ) , " ssihub Address " , " " , " " , " " ) ;
2012-10-12 08:05:42 -05:00
CAF_PDM_InitField ( & defaultGridLines , " defaultGridLines " , true , " Gridlines " , " " , " " , " " ) ;
2013-04-12 06:15:41 -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 " , " " , " " , " " ) ;
2013-10-01 04:13:23 -05: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 06:15:41 -05:00
2013-04-15 06:13:41 -05: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 08:05:42 -05:00
CAF_PDM_InitField ( & defaultScaleFactorZ , " defaultScaleFactorZ " , 5 , " Z scale factor " , " " , " " , " " ) ;
2012-05-18 02:45:23 -05:00
CAF_PDM_InitField ( & useShaders , " useShaders " , true , " Use Shaders " , " " , " " , " " ) ;
2012-10-23 01:27:49 -05:00
CAF_PDM_InitField ( & showHud , " showHud " , false , " Show 3D Information " , " " , " " , " " ) ;
2012-05-18 02:45:23 -05:00
CAF_PDM_InitFieldNoDefault ( & lastUsedProjectFileName , " lastUsedProjectFileName " , " Last Used Project File " , " " , " " , " " ) ;
2012-06-26 09:10:41 -05:00
lastUsedProjectFileName . setUiHidden ( true ) ;
2012-08-31 12:12:47 -05:00
2014-07-30 02:13:47 -05:00
CAF_PDM_InitField ( & autocomputeDepthRelatedProperties , " autocomputeDepth " , true , " DEPTH related properties " , " " , " DEPTH, DX, DY, DZ, TOP, BOTTOM " , " " ) ;
CAF_PDM_InitField ( & autocomputeGridFaults , " autocomputeGridFaults " , true , " Grid faults " , " " , " Detect all fault faces geometrically " , " " ) ;
2013-12-20 01:48:54 -06:00
2014-07-30 02:13:47 -05:00
autocomputeDepthRelatedProperties . setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
autocomputeGridFaults . setUiLabelPosition ( caf : : PdmUiItemInfo : : HIDDEN ) ;
readerSettings = new RifReaderSettings ;
CAF_PDM_InitFieldNoDefault ( & readerSettings , " readerSettings " , " Reader settings " , " " , " " , " " ) ;
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
{
}
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
{
caf : : PdmUiFilePathEditorAttribute * myAttr = static_cast < caf : : PdmUiFilePathEditorAttribute * > ( attribute ) ;
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 | |
field = = & autocomputeDepthRelatedProperties | |
field = = & autocomputeGridFaults )
2014-07-22 05:10:51 -05:00
{
caf : : PdmUiCheckBoxEditorAttribute * myAttr = static_cast < caf : : PdmUiCheckBoxEditorAttribute * > ( attribute ) ;
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
{
uiOrdering . add ( & navigationPolicy ) ;
caf : : PdmUiGroup * scriptGroup = uiOrdering . addNewGroup ( " Script configuration " ) ;
2013-04-24 00:35:31 -05:00
scriptGroup - > add ( & scriptDirectories ) ;
2012-10-12 08:05:42 -05:00
scriptGroup - > add ( & scriptEditorExecutable ) ;
2014-07-22 05:10:51 -05:00
caf : : PdmUiGroup * octaveGroup = uiOrdering . addNewGroup ( " Octave " ) ;
octaveGroup - > add ( & octaveExecutable ) ;
octaveGroup - > add ( & octaveShowHeaderInfoWhenExecutingScripts ) ;
2012-10-12 08:05:42 -05:00
caf : : PdmUiGroup * defaultSettingsGroup = uiOrdering . addNewGroup ( " Default settings " ) ;
defaultSettingsGroup - > add ( & defaultScaleFactorZ ) ;
2013-04-15 06:13:41 -05:00
defaultSettingsGroup - > add ( & defaultViewerBackgroundColor ) ;
2012-10-12 08:05:42 -05:00
defaultSettingsGroup - > add ( & defaultGridLines ) ;
2013-04-12 06:15:41 -05:00
defaultSettingsGroup - > add ( & defaultGridLineColors ) ;
defaultSettingsGroup - > add ( & defaultFaultGridLineColors ) ;
2013-10-01 04:13:23 -05:00
defaultSettingsGroup - > add ( & defaultWellLabelColor ) ;
2012-10-12 08:05:42 -05:00
2012-10-24 03:52:44 -05:00
caf : : PdmUiGroup * autoComputeGroup = uiOrdering . addNewGroup ( " Compute when loading new case " ) ;
autoComputeGroup - > add ( & autocomputeDepthRelatedProperties ) ;
2014-07-30 02:13:47 -05:00
autoComputeGroup - > add ( & autocomputeGridFaults ) ;
2013-12-20 01:48:54 -06:00
2014-07-30 02:13:47 -05: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 08:05:42 -05:00
}
2013-04-12 06:15:41 -05:00
//--------------------------------------------------------------------------------------------------
2013-12-20 01:48:54 -06: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 06:15:41 -05:00
//--------------------------------------------------------------------------------------------------
2014-01-23 06:17:49 -06:00
void RiaPreferences : : configureForRegressionTests ( )
2013-04-12 06:15:41 -05:00
{
2013-09-12 01:56:38 -05:00
useShaders = true ;
showHud = false ;
2013-04-12 06:15:41 -05:00
2013-09-12 01:56:38 -05:00
autocomputeDepthRelatedProperties = true ;
2013-12-20 01:48:54 -06:00
2014-07-30 02:13:47 -05:00
CVF_ASSERT ( readerSettings ) ;
readerSettings - > importFaults = false ;
2013-04-12 06:15:41 -05:00
}