2026-03-27 17:56:28 -05:00
//+------------------------------------------------------------------+
//| Decrypter.mqh |
//| Copyright 2026, Niquel Mendoza. |
//| https://www.mql5.com/es/users/nique_372 |
//+------------------------------------------------------------------+
# property copyright " Copyright 2026, Niquel Mendoza. "
# property link " https://www.mql5.com/es/users/nique_372 "
# property strict
# ifndef AIDATATASKRUNER_UI_TABUTIL_DECRYPTHER_MQH
# define AIDATATASKRUNER_UI_TABUTIL_DECRYPTHER_MQH
//+------------------------------------------------------------------+
//| Include |
//+------------------------------------------------------------------+
# include "Encrypter.mqh"
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
class CTabUtilsDecrypther : public CGuiBaseComponent < CLoggerBase >
{
private :
//---
CTabUtilsGeneral * m_general ;
2026-06-03 22:07:50 -05:00
TSN : : CJsonParser * m_json_parser ;
2026-03-27 17:56:28 -05:00
//--- General
Xoshiro256 m_random ; // Generador de keys
2026-06-03 22:07:50 -05:00
TSN : : CFolderOpsEncrypt m_folder_decryptor ;
2026-03-27 17:56:28 -05:00
//--- Fronted
//- Encriptacion
CTextLabel m_label_tit_enc ;
// Tipo de decryptacion
CComboBox m_combox_decrypt_type ;
2026-03-28 07:07:21 -05:00
CSeparateLine m_sep_start_config_dec ;
2026-03-27 17:56:28 -05:00
// Arhicvo de configuracion
// Tambien se ubican las exntension a limpiar y archivos que se deberan de explcuir
CTextLabel m_label_file_config_decrypt ;
CTextLabel m_label_file_config_decrypt_val ;
CButton m_btn_browse_file_config_decrypt ;
CButton m_btn_browse_file_config_decrypt_template ; // Boton para selecionar el archivo template
// Prefijo para el archivo decryptado de salida
CTextEdit m_edit_decrypt_prefix ;
// Edit de decryptacion (key)
CTextEdit m_edit_decrypt_key ;
CButton m_btn_decrypt_key_show_hide ; // Ver o ocultar dicha clave
// Ejecutar la limpieza
CButton m_btn_decrypt_run ;
//---
void OnRunDecrypt ( ) ;
public :
CTabUtilsDecrypther ( void ) ;
~ CTabUtilsDecrypther ( void ) { }
//---
bool Create ( CWndCreate * p , CWindow & main_window , int top_gap , int left_gap , int right_gap , int bottom_gap ) ;
2026-03-27 22:30:19 -05:00
//---
2026-06-03 22:07:50 -05:00
void SetGeneral ( CTabUtilsGeneral * general , TSN : : CJsonParser * parser ) { m_general = general ; m_json_parser = parser ; }
2026-03-27 22:30:19 -05:00
2026-03-27 17:56:28 -05:00
//---
bool OnClickButtom ( const long lparam ) ;
void OnLenguajeChange ( ) override final ;
} ;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
CTabUtilsDecrypther : : CTabUtilsDecrypther ( void )
: CGuiBaseComponent < CLoggerBase > ( " CTabUtilsDecrypther " )
{
2026-03-28 07:59:20 -05:00
m_folder_decryptor . AddLogFlags ( LOG_ALL ) ;
2026-03-27 17:56:28 -05:00
m_folder_decryptor . Encryptor ( & g_mqlarticles_encryptor ) ;
m_folder_decryptor . RandomForEncryptor ( & m_random ) ; // por siacaso
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool CTabUtilsDecrypther : : Create ( CWndCreate * p , CWindow & main_window , int top_gap , int left_gap , int right_gap , int bottom_gap )
{
//---
int x = left_gap + 5 ;
int y = top_gap + 10 ;
const int inital_x = x ;
//--- Titulo Encrypt
m_label_tit_enc . FontSize ( 14 ) ;
m_label_tit_enc . Font ( " Arial " ) ;
m_label_tit_enc . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_PRIMARY ) ;
m_label_tit_enc . BackColor ( AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED ) ;
if ( ! p . CreateTextLabel ( m_label_tit_enc , m_language [ GUIBASE_COMPONENT_NAME ( m_label_tit_enc ) ] ,
main_window , 0 , m_base_tab , m_base_tab_idx , x , y , 200 ) )
{
GUIBASE_ERROR_CREATION ( m_label_tit_enc ) ;
return false ;
}
y + = m_label_tit_enc . YSize ( ) + 10 ;
//--- ComboBox tipo de decryptacion
m_combox_decrypt_type . FontSize ( 10 ) ;
m_combox_decrypt_type . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_combox_decrypt_type . BackColor ( AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED ) ;
m_combox_decrypt_type . GetListViewPointer ( ) . BackColor ( AIDATATASKRUNER_COLOR_EDIT_BACK ) ;
m_combox_decrypt_type . GetListViewPointer ( ) . BorderColor ( AIDATATASKRUNER_COLOR_EDIT_BORDER ) ;
m_combox_decrypt_type . GetListViewPointer ( ) . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_combox_decrypt_type . GetButtonPointer ( ) . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_combox_decrypt_type . GetButtonPointer ( ) . BackColor ( AIDATATASKRUNER_COLOR_EDIT_BACK ) ;
m_combox_decrypt_type . GetButtonPointer ( ) . BorderColor ( AIDATATASKRUNER_COLOR_EDIT_BORDER ) ;
m_combox_decrypt_type . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_combox_decrypt_type ) ) ) ;
if ( ! p . CreateCombobox ( m_combox_decrypt_type , m_language [ GUIBASE_COMPONENT_NAME ( m_combox_decrypt_type ) ] ,
2026-03-27 22:30:19 -05:00
main_window , 0 , m_base_tab , m_base_tab_idx , false , x , y , 50 + 10 + 130 , 130 ,
2026-03-27 17:56:28 -05:00
g_tabuils_arr_type_encrypt , 150 ) )
{
GUIBASE_ERROR_CREATION ( m_combox_decrypt_type ) ;
return false ;
}
m_combox_decrypt_type . m_button . IconFile ( RESOURCE_DOWN_THIN_WHITE ) ;
m_combox_decrypt_type . m_button . IconFileLocked ( RESOURCE_DOWN_THIN_WHITE ) ;
m_combox_decrypt_type . m_button . CElement : : IconFilePressed ( RESOURCE_UP_THIN_WHITE ) ;
m_combox_decrypt_type . m_button . CElement : : IconFilePressedLocked ( RESOURCE_UP_THIN_WHITE ) ;
y + = m_combox_decrypt_type . YSize ( ) + 10 ;
2026-03-28 07:07:21 -05:00
//---
m_base_tab . AddToElementsArray ( m_base_tab_idx , m_sep_start_config_dec ) ;
const int xsize = main_window . X2 ( ) - inital_x - inital_x ;
if ( ! p . CreateSepLine ( m_sep_start_config_dec , main_window , 0 , inital_x , y , xsize , ( 9 + 25 + 25 + 8 + 7 ) , AIDATATASKRUNER_COLOR_BTN_BORDER , AIDATATASKRUNER_COLOR_BTN_BORDER , H_SEP_LINE ) )
{
GUIBASE_ERROR_CREATION ( m_sep_start_config_dec ) ;
return false ;
}
y + = 2 + 7 ;
2026-03-27 17:56:28 -05:00
//--- Label config decrypt
m_label_file_config_decrypt . FontSize ( 10 ) ;
m_label_file_config_decrypt . Font ( " Arial " ) ;
m_label_file_config_decrypt . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_label_file_config_decrypt . BackColor ( AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED ) ;
if ( ! p . CreateTextLabel ( m_label_file_config_decrypt , m_language [ GUIBASE_COMPONENT_NAME ( m_label_file_config_decrypt ) ] ,
2026-03-27 22:30:19 -05:00
main_window , 0 , m_base_tab , m_base_tab_idx , x , y , 125 , 25 ) )
2026-03-27 17:56:28 -05:00
{
GUIBASE_ERROR_CREATION ( m_label_file_config_decrypt ) ;
return false ;
}
x + = m_label_file_config_decrypt . XSize ( ) + 5 ;
//--- Label val
m_label_file_config_decrypt_val . FontSize ( 10 ) ;
m_label_file_config_decrypt_val . Font ( " Arial " ) ;
m_label_file_config_decrypt_val . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_PRIMARY ) ;
m_label_file_config_decrypt_val . BackColor ( AIDATATASKRUNER_COLOR_EDIT_BACK ) ;
m_label_file_config_decrypt_val . LabelXGap ( 5 ) ;
m_label_file_config_decrypt_val . LabelYGap ( 3 ) ;
m_label_file_config_decrypt_val . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_label_file_config_decrypt_val ) ) ) ;
if ( ! p . CreateTextLabel ( m_label_file_config_decrypt_val , " " ,
2026-03-28 07:07:21 -05:00
main_window , 0 , m_base_tab , m_base_tab_idx , x , y , 400 , 25 ) )
2026-03-27 17:56:28 -05:00
{
GUIBASE_ERROR_CREATION ( m_label_file_config_decrypt_val ) ;
return false ;
}
x = inital_x ;
y + = m_label_file_config_decrypt_val . YSize ( ) + 8 ;
//--- Browse
2026-03-29 11:06:50 -05:00
m_btn_browse_file_config_decrypt . AddImagesGroup ( 5 , 2 , g_eafmod_ic_arr_folderw10_image ) ;
2026-03-27 22:30:19 -05:00
m_btn_browse_file_config_decrypt . ChangeImage ( 0 , 0 ) ;
2026-03-28 07:07:21 -05:00
m_btn_browse_file_config_decrypt . LabelXGap ( 22 ) ;
2026-03-27 17:56:28 -05:00
m_btn_browse_file_config_decrypt . FontSize ( 10 ) ;
m_btn_browse_file_config_decrypt . Font ( " Arial " ) ;
m_btn_browse_file_config_decrypt . BackColor ( AIDATATASKRUNER_COLOR_BTN_BACK ) ;
m_btn_browse_file_config_decrypt . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_btn_browse_file_config_decrypt . BorderColor ( AIDATATASKRUNER_COLOR_BTN_BORDER ) ;
m_btn_browse_file_config_decrypt . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_btn_browse_file_config_decrypt ) ) ) ;
if ( ! p . CreateButton ( m_btn_browse_file_config_decrypt , m_language [ GUIBASE_COMPONENT_NAME ( m_btn_browse_file_config_decrypt ) ] ,
2026-03-27 22:30:19 -05:00
main_window , 0 , m_base_tab , m_base_tab_idx , x , y , 100 ) )
2026-03-27 17:56:28 -05:00
{
GUIBASE_ERROR_CREATION ( m_btn_browse_file_config_decrypt ) ;
return false ;
}
x + = m_btn_browse_file_config_decrypt . XSize ( ) + 5 ;
//--- Template "?"
2026-03-29 11:06:50 -05:00
m_btn_browse_file_config_decrypt_template . AddImagesGroup ( 5 , 2 , g_eafmod_ic_arr_help_image ) ;
2026-03-27 22:30:19 -05:00
m_btn_browse_file_config_decrypt_template . ChangeImage ( 0 , 0 ) ;
2026-03-27 17:56:28 -05:00
m_btn_browse_file_config_decrypt_template . FontSize ( 10 ) ;
m_btn_browse_file_config_decrypt_template . Font ( " Arial " ) ;
2026-03-27 22:30:19 -05:00
m_btn_browse_file_config_decrypt_template . BackColor ( AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED ) ;
2026-03-27 17:56:28 -05:00
m_btn_browse_file_config_decrypt_template . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
2026-03-27 22:30:19 -05:00
m_btn_browse_file_config_decrypt_template . BorderColor ( AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED ) ;
2026-03-27 17:56:28 -05:00
m_btn_browse_file_config_decrypt_template . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_btn_browse_file_config_decrypt_template ) ) ) ;
2026-03-27 22:30:19 -05:00
if ( ! p . CreateButton ( m_btn_browse_file_config_decrypt_template , " " ,
2026-03-27 17:56:28 -05:00
main_window , 0 , m_base_tab , m_base_tab_idx , x , y , 30 ) )
{
GUIBASE_ERROR_CREATION ( m_btn_browse_file_config_decrypt_template ) ;
return false ;
}
x = inital_x ;
2026-03-28 07:07:21 -05:00
y + = m_btn_browse_file_config_decrypt_template . YSize ( ) + 18 ;
2026-03-27 17:56:28 -05:00
//--- Edit prefix
string texto = m_language [ GUIBASE_COMPONENT_NAME ( m_edit_decrypt_prefix ) ] ;
m_edit_decrypt_prefix . FontSize ( 10 ) ;
2026-03-27 22:30:19 -05:00
m_edit_decrypt_prefix . Font ( " Arial " ) ;
2026-03-27 17:56:28 -05:00
m_edit_decrypt_prefix . CanvasFontSet ( ) ;
int width = m_edit_decrypt_prefix . m_canvas . TextWidth ( texto ) ;
m_edit_decrypt_prefix . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_edit_decrypt_prefix . BackColor ( AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED ) ;
m_edit_decrypt_prefix . GetTextBoxPointer ( ) . BackColor ( AIDATATASKRUNER_COLOR_EDIT_BACK ) ;
m_edit_decrypt_prefix . GetTextBoxPointer ( ) . BorderColor ( AIDATATASKRUNER_COLOR_EDIT_BORDER ) ;
m_edit_decrypt_prefix . GetTextBoxPointer ( ) . DefaultTextColor ( AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL ) ;
m_edit_decrypt_prefix . GetTextBoxPointer ( ) . LabelColor ( AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL ) ;
m_edit_decrypt_prefix . GetTextBoxPointer ( ) . SelectedBackColor ( AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED ) ;
m_edit_decrypt_prefix . GetTextBoxPointer ( ) . SelectedTextColor ( AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT ) ;
m_edit_decrypt_prefix . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_edit_decrypt_prefix ) ) ) ;
if ( ! p . CreateTextEdit ( m_edit_decrypt_prefix , texto ,
main_window , 0 , m_base_tab , m_base_tab_idx , false , x , y ,
2026-03-27 22:30:19 -05:00
width + 10 + 150 , 150 , " " ) )
2026-03-27 17:56:28 -05:00
{
GUIBASE_ERROR_CREATION ( m_edit_decrypt_prefix ) ;
return false ;
}
y + = m_edit_decrypt_prefix . YSize ( ) + 10 ;
//--- Edit key
texto = m_language [ GUIBASE_COMPONENT_NAME ( m_edit_decrypt_key ) ] ;
m_edit_decrypt_key . FontSize ( 10 ) ;
m_edit_decrypt_key . Font ( " Arial " ) ;
m_edit_decrypt_key . CanvasFontSet ( ) ;
width = m_edit_decrypt_key . m_canvas . TextWidth ( texto ) ;
m_edit_decrypt_key . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_edit_decrypt_key . BackColor ( AIDATATASKRUNER_COLOR_FONDO_SUBTAB_PRESSED ) ;
m_edit_decrypt_key . GetTextBoxPointer ( ) . BackColor ( AIDATATASKRUNER_COLOR_EDIT_BACK ) ;
m_edit_decrypt_key . GetTextBoxPointer ( ) . BorderColor ( AIDATATASKRUNER_COLOR_EDIT_BORDER ) ;
m_edit_decrypt_key . GetTextBoxPointer ( ) . DefaultTextColor ( AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL ) ;
m_edit_decrypt_key . GetTextBoxPointer ( ) . LabelColor ( AIDATATASKRUNER_COLOR_EDIT_TEXT_NORMAL ) ;
m_edit_decrypt_key . GetTextBoxPointer ( ) . SelectedBackColor ( AIDATATASKRUNER_COLOR_EDIT_TEXT_SELECTED ) ;
m_edit_decrypt_key . GetTextBoxPointer ( ) . SelectedTextColor ( AIDATATASKRUNER_COLOR_EDIT_TEXT_HIGHLIGHT ) ;
m_edit_decrypt_key . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_edit_decrypt_key ) ) ) ;
if ( ! p . CreateTextEdit ( m_edit_decrypt_key , texto ,
main_window , 0 , m_base_tab , m_base_tab_idx , false , x , y ,
width + 10 + 250 , 250 , " " ) )
{
GUIBASE_ERROR_CREATION ( m_edit_decrypt_key ) ;
return false ;
}
m_edit_decrypt_key . GetTextBoxPointer ( ) . Font ( EAFMOD_KEY_FONT ) ;
const int edit_key_y = m_edit_decrypt_key . YSize ( ) ;
//--- Btn show/hide (va despues del aleatorio, con imagen)
m_btn_decrypt_key_show_hide . AddImagesGroup ( 1 , 1 , g_llmagetn_tab_images_vis_path ) ;
m_btn_decrypt_key_show_hide . ChangeImage ( 0 , EAFMOD_FORKEYS_IMAGES_VIS_CLOSED ) ;
m_btn_decrypt_key_show_hide . XSize ( edit_key_y ) ;
m_btn_decrypt_key_show_hide . YSize ( edit_key_y ) ;
m_btn_decrypt_key_show_hide . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_btn_decrypt_key_show_hide . BackColor ( AIDATATASKRUNER_COLOR_BTN_BACK ) ;
m_btn_decrypt_key_show_hide . BorderColor ( AIDATATASKRUNER_COLOR_BTN_BORDER ) ;
m_btn_decrypt_key_show_hide . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_btn_decrypt_key_show_hide ) ) ) ;
if ( ! p . CreateButton ( m_btn_decrypt_key_show_hide , " " ,
main_window , 0 , m_base_tab , m_base_tab_idx ,
2026-03-27 22:30:19 -05:00
x + m_edit_decrypt_key . XSize ( ) + 5 , y , edit_key_y ) )
2026-03-27 17:56:28 -05:00
{
GUIBASE_ERROR_CREATION ( m_btn_decrypt_key_show_hide ) ;
return false ;
}
x = inital_x ;
y + = edit_key_y + 10 ;
//--- Btn Run
m_btn_decrypt_run . FontSize ( 10 ) ;
m_btn_decrypt_run . Font ( " Arial " ) ;
m_btn_decrypt_run . BackColor ( AIDATATASKRUNER_COLOR_BTN_BACK ) ;
m_btn_decrypt_run . LabelColor ( AIDATATASKRUNER_COLOR_TEXT_SECONDARY ) ;
m_btn_decrypt_run . BorderColor ( AIDATATASKRUNER_COLOR_BTN_BORDER ) ;
m_btn_decrypt_run . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_btn_decrypt_run ) ) ) ;
if ( ! p . CreateButton ( m_btn_decrypt_run , m_language [ GUIBASE_COMPONENT_NAME ( m_btn_decrypt_run ) ] ,
main_window , 0 , m_base_tab , m_base_tab_idx , x , y , 120 ) )
{
GUIBASE_ERROR_CREATION ( m_btn_decrypt_run ) ;
return false ;
}
x = inital_x ;
y + = m_btn_decrypt_run . YSize ( ) + 20 ;
//---
return true ;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CTabUtilsDecrypther : : OnLenguajeChange ( void )
{
2026-03-27 22:30:19 -05:00
//---
UpdateTBasic ( m_label_tit_enc , GUIBASE_COMPONENT_NAME ( m_label_tit_enc ) , false ) ;
ResizeTElement ( m_combox_decrypt_type , GUIBASE_COMPONENT_NAME ( m_combox_decrypt_type ) , 130 , 10 ) ;
//---
// Label
UpdateTBasic ( m_label_file_config_decrypt , GUIBASE_COMPONENT_NAME ( m_label_file_config_decrypt ) , false ) ;
// Val
m_label_file_config_decrypt_val . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_label_file_config_decrypt_val ) ) ) ;
// Browse
UpdateTBasic ( m_btn_browse_file_config_decrypt , GUIBASE_COMPONENT_NAME ( m_btn_browse_file_config_decrypt ) , true ) ;
// Temaplte
m_btn_browse_file_config_decrypt_template . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_btn_browse_file_config_decrypt_template ) ) ) ;
//--- Prefix
ResizeTElement ( m_edit_decrypt_prefix , GUIBASE_COMPONENT_NAME ( m_edit_decrypt_prefix ) , 150 , 10 ) ;
//---
// Key
ResizeTElement ( m_edit_decrypt_key , GUIBASE_COMPONENT_NAME ( m_edit_decrypt_key ) , 250 , 10 ) ;
// ShowHide
m_btn_decrypt_key_show_hide . Tooltip ( m_language . Tooltip ( GUIBASE_COMPONENT_NAME ( m_btn_decrypt_key_show_hide ) ) ) ;
//--- Run
UpdateTBasic ( m_btn_decrypt_run , GUIBASE_COMPONENT_NAME ( m_btn_decrypt_run ) , false ) ;
2026-03-27 17:56:28 -05:00
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool CTabUtilsDecrypther : : OnClickButtom ( const long lparam )
{
//--- Encrypt
// Valor (browse)
if ( m_btn_browse_file_config_decrypt . Id ( ) = = lparam )
{
//---
string arr [ ] ;
2026-03-28 07:07:21 -05:00
if ( FileSelectDialog ( GUIBASE_MSG ( " flselect_config_decrypt " ) , NULL , " JSON Files (*.json)|*.json " , ( m_general . ComonFlagVal ( ) ? FSD_COMMON_FOLDER : 0 ) ,
2026-03-27 17:56:28 -05:00
arr , NULL ) ! = 1 )
{
MessageBox ( GUIBASE_MSG ( " error_select_file " ) , GUIBASE_COMMON ( " error " ) , MB_ICONERROR | MB_OK ) ;
return true ;
}
//---
m_label_file_config_decrypt_val . LabelText ( arr [ 0 ] ) ; // ruta completa aqui
m_label_file_config_decrypt_val . Update ( true ) ;
//---
2026-06-03 22:07:50 -05:00
if ( ! m_folder_decryptor . Load ( arr [ 0 ] , m_general . ComonFlagVal ( ) , * m_json_parser ) )
2026-03-27 17:56:28 -05:00
{
MessageBox ( GUIBASE_MSG ( " error_loadjson_enc " ) , GUIBASE_COMMON ( " error " ) , MB_ICONERROR | MB_OK ) ;
}
return true ;
}
// Template
if ( m_btn_browse_file_config_decrypt_template . Id ( ) = = lparam )
{
//---
string arr [ ] ;
2026-03-27 22:30:19 -05:00
if ( FileSelectDialog ( GUIBASE_MSG ( " flselect_config_decrypt " ) , AIDATATASKRUNER_PATH_TEMPLATES , " JSON Files (*.json)|*.json " , AIDATATASK_RUNNER_FSD_COMON_FLAG ,
2026-03-27 17:56:28 -05:00
arr , AIDATATASKRUNER_FILENAME_TEMPLATES_FILEINCLUEXCLU_ENC ) ! = 1 )
{
MessageBox ( GUIBASE_MSG ( " error_select_file " ) , GUIBASE_COMMON ( " error " ) , MB_ICONERROR | MB_OK ) ;
return true ;
}
//---
m_label_file_config_decrypt_val . LabelText ( arr [ 0 ] ) ; // ruta completa aqui
m_label_file_config_decrypt_val . Update ( true ) ;
//---
2026-06-03 22:07:50 -05:00
if ( ! m_folder_decryptor . Load ( arr [ 0 ] , AIDATATASK_RUNNER_COMON_FLAG_VAL , * m_json_parser ) )
2026-03-27 17:56:28 -05:00
{
MessageBox ( GUIBASE_MSG ( " error_loadjson_enc " ) , GUIBASE_COMMON ( " error " ) , MB_ICONERROR | MB_OK ) ;
}
return true ;
}
// Run
if ( m_btn_decrypt_run . Id ( ) = = lparam )
{
m_btn_decrypt_run . LabelText ( m_language [ GUIBASE_COMPONENT_NAME ( m_btn_decrypt_run ) + " _onrun " ] ) ;
m_btn_decrypt_run . Update ( true ) ;
OnRunDecrypt ( ) ;
m_btn_decrypt_run . LabelText ( m_language [ GUIBASE_COMPONENT_NAME ( m_btn_decrypt_run ) ] ) ;
m_btn_decrypt_run . Update ( true ) ;
return true ;
}
//------ Botones 2
if ( m_btn_decrypt_key_show_hide . Id ( ) = = lparam )
{
// Edit
CTextBox * tb = m_edit_decrypt_key . GetTextBoxPointer ( ) ;
const bool is_hidden = tb . Font ( ) = = EAFMOD_KEY_FONT ;
tb . ChangeFont ( is_hidden ? " Arial " : EAFMOD_KEY_FONT , 10 ) ;
// Boton
m_btn_decrypt_key_show_hide . SetImage ( 0 , 0 , g_llmagetn_tab_images_vis_path [ is_hidden ? EAFMOD_FORKEYS_IMAGES_VIS_OPEN : EAFMOD_FORKEYS_IMAGES_VIS_CLOSED ] ) ;
m_btn_decrypt_key_show_hide . Update ( true ) ;
}
//---
return false ;
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CTabUtilsDecrypther : : OnRunDecrypt ( void )
{
//--- Check
const string main_folder = m_general . MainFolder ( ) ;
if ( main_folder .Length ( ) < 1 )
{
MessageBox ( GUIBASE_MSG ( " err_invalid_mfolder " ) , GUIBASE_COMMON ( " error " ) , MB_ICONERROR | MB_OK ) ;
return ;
}
//--- Vals
const ENUM_CRYPT_METHOD method = ENUM_CRYPT_METHOD ( m_combox_decrypt_type . GetListViewPointer ( ) . SelectedItemIndex ( ) + 1 ) ;
2026-03-28 08:24:29 -05:00
const string key = m_edit_decrypt_key . GetValue ( ) ;
2026-03-27 17:56:28 -05:00
//--- Pregunamos si desea eliminar los archivos previos (esto es util solo si se espcifico una extension para la decryptacion)
const int res = MessageBox ( GUIBASE_MSG ( " desea_eliminar_prev_folders " ) , GUIBASE_COMMON ( " info " ) , MB_ICONQUESTION | MB_YESNO ) ;
//--- Si falla le decimos mensaje que revise logs
2026-03-28 07:59:20 -05:00
m_folder_decryptor . SetInitialPass ( ) ;
2026-03-28 08:24:29 -05:00
if ( ! m_folder_decryptor . DecryptFolder ( main_folder , m_general . ComonFlagVal ( ) , key , method , ( res = = IDYES ) , m_edit_decrypt_prefix . GetValue ( ) ) )
2026-03-27 17:56:28 -05:00
{
MessageBox ( GUIBASE_MSG ( " err_decrypt_folder " ) , GUIBASE_COMMON ( " error " ) , MB_ICONQUESTION | MB_YESNO ) ;
}
}
# endif // AIDATATASKRUNER_UI_TABUTIL_DECRYPTHER_MQH