Feature: When in objet-mode, allow the use of a CFG-object for the tcCFG parameter (Lutz Scheffler)

This commit is contained in:
fdbozzo
2017-04-11 23:00:00 +02:00

View File

@@ -197,6 +197,7 @@
* 26/03/2017 FDBOZZO v1.19.49 Mejora cfg: Se permite indicar un archivo CFG por parámetro de cualquier directorio para anular los CFG predeterminados de los subdirectorios, para casos especiales donde sea necesario * 26/03/2017 FDBOZZO v1.19.49 Mejora cfg: Se permite indicar un archivo CFG por parámetro de cualquier directorio para anular los CFG predeterminados de los subdirectorios, para casos especiales donde sea necesario
* 28/03/2017 FDBOZZO v1.19.49 Mejora vcx: Implementada sintaxis para importar o exportar clases individuales usando "classlibrary.vcx::classname::import" y "classlibrary.vcx::classname::export" * 28/03/2017 FDBOZZO v1.19.49 Mejora vcx: Implementada sintaxis para importar o exportar clases individuales usando "classlibrary.vcx::classname::import" y "classlibrary.vcx::classname::export"
* 11/04/2017 FDBOZZO v1.19.49 Bug Fix frx: Cuando dentro de una expresión se usa "&&", se corrompe el registro del FRX generado (Alejandro A Sosa) * 11/04/2017 FDBOZZO v1.19.49 Bug Fix frx: Cuando dentro de una expresión se usa "&&", se corrompe el registro del FRX generado (Alejandro A Sosa)
* 11/04/2017 FDBOZZO v1.19.49 Mejora cfg : En modo objeto permitir indicar un objeto CFG en lugar de un archivo CFG (Lutz Scheffler)
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES> * </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
* *
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
@@ -308,6 +309,7 @@
* 23/03/2017 Lutz Scheffler Reporte bug vcx v1.19.48: No funciona la generación de una clase individual con "classlib.vcx::classname" (Arreglado en v1.19.49) * 23/03/2017 Lutz Scheffler Reporte bug vcx v1.19.48: No funciona la generación de una clase individual con "classlib.vcx::classname" (Arreglado en v1.19.49)
* 23/03/2017 Lutz Scheffler Mejora vcx v1.19.48: Poder importar una clase (VC2 generado con ClassPerFile) en un VCX existente (Agragado en v1.19.49) * 23/03/2017 Lutz Scheffler Mejora vcx v1.19.48: Poder importar una clase (VC2 generado con ClassPerFile) en un VCX existente (Agragado en v1.19.49)
* 30/03/2017 Alejandro A Sosa Reporte bug frx v1.19.48: Cuando dentro de una expresión se usa "&&", se corrompe el registro del FRX generado (Arreglado en v1.19.49) * 30/03/2017 Alejandro A Sosa Reporte bug frx v1.19.48: Cuando dentro de una expresión se usa "&&", se corrompe el registro del FRX generado (Arreglado en v1.19.49)
* 28/03/2017 Lutz Scheffler Mejora cfg v1.19.48: En modo objeto permitir indicar un objeto CFG en lugar de un archivo CFG (Agragado en v1.19.49)
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)> * </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
* *
*--------------------------------------------------------------------------------------------------- *---------------------------------------------------------------------------------------------------
@@ -1834,6 +1836,7 @@ DEFINE CLASS c_foxbin2prg AS Session
LOCAL lcConfigFile, llExiste_CFG_EnDisco, laConfig(1), I, lcConfData, lcExt, lcValue, lc_CFG_Path, lcConfigLine, laDirInfo(1,5) ; LOCAL lcConfigFile, llExiste_CFG_EnDisco, laConfig(1), I, lcConfData, lcExt, lcValue, lc_CFG_Path, lcConfigLine, laDirInfo(1,5) ;
, lnDirs, laDirs(1), llMasterEval, lcProp ; , lnDirs, laDirs(1), llMasterEval, lcProp ;
, lo_CFG AS CL_CFG OF 'FOXBIN2PRG.PRG' ; , lo_CFG AS CL_CFG OF 'FOXBIN2PRG.PRG' ;
, loCFG_Manual AS CL_CFG OF 'FOXBIN2PRG.PRG' ;
, lo_Configuration AS Collection ; , lo_Configuration AS Collection ;
, loLang as CL_LANG OF 'FOXBIN2PRG.PRG' ; , loLang as CL_LANG OF 'FOXBIN2PRG.PRG' ;
, loEx as Exception , loEx as Exception
@@ -1848,6 +1851,15 @@ DEFINE CLASS c_foxbin2prg AS Session
tcInputFile_Type = EVL(tcInputFile_Type,'') tcInputFile_Type = EVL(tcInputFile_Type,'')
lo_Configuration = .o_Configuration lo_Configuration = .o_Configuration
IF VARTYPE(lcConfigFile) = "O"
loCFG_Manual = lcConfigFile && lcConfigFile is an object CFG generated by get_DirSettings()
toParentCFG = loCFG_Manual
lcConfigFile = FULLPATH('Personalized-CFG-Object', tc_InputFile)
loCFG_Manual.c_Foxbin2prg_ConfigFile = 'Personalized-CFG-Object'
ELSE
loCFG_Manual = NULL
ENDIF
IF VARTYPE(toParentCFG) <> 'O' THEN IF VARTYPE(toParentCFG) <> 'O' THEN
toParentCFG = NULL toParentCFG = NULL
ENDIF ENDIF
@@ -1878,12 +1890,16 @@ DEFINE CLASS c_foxbin2prg AS Session
ELSE ELSE
IF tcInputFile_Type == C_FILETYPE_DIRECTORY THEN IF tcInputFile_Type == C_FILETYPE_DIRECTORY THEN
* INDICÓ DIRECTORIO * INDICÓ DIRECTORIO
*lcConfigFile = FULLPATH( 'foxbin2prg.cfg', ADDBS(tc_InputFile) ) IF ISNULL(loCFG_Manual)
lcConfigFile = FULLPATH( JUSTFNAME(lcConfigFile), ADDBS(tc_InputFile) ) *lcConfigFile = FULLPATH( 'foxbin2prg.cfg', ADDBS(tc_InputFile) )
lcConfigFile = FULLPATH( JUSTFNAME(lcConfigFile), ADDBS(tc_InputFile) )
ENDIF
ELSE ELSE
* INDICÓ ARCHIVO * INDICÓ ARCHIVO
*lcConfigFile = FULLPATH( 'foxbin2prg.cfg', tc_InputFile ) IF ISNULL(loCFG_Manual)
lcConfigFile = FULLPATH( JUSTFNAME(lcConfigFile), tc_InputFile ) *lcConfigFile = FULLPATH( 'foxbin2prg.cfg', tc_InputFile )
lcConfigFile = FULLPATH( JUSTFNAME(lcConfigFile), tc_InputFile )
ENDIF
ENDIF ENDIF
ENDIF ENDIF
ENDIF ENDIF
@@ -1909,6 +1925,11 @@ DEFINE CLASS c_foxbin2prg AS Session
IF .n_CFG_Actual > 0 THEN IF .n_CFG_Actual > 0 THEN
lo_CFG = lo_Configuration.Item(.n_CFG_Actual) lo_CFG = lo_Configuration.Item(.n_CFG_Actual)
.l_CFG_CachedAccess = .T. .l_CFG_CachedAccess = .T.
IF NOT ISNULL(loCFG_Manual)
* Si le paso un objeto CFG, prevalece sobre el guardado
lo_CFG.CopyFrom(@loCFG_Manual)
ENDIF
ENDIF ENDIF
ENDIF ENDIF
@@ -2687,6 +2708,7 @@ DEFINE CLASS c_foxbin2prg AS Session
, lnFileCount, lcErrorInfo, lcErrorFile, lnPCount, laParams(1), lnConversionOption, lnErrorIcon, llError ; , lnFileCount, lcErrorInfo, lcErrorFile, lnPCount, laParams(1), lnConversionOption, lnErrorIcon, llError ;
, lcOldSetEscape, lcOldOnEscape, llEscKeyRestored ; , lcOldSetEscape, lcOldOnEscape, llEscKeyRestored ;
, loEx AS EXCEPTION ; , loEx AS EXCEPTION ;
, loCFG AS CL_CFG OF 'FOXBIN2PRG.PRG' ;
, loFSO AS Scripting.FileSystemObject ; , loFSO AS Scripting.FileSystemObject ;
, loLang AS CL_LANG OF 'FOXBIN2PRG.PRG' ; , loLang AS CL_LANG OF 'FOXBIN2PRG.PRG' ;
, loFrm_Interactive AS frm_interactive OF 'FOXBIN2PRG.PRG' ; , loFrm_Interactive AS frm_interactive OF 'FOXBIN2PRG.PRG' ;
@@ -2701,6 +2723,7 @@ DEFINE CLASS c_foxbin2prg AS Session
loLang = _SCREEN.o_FoxBin2Prg_Lang loLang = _SCREEN.o_FoxBin2Prg_Lang
loFSO = .o_FSO loFSO = .o_FSO
loWSH = .o_WSH loWSH = .o_WSH
loCFG = NULL
lnPCount = 0 lnPCount = 0
lcInputFile_Type = '' lcInputFile_Type = ''
.l_Error = .F. .l_Error = .F.
@@ -2764,8 +2787,20 @@ DEFINE CLASS c_foxbin2prg AS Session
.c_ClassOperationType = '' .c_ClassOperationType = ''
ENDIF ENDIF
.c_Foxbin2prg_ConfigFile = EVL( tcCFG_File, .c_Foxbin2prg_ConfigFile ) IF VARTYPE(tcCFG_File) = "O"
.n_CFG_EvaluateFromParam = (IIF(EMPTY(tcCFG_File), 0, 1)) * Validar el objeto
loCFG = tcCFG_File
IF NOT (loCFG.Class == PROPER('CL_CFG'))
ERROR 'CFG object: Invalid class. Please, generate it with get_DirSettings()'
ENDIF
.c_Foxbin2prg_ConfigFile = loCFG
.n_CFG_EvaluateFromParam = 1
ELSE
.c_Foxbin2prg_ConfigFile = EVL( tcCFG_File, .c_Foxbin2prg_ConfigFile )
.n_CFG_EvaluateFromParam = (IIF(EMPTY(tcCFG_File), 0, 1))
ENDIF
*-- Ajusto la ruta si no es absoluta *-- Ajusto la ruta si no es absoluta
tc_InputFile = .get_AbsolutePath( tc_InputFile, .c_CurDir ) tc_InputFile = .get_AbsolutePath( tc_InputFile, .c_CurDir )
@@ -4035,8 +4070,8 @@ DEFINE CLASS c_foxbin2prg AS Session
ENDIF ENDIF
IF ISNULL(loCFG) THEN IF ISNULL(loCFG) THEN
lo_CFG = CREATEOBJECT('CL_CFG') loCFG = CREATEOBJECT('CL_CFG')
lo_CFG.CopyFrom(THIS) loCFG.CopyFrom(THIS)
ENDIF ENDIF
RETURN loCFG RETURN loCFG