@ -4,6 +4,144 @@ config main_config;
//functions
void on_save_done ( main_window * , config_str output , int size ) {
char * final_output = yon_char_parsed_to_string ( output , size , " " ) ;
if ( final_output ) {
printf ( " %s \n " , final_output ) ;
free ( final_output ) ;
}
yon_char_parsed_free ( output , size ) ;
textdomain ( template_ui_LocaleName ) ;
switch ( main_config . save_config ) {
case 0 :
yon_ubl_status_box_render ( GLOBAL_SAVE_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
break ;
case 1 :
yon_ubl_status_box_render ( LOCAL_SAVE_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
break ;
case 2 :
yon_ubl_status_box_render ( GLOBAL_LOCAL_SAVE_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
break ;
}
textdomain ( LocaleName ) ;
}
void yon_save_interface ( main_window * widgets ) {
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > AutoUpdateCheck ) ) ) {
yon_config_register ( AUTOUPDATE , AUTOUPDATE_command , " enable " ) ;
} else {
yon_config_register ( AUTOUPDATE , AUTOUPDATE_command , " disable " ) ;
}
int save_mode = gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > UpdateModeCombo ) ) ;
switch ( save_mode ) {
case 0 : yon_config_remove_by_key ( AUTOUPDATE_mode ) ;
break ;
case 1 : yon_config_register ( AUTOUPDATE_mode , AUTOUPDATE_mode_command , " modsys " ) ;
break ;
case 2 : yon_config_register ( AUTOUPDATE_mode , AUTOUPDATE_mode_command , " modules " ) ;
break ;
case 3 : yon_config_register ( AUTOUPDATE_mode , AUTOUPDATE_mode_command , " system " ) ;
break ;
}
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > UpdateIntervalDefaultCheck ) ) ) {
yon_config_remove_by_key ( AUTOUPDATE_interval ) ;
} else {
char * int_str = yon_char_from_long ( gtk_spin_button_get_value ( GTK_SPIN_BUTTON ( widgets - > UpdateIntervalSpin ) ) ) ;
char * interval = " " ;
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > BootCheck ) ) ) interval = " boot " ;
switch ( gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > UpdateIntervalCombo ) ) ) {
case 0 : interval = yon_char_unite ( ! yon_char_is_empty ( interval ) ? interval : " " , ! yon_char_is_empty ( interval ) ? " , " : " " , int_str , " min " , NULL ) ;
break ;
case 1 : interval = yon_char_unite ( int_str , " h " , NULL ) ;
break ;
case 2 : interval = yon_char_unite ( int_str , " d " , NULL ) ;
break ;
case 3 : interval = yon_char_unite ( int_str , " M " , NULL ) ;
break ;
}
yon_config_register ( AUTOUPDATE , AUTOUPDATE_command , interval ) ;
}
if ( ! gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > UpdateRepoListCombo ) ) ) {
yon_config_remove_by_key ( AUTOUPDATE_repos ) ;
} else {
char * repos = " " ;
GtkTreeIter iter ;
for_iter ( GTK_TREE_MODEL ( widgets - > UpdateRepoList ) , & iter ) {
char * target ;
int status ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > UpdateRepoList ) , & iter , 0 , & status , 1 , & target , - 1 ) ;
if ( status ) {
char * temp = yon_char_unite ( repos , ! yon_char_is_empty ( repos ) ? " , " : " " , target , NULL ) ;
if ( ! yon_char_is_empty ( repos ) ) free ( repos ) ;
repos = temp ;
}
}
yon_config_register ( AUTOUPDATE_repos , AUTOUPDATE_repos_command , repos ) ;
}
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > RepositoriesRepoListConfigurationCheck ) ) ) {
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > RepositoriesDisableSystemReposCheck ) ) ) {
yon_config_register ( REPOSITORY_parameter , REPOSITORY_parameter_command , " only " ) ;
} else {
yon_config_register ( REPOSITORY_parameter , REPOSITORY_parameter_command , " enable " ) ;
}
} else {
yon_config_register ( REPOSITORY_parameter , REPOSITORY_parameter_command , " disable " ) ;
}
char * repo_net = " " ;
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > PublicationConnectPublicCheck ) ) ) {
repo_net = NULL ;
repo_net = " enable " ;
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > RecieveDBFromNetCheck ) ) ) {
if ( ! repo_net ) repo_net = " ,db " ;
else repo_net = yon_char_unite ( repo_net , " , " , " db " , NULL ) ;
} else {
repo_net = yon_char_unite ( repo_net , " , " , NULL ) ;
}
} else {
repo_net = " disable " ;
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > RecieveDBFromNetCheck ) ) ) {
if ( ! repo_net ) repo_net = " ,db " ;
else repo_net = yon_char_unite ( repo_net , " , " , " db " , NULL ) ;
} else {
repo_net = yon_char_unite ( repo_net , " , " , NULL ) ;
}
}
if ( ! gtk_combo_box_get_active ( GTK_COMBO_BOX ( widgets - > PublicationCombo ) ) ) {
yon_config_remove_by_key ( REPOPUBLIC_NET_parameter ) ;
} else {
char * repos = " " ;
GtkTreeIter iter ;
for_iter ( GTK_TREE_MODEL ( widgets - > PublicationList ) , & iter ) {
char * target ;
int status ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > PublicationList ) , & iter , 0 , & status , 1 , & target , - 1 ) ;
if ( status ) {
char * temp = yon_char_unite ( repos , ! yon_char_is_empty ( repos ) ? " , " : " " , target , NULL ) ;
if ( ! yon_char_is_empty ( repos ) ) free ( repos ) ;
repos = temp ;
}
}
if ( ! yon_char_is_empty ( repos ) ) {
repo_net = yon_char_unite ( repo_net , " , " , repos , NULL ) ;
}
}
yon_config_register ( REPOPUBLIC_NET_parameter , REPOPUBLIC_NET_parameter_command , repo_net ) ;
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( widgets - > MirrorPublicCheck ) ) ) {
yon_config_register ( REPOPUBLIC_CACHE , REPOPUBLIC_CACHE_command , " enable " ) ;
} else {
yon_config_register ( REPOPUBLIC_CACHE , REPOPUBLIC_CACHE_command , " disable " ) ;
}
}
void yon_load_proceed ( YON_CONFIG_TYPE type ) {
yon_config_clean ( ) ;
if ( ! yon_char_is_empty ( config_get_default_command ) )
@ -46,7 +184,30 @@ void yon_interface_update(main_window *widgets){
gtk_list_store_clear ( widgets - > PublicationList ) ;
gtk_list_store_clear ( widgets - > WebPublicationList ) ;
int size ;
GtkTreeIter iter ;
char * last_update_time = config ( AUTOUPDATE_timestamp ) ;
if ( ! yon_char_is_empty ( last_update_time ) ) {
int datetime_size ;
config_str datetime_parsed = yon_char_parse ( last_update_time , & datetime_size , " " ) ;
int year , month , day , hour , minute ;
int date_parsed_size , time_parsed_size ;
config_str date_parsed = yon_char_parse ( datetime_parsed [ 0 ] , & date_parsed_size , " - " ) ;
config_str time_parsed = yon_char_parse ( datetime_parsed [ 1 ] , & time_parsed_size , " : " ) ;
year = atoi ( date_parsed [ 0 ] ) ;
month = atoi ( date_parsed [ 1 ] ) ;
day = atoi ( date_parsed [ 2 ] ) ;
hour = atoi ( time_parsed [ 0 ] ) ;
minute = atoi ( time_parsed [ 1 ] ) ;
GDateTime * datetime = g_date_time_new_utc ( year , month , day , hour , minute , 0.0 ) ;
char * time_label = g_date_time_format ( datetime , main_config . date_format ) ;
gtk_entry_set_text ( GTK_ENTRY ( widgets - > DateEntry ) , time_label ) ;
g_date_time_unref ( datetime ) ;
free ( time_label ) ;
}
{
char * repo_config = config ( REPOSITORY_parameter ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > RepositoriesRepoListConfigurationCheck ) , 0 ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > RepositoriesDisableSystemReposCheck ) , 0 ) ;
if ( ! yon_char_is_empty ( repo_config ) ) {
if ( ! strcmp ( repo_config , " disable " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > RepositoriesRepoListConfigurationCheck ) , 0 ) ;
@ -58,7 +219,6 @@ void yon_interface_update(main_window *widgets){
}
config_str repos = yon_config_get_all_by_key ( REPOSITORY_search , & size ) ;
GtkTreeIter iter ;
for ( int i = 0 ; i < size ; i + + ) {
char * current = yon_char_new ( repos [ i ] ) ;
char * key = yon_char_divide_search ( current , " = " , - 1 ) ;
@ -68,30 +228,38 @@ void yon_interface_update(main_window *widgets){
config_str parsed = yon_char_parse ( current , & cur_size , " ; " ) ;
if ( cur_size ) {
gtk_list_store_append ( widgets - > ReposList , & iter ) ;
char * temp = yon_char_replace ( parsed [ 0 ] , " , " , " \n " ) ;
free ( parsed [ 0 ] ) ;
char * temp = strstr ( parsed [ 0 ] , " , " ) ? yon_char_replace ( parsed [ 0 ] , " , " , " \n " ) : parsed [ 0 ] ;
parsed [ 0 ] = temp ;
gtk_list_store_set ( widgets - > ReposList , & iter , 0 , cur_size > 3 & & ! strcmp ( parsed [ 3 ] , " " ) ? 1 : 0 , 1 , key , 2 , parsed [ 0 ] , 3 , cur_size > 1 ? parsed [ 1 ] : " " , 4 , cur_size > 2 ? parsed [ 2 ] : " " , - 1 ) ;
}
free ( key ) ;
free ( current ) ;
yon_char_parsed_free ( parsed , cur_size ) ;
}
yon_char_parsed_free ( repos , size ) ;
char * publish = config ( REPOPUBLIC_NET ) ;
}
{
int repos_size ;
config_str publish_repos = yon_config_load ( get_publication_list_command , & repos_size ) ;
for ( int i = 0 ; i < repos_size ; i + + ) {
yon_char_remove_last_symbol ( publish_repos [ i ] , ' \n ' ) ;
gtk_list_store_append ( widgets - > PublicationList , & iter ) ;
gtk_list_store_set ( widgets - > PublicationList , & iter , 0 , 1 , 1 , publish_repos [ i ] , - 1 ) ;
}
char * publish = config ( REPOPUBLIC_NET_parameter ) ;
if ( publish ) {
int cur_size ;
config_str parsed = yon_char_parse ( publish , & cur_size , " , " ) ;
if ( cur_size ) {
if ( ! strcmp ( parsed [ 0 ] , " disable " ) | | ! strcmp ( parsed [ 0 ] , " no " ) | | ! strcmp ( parsed [ 0 ] , " none " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > PublicationConnectPublicCheck ) , 0 ) ;
} else if ( ! strcmp ( parsed [ 0 ] , " enable " ) | | ! strcmp ( parsed [ 0 ] , " yes " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > PublicationConnectPublicCheck ) , 1 ) ;
}
if ( cur_size > 1 & & ! strcmp ( parsed [ 1 ] , " db " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > RecieveDBFromNetCheck ) , 1 ) ;
} else {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > RecieveDBFromNetCheck ) , 0 ) ;
}
if ( cur_size > 2 ) {
for ( int i = 2 ; i < cur_size ; i + + ) {
@ -102,7 +270,8 @@ void yon_interface_update(main_window *widgets){
yon_char_parsed_free ( parsed , cur_size ) ;
}
}
}
{
char * mirror = config ( REPOPUBLIC_CACHE ) ;
if ( ! yon_char_is_empty ( mirror ) ) {
if ( ! strcmp ( mirror , " enable " ) | | ! strcmp ( mirror , " yes " ) ) {
@ -129,10 +298,13 @@ void yon_interface_update(main_window *widgets){
}
}
}
}
{
char * autoupdate_config = config ( AUTOUPDATE ) ;
if ( ! yon_char_is_empty ( autoupdate_config ) & & ! strcmp ( autoupdate_config , " enable " ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > AutoUpdateCheck ) , 1 ) ;
} else {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( widgets - > AutoUpdateCheck ) , 0 ) ;
}
autoupdate_config = config ( AUTOUPDATE_mode ) ;
@ -144,20 +316,24 @@ void yon_interface_update(main_window *widgets){
} else if ( ! strcmp ( autoupdate_config , " system " ) ) {
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > UpdateModeCombo ) , 3 ) ;
}
} else {
gtk_combo_box_set_active ( GTK_COMBO_BOX ( widgets - > UpdateModeCombo ) , 0 ) ;
}
int repos_size ;
config_str overall_repos = yon_config_load ( get_publication_list_command , & repos_size ) ;
char * autoupdate_repos = config ( AUTOUPDATE_repos ) ;
if ( ! yon_char_is_empty ( autoupdate_repos ) ) {
if ( repos_size ) {
int parsed_size ;
GtkTreeIter iter ;
config_str parsed = yon_char_parse ( autoupdate_repos , & parsed_size , " , " ) ;
for ( int i = 0 ; i < parsed_size ; i + + ) {
for ( int i = 0 ; i < repos_size ; i + + ) {
yon_char_remove_last_symbol ( overall_repos [ i ] , ' \n ' ) ;
gtk_list_store_append ( GTK_LIST_STORE ( widgets - > UpdateRepoList ) , & iter ) ;
gtk_list_store_set ( widgets - > UpdateRepoList , & iter , 1 , parsed[ i ] , - 1 ) ;
gtk_list_store_set ( widgets - > UpdateRepoList , & iter , 1 , overall_repos[ i ] , 0 , ! parsed_size| | ( parsed_size & & yon_char_parsed_check_exist ( overall_repos , repos_size , overall_repos [ i ] ) > - 1 ) ? 1 : 0 , - 1 ) ;
}
yon_char_parsed_free ( parsed , parsed_size ) ;
}
autoupdate_config = config ( AUTOUPDATE_interval ) ;
if ( ! yon_char_is_empty ( autoupdate_config ) ) {
if ( ! strcmp ( autoupdate_config , " boot " ) ) {
@ -176,6 +352,13 @@ void yon_interface_update(main_window *widgets){
}
}
char * timestamp = config ( " AUTOUPDATE[timestamp] " ) ;
if ( ! yon_char_is_empty ( timestamp ) ) {
gtk_label_set_text ( GTK_LABEL ( widgets - > HeadLabel ) , timestamp ) ;
}
}
{
config_str web_publish = yon_config_get_all_by_key ( REPOPUBLIC_WEB_search , & size ) ;
for ( int i = 0 ; i < size ; i + + ) {
gtk_list_store_append ( widgets - > WebPublicationList , & iter ) ;
@ -203,7 +386,7 @@ void yon_interface_update(main_window *widgets){
gtk_list_store_set ( widgets - > WebPublicationList , & iter , 0 , 0 , - 1 ) ;
}
if ( cur_size > 1 & & ! strcmp ( parsed [ 1 ] , " listing " ) ) {
gtk_list_store_set ( widgets - > WebPublicationList , & iter , 3 , 1 , - 1 ) ;
}
if ( cur_size > 2 & & ! yon_char_is_empty ( parsed [ 2 ] ) ) {
gtk_list_store_set ( widgets - > WebPublicationList , & iter , 4 , parsed [ 2 ] , - 1 ) ;
@ -224,10 +407,98 @@ void yon_interface_update(main_window *widgets){
}
}
}
}
}
// standard functions
char * on_save_repos ( main_window * widgets ) {
GtkTreeIter iter ;
int size = 0 ;
config_str queue = NULL ;
for_iter ( GTK_TREE_MODEL ( widgets - > ReposList ) , & iter ) {
char * target ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > ReposList ) , & iter , 1 , & target , - 1 ) ;
yon_char_parsed_add_or_create_if_exists ( queue , & size , REPOSITORY ( target ) ) ;
}
int param_size ;
config_str parameters = yon_config_get_save_parameters_by_list ( & param_size , queue , size ) ;
return yon_char_parsed_to_string ( parameters , param_size , " " ) ;
}
void on_web_user_check ( GtkToggleButton * self , web_publication_add_window * window ) {
int status = gtk_toggle_button_get_active ( self ) ;
int status2 = gtk_combo_box_get_active ( GTK_COMBO_BOX ( window - > UserPasswordCombo ) ) ;
gtk_widget_set_sensitive ( window - > UsernameEntry , status ) ;
gtk_widget_set_sensitive ( window - > UserPasswordCombo , status ) ;
gtk_widget_set_sensitive ( window - > PasswordButton , status & & status2 ) ;
gtk_widget_set_sensitive ( window - > UserPasswordEntry , ( status & & status2 ) ) ;
}
void on_config_save ( GtkWidget * , main_window * widgets ) {
main_config . save_config = 2 ;
yon_save_interface ( widgets ) ;
template_saving_window * window = yon_save_proceed ( NULL , YON_CONFIG_BOTH , yon_config_get_custom_command ( " global " ) , NULL ) ;
if ( window ) { } ;
}
void on_config_global_save ( GtkWidget * , main_window * widgets ) {
main_config . save_config = 0 ;
yon_save_interface ( widgets ) ;
template_saving_window * window = yon_save_proceed ( " global " , YON_CONFIG_GLOBAL , yon_config_get_custom_command ( " global " ) , NULL ) ;
if ( window ) { } ;
}
void on_config_local_save ( GtkWidget * , main_window * widgets ) {
main_config . save_config = 1 ;
yon_save_interface ( widgets ) ;
template_saving_window * window = yon_save_proceed ( " system " , YON_CONFIG_LOCAL , yon_config_get_custom_command ( " system " ) , NULL ) ;
if ( window ) { } ;
}
void on_config_custom_save ( GtkWidget * , main_window * widgets ) {
main_config . save_config = 1 ;
yon_save_interface ( widgets ) ;
template_saving_window * window = yon_save_proceed ( NULL , YON_CONFIG_CUSTOM , yon_config_get_custom_command ( " system " ) , NULL ) ;
if ( window ) { } ;
}
void on_config_local_load ( GtkWidget * , main_window * widgets ) {
yon_load_proceed ( YON_CONFIG_LOCAL ) ;
textdomain ( template_ui_LocaleName ) ;
yon_ubl_status_box_render ( LOCAL_LOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
textdomain ( LocaleName ) ;
main_config . load_mode = 1 ;
yon_interface_update ( widgets ) ;
}
void on_config_global_load ( GtkWidget * , main_window * widgets ) {
yon_load_proceed ( YON_CONFIG_GLOBAL ) ;
textdomain ( template_ui_LocaleName ) ;
yon_ubl_status_box_render ( GLOBAL_LOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
textdomain ( LocaleName ) ;
main_config . load_mode = 0 ;
yon_interface_update ( widgets ) ;
}
void on_config_custom_load ( GtkWidget * , main_window * widgets ) {
yon_load_proceed ( YON_CONFIG_CUSTOM ) ;
textdomain ( template_ui_LocaleName ) ;
yon_ubl_status_box_render ( GLOBAL_LOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
textdomain ( LocaleName ) ;
main_config . load_mode = 3 ;
yon_interface_update ( widgets ) ;
}
void on_toggle_cell_toggled ( GtkWidget * , char * path , GtkListStore * target ) {
GtkTreeIter iter ;
int status ;
gtk_tree_model_get_iter_from_string ( GTK_TREE_MODEL ( target ) , & iter , path ) ;
gtk_tree_model_get ( GTK_TREE_MODEL ( target ) , & iter , 0 , & status , - 1 ) ;
gtk_list_store_set ( GTK_LIST_STORE ( target ) , & iter , 0 , ! status , - 1 ) ;
}
/**config_init()
* [ EN ]
*
@ -245,6 +516,11 @@ void config_init(){
main_config . lock_save_global = 0 ;
main_config . lock_save_local = 0 ;
main_config . load_mode = 1 ;
main_config . date_format = NULL ;
if ( ! yon_window_config_get_parameter ( " usage " , " date_format " , & main_config . date_format , YON_TYPE_STRING ) ) {
main_config . date_format = " %d.%m.%Y %H:%M " ;
}
}
void on_selection_changed ( GtkWidget * self , main_window * widgets ) {
@ -272,18 +548,15 @@ void on_selection_changed(GtkWidget *self, main_window *widgets){
}
} else if ( self = = widgets - > MirrorTree ) {
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > MirrorTree ) ) , & model , & iter ) ) {
gtk_widget_set_sensitive ( widgets - > MirrorConfigureButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > MirrorEditButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > MirrorRemoveButton , 1 ) ;
} else {
gtk_widget_set_sensitive ( widgets - > MirrorConfigureButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > MirrorEditButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > MirrorRemoveButton , 0 ) ;
}
}
}
void on_web_publish_path_changed ( GtkWidget * , web_publication_add_window * window ) {
gtk_list_store_clear ( window - > list ) ;
char * path = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > PathEntry ) ) ;
@ -318,6 +591,7 @@ void on_web_publish_add(GtkWidget *,main_window *widgets){
void on_repo_add ( GtkWidget * , main_window * widgets ) {
gtk_tree_selection_unselect_all ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > MirrorTree ) ) ) ;
repo_add_window * window = yon_repo_add_window_new ( ) ;
g_signal_connect ( G_OBJECT ( window - > RepoSourceCombo ) , " changed " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_combo_box ) , window - > RepoSourceButton ) ;
yon_gtk_window_setup ( GTK_WINDOW ( window - > Window ) , GTK_WINDOW ( widgets - > Window ) , ADD_REPO_LABEL , icon_path , " add_repo_window " ) ;
dictionary * dict = NULL ;
@ -339,6 +613,17 @@ void on_mirror_add(GtkWidget *,main_window *widgets){
}
void on_password_open ( GtkWidget * , web_publication_add_window * window ) {
password_window * dialog = yon_password_window_new ( ) ;
yon_gtk_entry_set_password_visibility_icon ( GTK_ENTRY ( dialog - > PasswordEntry ) ) ;
yon_gtk_entry_set_password_visibility_icon ( GTK_ENTRY ( dialog - > PasswordHashEntry ) ) ;
yon_gtk_entry_set_password_visibility_icon ( GTK_ENTRY ( dialog - > RepeatPasswordEntry ) ) ;
dictionary * dict = NULL ;
yon_dictionary_add_or_create_if_exists_with_data ( dict , " window " , dialog ) ;
yon_dictionary_add_or_create_if_exists_with_data ( dict , " target " , window - > UserPasswordEntry ) ;
g_signal_connect ( G_OBJECT ( dialog - > AcceptButton ) , " clicked " , G_CALLBACK ( on_password_accept ) , dict ) ;
}
void on_web_publish_remove ( GtkWidget * self , main_window * widgets ) {
dialog_confirmation_data * data = malloc ( sizeof ( dialog_confirmation_data ) ) ;
data - > action_text = REMOVE_REPO_WARNING_LABEL ;
@ -574,7 +859,55 @@ void on_mirror_configure(GtkWidget *,main_window *widgets){
dictionary * dict = NULL ;
yon_dictionary_add_or_create_if_exists_with_data ( dict , " widgets " , widgets ) ;
yon_dictionary_add_or_create_if_exists_with_data ( dict , " window " , window ) ;
g_signal_connect ( G_OBJECT ( window - > AcceptButton ) , " clicked " , G_CALLBACK ( on_mirror_accept ) , dict ) ;
g_signal_connect ( G_OBJECT ( window - > AcceptButton ) , " clicked " , G_CALLBACK ( on_mirror_configure_accept ) , dict ) ;
char * port_str = config ( REPOPUBLIC_CACHE_full ( " port " ) ) ;
if ( ! yon_char_is_empty ( port_str ) ) {
double port = atof ( port_str ) ;
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( window - > PortDefaultCheck ) , 0 ) ;
gtk_spin_button_set_value ( GTK_SPIN_BUTTON ( window - > PortSpin ) , port ) ;
}
char * cache = config ( REPOPUBLIC_CACHE_full ( " cache_dir " ) ) ;
if ( ! yon_char_is_empty ( cache ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( window - > CacheDefaultCheck ) , 0 ) ;
gtk_entry_set_text ( GTK_ENTRY ( window - > CacheEntry ) , cache ) ;
}
char * inactivity = config ( REPOPUBLIC_CACHE_full ( " purge_files_after " ) ) ;
if ( ! yon_char_is_empty ( inactivity ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( window - > InactivityDurationDefaultCheck ) , 0 ) ;
gtk_spin_button_set_value ( GTK_SPIN_BUTTON ( window - > InactivityDurationSpin ) , atof ( inactivity ) ) ;
}
char * timeout = config ( REPOPUBLIC_CACHE_full ( " download_timeout " ) ) ;
if ( ! yon_char_is_empty ( timeout ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( window - > CacheTimeoutDefaultCheck ) , 0 ) ;
gtk_spin_button_set_value ( GTK_SPIN_BUTTON ( window - > CacheTimeoutSpin ) , atof ( timeout ) ) ;
}
char * proxy = config ( REPOPUBLIC_CACHE_full ( " http_proxy " ) ) ;
if ( ! yon_char_is_empty ( proxy ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( window - > ProxyCheck ) , 1 ) ;
gtk_entry_set_text ( GTK_ENTRY ( window - > ProxyEntry ) , proxy ) ;
}
char * agent = config ( REPOPUBLIC_CACHE_full ( " user_agent " ) ) ;
if ( ! yon_char_is_empty ( agent ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( window - > AgentDefaultCheck ) , 0 ) ;
gtk_entry_set_text ( GTK_ENTRY ( window - > AgentEntry ) , agent ) ;
}
char * cron = config ( REPOPUBLIC_CACHE_full ( " prefetch.cron " ) ) ;
if ( ! yon_char_is_empty ( cron ) ) {
gtk_entry_set_text ( GTK_ENTRY ( window - > CronEntry ) , cron ) ;
}
char * delay = config ( REPOPUBLIC_CACHE_full ( " prefetch.ttl_unaccessed_in_days " ) ) ;
if ( ! yon_char_is_empty ( delay ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( window - > UpdatesDelayDefaultCheck ) , 0 ) ;
gtk_spin_button_set_value ( GTK_SPIN_BUTTON ( window - > UpdatesDelaySpin ) , atof ( delay ) ) ;
}
char * request_delay = config ( REPOPUBLIC_CACHE_full ( " prefetch.ttl_unupdated_in_days " ) ) ;
if ( ! yon_char_is_empty ( request_delay ) ) {
gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON ( window - > UpdatesRequestDelayDefaultCheck ) , 0 ) ;
gtk_spin_button_set_value ( GTK_SPIN_BUTTON ( window - > UpdatesRequestDelaySpin ) , atof ( request_delay ) ) ;
}
gtk_widget_show ( window - > Window ) ;
}
@ -607,8 +940,41 @@ void on_repo_accept_clicked(GtkWidget *, dictionary *dict){
return ;
}
char * sign_level_package = gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( window - > RepoSignCheckCombo ) ) ;
char * sign_level_condiition = gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( window - > RepoSignConditionCombo ) ) ;
char * sign_level_package = " " ;
char * sign_level_condiition = " " ;
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > NeverRadio ) ) ) {
sign_level_package = " Never " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > OptionalRadio ) ) ) {
sign_level_package = " Optional " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > RequiredRadio ) ) ) {
sign_level_package = " Required " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > TrustedOnlyRadio ) ) ) {
sign_level_package = " TrustedOnly " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > TrustAllRadio ) ) ) {
sign_level_package = " TrustAll " ;
}
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > PackageNeverRadio ) ) ) {
sign_level_condiition = " PackageNever " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > DatabaseNeverRadio ) ) ) {
sign_level_condiition = " DatabaseNever " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > PackageOptionalRadio ) ) ) {
sign_level_condiition = " PackageOptional " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > DatabaseOptionalRadio ) ) ) {
sign_level_condiition = " DatabaseOptional " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > PackageRequiredRadio ) ) ) {
sign_level_condiition = " PackageRequired " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > DatabaseRequiredRadio ) ) ) {
sign_level_condiition = " DatabaseRequired " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > PackageTrustedOnlyRadio ) ) ) {
sign_level_condiition = " PackageTrustedOnly " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > DatabaseTrustedOnlyRadio ) ) ) {
sign_level_condiition = " DatabaseTrustedOnly " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > PackageTrustAllRadio ) ) ) {
sign_level_condiition = " PackageTrustAll " ;
} else if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > DatabaseTrustAllRadio ) ) ) {
sign_level_condiition = " DatabaseTrustAll " ;
}
// int usage_level_default = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageDefaultCheck));
// int usage_level_enable_update = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageEnableUpdateCheck));
@ -633,15 +999,24 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){
web_publication_add_window * window = yon_dictionary_get_data ( dict - > first - > next , web_publication_add_window * ) ;
int enabled = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > EnablePublishCheck ) ) ;
// char *path = (char*)gtk_entry_get_text(GTK_ENTRY(window->PathEntry));
int port_enabled = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > PortCheck ) ) ;
char * port = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > PortEntry ) ) ;
int enable_browser = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > EnableWebFileBrowserCheck ) ) ;
int username_check = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > UsernameCheck ) ) ;
char * username = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > UsernameEntry ) ) ;
char * user_password = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > UserPasswordEntry ) ) ;
char * encryption = ( char * ) gtk_combo_box_get_active_id ( GTK_COMBO_BOX ( window - > UserPasswordCombo ) ) ;
char * user_password = yon_char_new ( ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > UserPasswordEntry ) ) ) ;
char * encryption = user_password [ 5 ] = = ' | ' ? yon_char_divide ( user_password , 6 ) : NULL ;
if ( username_check & & yon_char_is_empty ( username ) ) {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , EMPTY_IMPORTANT_LABEL , 5 , BACKGROUND_IMAGE_FAIL_TYPE ) ;
yon_ubl_status_highlight_incorrect ( window - > UsernameEntry ) ;
return ;
}
if ( username_check & & gtk_combo_box_get_active ( GTK_COMBO_BOX ( window - > UserPasswordCombo ) ) & & yon_char_is_empty ( user_password ) ) {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , EMPTY_IMPORTANT_LABEL , 5 , BACKGROUND_IMAGE_FAIL_TYPE ) ;
yon_ubl_status_highlight_incorrect ( window - > UserPasswordEntry ) ;
return ;
}
char * name = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > PathEntry ) ) ;
char * full_name = " " ;
@ -663,14 +1038,16 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){
}
if ( overall = = disabled ) {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , NO_SHARED_REPOS_LABEL , 5 , BACKGROUND_IMAGE_FAIL_TYPE ) ;
yon_ubl_status_highlight_incorrect ( window - > PathEntry ) ;
return ;
}
char * final_name = yon_char_is_empty ( full_name ) | | ! disabled ? name : yon_char_unite ( name , " : " , full_name , NULL ) ;
char * final = yon_char_unite ( enabled ? " enable " : " disable " , " : " , enable_browser ? " listing " : " " , " : " , port_enabled ? port : " " , " : " , username_check ? username : " " , " : " , username_check ? yon_char_is_empty ( encryption ) ? user_password : encryption : " " , " : " , username_check ? ! yon_char_is_empty ( encryption ) ? user_password : " " : " " , NULL ) ;
if ( ! yon_char_is_empty ( window - > name ) & & strcmp ( final_name , window - > name ) ) {
yon_config_remove_by_key ( REPOPUBLIC_WEB_command ( window - > name ) ) ;
}
} else {
yon_config_register ( REPOPUBLIC_WEB_full ( final_name ) , REPOPUBLIC_WEB_command ( final_name ) , final ) ;
}
yon_interface_update ( widgets ) ;
gtk_widget_destroy ( window - > Window ) ;
}
@ -698,6 +1075,105 @@ void on_mirror_accept(GtkWidget *,dictionary *dict){
gtk_widget_destroy ( window - > Window ) ;
}
void on_mirror_configure_accept ( GtkWidget * , dictionary * dict ) {
// main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
mirror_configure_window * window = yon_dictionary_get_data ( dict - > first - > next , mirror_configure_window * ) ;
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > PortDefaultCheck ) ) ) {
yon_config_remove_by_key ( REPOPUBLIC_CACHE_full ( " port " ) ) ;
} else {
long port = gtk_spin_button_get_value ( GTK_SPIN_BUTTON ( window - > PortSpin ) ) ;
yon_config_register ( REPOPUBLIC_CACHE_full ( " port " ) , REPOPUBLIC_CACHE_full_command ( " port " ) , yon_char_from_long ( port ) ) ;
}
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > CacheDefaultCheck ) ) ) {
yon_config_remove_by_key ( REPOPUBLIC_CACHE_full ( " cache_dir " ) ) ;
} else {
char * cache_path = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > CacheEntry ) ) ;
if ( ! yon_char_is_empty ( cache_path ) ) {
yon_config_register ( REPOPUBLIC_CACHE_full ( " cache_dir " ) , REPOPUBLIC_CACHE_full_command ( " cache_dir " ) , cache_path ) ;
} else {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , EMPTY_IMPORTANT_LABEL , 5 , BACKGROUND_IMAGE_FAIL_TYPE ) ;
yon_ubl_status_highlight_incorrect ( window - > CacheEntry ) ;
return ;
}
}
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > InactivityDurationDefaultCheck ) ) ) {
yon_config_remove_by_key ( REPOPUBLIC_CACHE_full ( " purge_files_after " ) ) ;
} else {
long duration_inactivity = gtk_spin_button_get_value ( GTK_SPIN_BUTTON ( window - > InactivityDurationSpin ) ) ;
char * duration_str = yon_char_from_long ( duration_inactivity ) ;
yon_config_register ( REPOPUBLIC_CACHE_full ( " purge_files_after " ) , REPOPUBLIC_CACHE_full_command ( " purge_files_after " ) , duration_str ) ;
}
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > CacheTimeoutDefaultCheck ) ) ) {
yon_config_remove_by_key ( REPOPUBLIC_CACHE_full ( " download_timeout " ) ) ;
} else {
long duration_inactivity = gtk_spin_button_get_value ( GTK_SPIN_BUTTON ( window - > CacheTimeoutSpin ) ) ;
char * duration_str = yon_char_from_long ( duration_inactivity ) ;
yon_config_register ( REPOPUBLIC_CACHE_full ( " download_timeout " ) , REPOPUBLIC_CACHE_full_command ( " download_timeout " ) , duration_str ) ;
}
if ( ! gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > ProxyCheck ) ) ) {
yon_config_remove_by_key ( REPOPUBLIC_CACHE_full ( " http_proxy " ) ) ;
} else {
char * proxy = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > ProxyEntry ) ) ;
yon_config_register ( REPOPUBLIC_CACHE_full ( " http_proxy " ) , REPOPUBLIC_CACHE_full_command ( " http_proxy " ) , proxy ) ;
}
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > AgentDefaultCheck ) ) ) {
yon_config_remove_by_key ( REPOPUBLIC_CACHE_full ( " user_agent " ) ) ;
} else {
char * agent = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > AgentEntry ) ) ;
yon_config_register ( REPOPUBLIC_CACHE_full ( " user_agent " ) , REPOPUBLIC_CACHE_full_command ( " user_agent " ) , agent ) ;
}
char * expression = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > CronEntry ) ) ;
if ( ! yon_char_is_empty ( expression ) ) {
yon_config_register ( REPOPUBLIC_CACHE_full ( " prefetch.cron " ) , REPOPUBLIC_CACHE_full_command ( " prefetch.cron " ) , expression ) ;
} else {
yon_config_remove_by_key ( REPOPUBLIC_CACHE_full ( " prefetch.cron " ) ) ;
}
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > UpdatesDelayDefaultCheck ) ) ) {
yon_config_remove_by_key ( REPOPUBLIC_CACHE_full ( " prefetch.ttl_unaccessed_in_days " ) ) ;
} else {
char * agent = yon_char_from_long ( gtk_spin_button_get_value ( GTK_SPIN_BUTTON ( window - > UpdatesDelaySpin ) ) ) ;
yon_config_register ( REPOPUBLIC_CACHE_full ( " prefetch.ttl_unaccessed_in_days " ) , REPOPUBLIC_CACHE_full_command ( " prefetch.ttl_unaccessed_in_days " ) , agent ) ;
}
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > UpdatesRequestDelayDefaultCheck ) ) ) {
yon_config_remove_by_key ( REPOPUBLIC_CACHE_full ( " prefetch.ttl_unupdated_in_days " ) ) ;
} else {
char * agent = yon_char_from_long ( gtk_spin_button_get_value ( GTK_SPIN_BUTTON ( window - > UpdatesRequestDelaySpin ) ) ) ;
yon_config_register ( REPOPUBLIC_CACHE_full ( " prefetch.ttl_unupdated_in_days " ) , REPOPUBLIC_CACHE_full_command ( " prefetch.ttl_unupdated_in_days " ) , agent ) ;
}
gtk_widget_destroy ( window - > Window ) ;
}
void on_password_accept ( GtkWidget * , dictionary * dict ) {
password_window * window = yon_dictionary_get_data ( dict - > first , password_window * ) ;
GtkWidget * target = yon_dictionary_get_data ( dict - > first - > next , GtkWidget * ) ;
if ( gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON ( window - > NoEncriptionCheck ) ) ) {
char * hash = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > PasswordHashEntry ) ) ;
if ( yon_char_is_empty ( hash ) ) {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , EMPTY_IMPORTANT_LABEL , 5 , BACKGROUND_IMAGE_FAIL_TYPE ) ;
yon_ubl_status_highlight_incorrect ( window - > PasswordHashEntry ) ;
return ;
}
gtk_entry_set_text ( GTK_ENTRY ( target ) , hash ) ;
} else {
char * password = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > PasswordEntry ) ) ;
char * password_check = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > RepeatPasswordEntry ) ) ;
if ( strcmp ( password , password_check ) ) {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , PASSWORD_MISMATCH_LABEL , 5 , BACKGROUND_IMAGE_FAIL_TYPE ) ;
yon_ubl_status_highlight_incorrect ( window - > PasswordEntry ) ;
yon_ubl_status_highlight_incorrect ( window - > RepeatPasswordEntry ) ;
return ;
}
char * encryption = ( char * ) gtk_combo_box_get_active_id ( GTK_COMBO_BOX ( window - > EncryptionCombo ) ) ;
char * final_text = yon_char_unite ( encryption , " | " , password , NULL ) ;
gtk_entry_set_text ( GTK_ENTRY ( target ) , final_text ) ;
}
gtk_widget_destroy ( window - > Window ) ;
}
void on_mirror_path_removed ( GtkWidget * , GtkWidget * target ) {
if ( GTK_IS_WIDGET ( target ) ) {
gtk_widget_destroy ( target ) ;
@ -766,6 +1242,25 @@ void on_file_chooser_open(GtkWidget *, GtkEntry *target){
gtk_widget_destroy ( dialog ) ;
}
password_window * yon_password_window_new ( ) {
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_password_path ) ;
password_window * window = malloc ( sizeof ( password_window ) ) ;
window - > Window = yon_gtk_builder_get_widget ( builder , " PasswordWindow " ) ;
window - > HeadLabel = yon_gtk_builder_get_widget ( builder , " userTitleNameLabel " ) ;
window - > StatusBox = yon_gtk_builder_get_widget ( builder , " StatusBox " ) ;
window - > PasswordEntry = yon_gtk_builder_get_widget ( builder , " PasswordEntry " ) ;
window - > RepeatPasswordEntry = yon_gtk_builder_get_widget ( builder , " RepeatPasswordEntry " ) ;
window - > EncryptionCombo = yon_gtk_builder_get_widget ( builder , " EncryptionCombo " ) ;
window - > NoEncriptionCheck = yon_gtk_builder_get_widget ( builder , " NoEncriptionCheck " ) ;
window - > PasswordHashEntry = yon_gtk_builder_get_widget ( builder , " PasswordHashEntry " ) ;
window - > UserCancelButton = yon_gtk_builder_get_widget ( builder , " UserCancelButton " ) ;
window - > AcceptButton = yon_gtk_builder_get_widget ( builder , " UserOkButton " ) ;
g_signal_connect ( G_OBJECT ( window - > UserCancelButton ) , " clicked " , G_CALLBACK ( on_subwindow_close ) , NULL ) ;
g_signal_connect ( G_OBJECT ( window - > NoEncriptionCheck ) , " toggled " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button_inversed ) , window - > PasswordHashEntry ) ;
gtk_widget_show ( window - > Window ) ;
return window ;
}
repo_add_window * yon_repo_add_window_new ( ) {
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_repo_add_path ) ;
repo_add_window * window = malloc ( sizeof ( repo_add_window ) ) ;
@ -788,6 +1283,21 @@ repo_add_window *yon_repo_add_window_new(){
window - > HeadLabel = yon_gtk_builder_get_widget ( builder , " HeadLabel " ) ;
window - > SourceBox = yon_gtk_builder_get_widget ( builder , " SourceBox " ) ;
window - > RepoSourceAddButton = yon_gtk_builder_get_widget ( builder , " RepoSourceAddButton " ) ;
window - > NeverRadio = yon_gtk_builder_get_widget ( builder , " NeverRadio " ) ;
window - > OptionalRadio = yon_gtk_builder_get_widget ( builder , " OptionalRadio " ) ;
window - > RequiredRadio = yon_gtk_builder_get_widget ( builder , " RequiredRadio " ) ;
window - > TrustedOnlyRadio = yon_gtk_builder_get_widget ( builder , " TrustedOnlyRadio " ) ;
window - > TrustAllRadio = yon_gtk_builder_get_widget ( builder , " TrustAllRadio " ) ;
window - > PackageNeverRadio = yon_gtk_builder_get_widget ( builder , " PackageNeverRadio " ) ;
window - > DatabaseNeverRadio = yon_gtk_builder_get_widget ( builder , " DatabaseNeverRadio " ) ;
window - > PackageOptionalRadio = yon_gtk_builder_get_widget ( builder , " PackageOptionalRadio " ) ;
window - > DatabaseOptionalRadio = yon_gtk_builder_get_widget ( builder , " DatabaseOptionalRadio " ) ;
window - > PackageRequiredRadio = yon_gtk_builder_get_widget ( builder , " PackageRequiredRadio " ) ;
window - > DatabaseRequiredRadio = yon_gtk_builder_get_widget ( builder , " DatabaseRequiredRadio " ) ;
window - > PackageTrustedOnlyRadio = yon_gtk_builder_get_widget ( builder , " PackageTrustedOnlyRadio " ) ;
window - > DatabaseTrustedOnlyRadio = yon_gtk_builder_get_widget ( builder , " DatabaseTrustedOnlyRadio " ) ;
window - > PackageTrustAllRadio = yon_gtk_builder_get_widget ( builder , " PackageTrustAllRadio " ) ;
window - > DatabaseTrustAllRadio = yon_gtk_builder_get_widget ( builder , " DatabaseTrustAllRadio " ) ;
window - > name = NULL ;
g_signal_connect ( G_OBJECT ( window - > RepoSourceButton ) , " clicked " , G_CALLBACK ( on_file_chooser_open ) , window - > RepoSourceEntry ) ;
@ -818,14 +1328,20 @@ web_publication_add_window *yon_web_publication_add_window_new(){
window - > AcceptButton = yon_gtk_builder_get_widget ( builder , " AcceptButton " ) ;
window - > CancelButton = yon_gtk_builder_get_widget ( builder , " CancelButton " ) ;
window - > HeadLabel = yon_gtk_builder_get_widget ( builder , " HeadLabel " ) ;
window - > PasswordButton = yon_gtk_builder_get_widget ( builder , " PasswordButton " ) ;
window - > list = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " liststore1 " ) ) ;
window - > SelectionCellRenderer = GTK_CELL_RENDERER ( gtk_builder_get_object ( builder , " SelectionCellRenderer " ) ) ;
yon_gtk_entry_set_password_visibility_icon ( GTK_ENTRY ( window - > UserPasswordEntry ) ) ;
window - > name = NULL ;
g_signal_connect ( G_OBJECT ( window - > SelectionCellRenderer ) , " toggled " , G_CALLBACK ( on_cell_renderer_toggle_toggled ) , window - > RepositoriesTree ) ;
g_signal_connect ( G_OBJECT ( window - > PathButton ) , " clicked " , G_CALLBACK ( on_file_chooser_open ) , window - > PathEntry ) ;
g_signal_connect ( G_OBJECT ( window - > PathEntry ) , " changed " , G_CALLBACK ( on_web_publish_path_changed ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > CancelButton ) , " clicked " , G_CALLBACK ( on_subwindow_close ) , NULL ) ;
g_signal_connect ( G_OBJECT ( window - > PasswordButton ) , " clicked " , G_CALLBACK ( on_password_open ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > UsernameCheck ) , " toggled " , G_CALLBACK ( on_web_user_check ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > UserPasswordCombo ) , " changed " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_combo_box_inversed ) , window - > PasswordButton ) ;
g_signal_connect ( G_OBJECT ( window - > UserPasswordCombo ) , " changed " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_combo_box_inversed ) , window - > UserPasswordEntry ) ;
gtk_widget_show ( window - > Window ) ;
return window ;
@ -840,25 +1356,34 @@ mirror_configure_window *yon_mirror_configure_window_new(){
window - > CancelButton = yon_gtk_builder_get_widget ( builder , " CancelButton " ) ;
window - > HeadLabel = yon_gtk_builder_get_widget ( builder , " HeadLabel " ) ;
window - > PortDefaultCheck = yon_gtk_builder_get_widget ( builder , " PortDefaultCheck " ) ;
window - > Port Entry = yon_gtk_builder_get_widget ( builder , " Port Entry " ) ;
window - > Port Spin = yon_gtk_builder_get_widget ( builder , " Port Spin " ) ;
window - > CacheDefaultCheck = yon_gtk_builder_get_widget ( builder , " CacheDefaultCheck " ) ;
window - > CacheEntry = yon_gtk_builder_get_widget ( builder , " CacheEntry " ) ;
window - > CacheButton = yon_gtk_builder_get_widget ( builder , " CacheButton " ) ;
window - > InactivityDurationDefaultCheck = yon_gtk_builder_get_widget ( builder , " InactivityDurationDefaultCheck " ) ;
window - > InactivityDuration Entry = yon_gtk_builder_get_widget ( builder , " InactivityDuration Entry " ) ;
window - > InactivityDuration Spin = yon_gtk_builder_get_widget ( builder , " InactivityDuration Spin " ) ;
window - > CacheTimeoutDefaultCheck = yon_gtk_builder_get_widget ( builder , " CacheTimeoutDefaultCheck " ) ;
window - > CacheTimeout Entry = yon_gtk_builder_get_widget ( builder , " CacheTimeout Entry " ) ;
window - > CacheTimeout Spin = yon_gtk_builder_get_widget ( builder , " CacheTimeout Spin " ) ;
window - > ProxyCheck = yon_gtk_builder_get_widget ( builder , " ProxyCheck " ) ;
window - > ProxyEntry = yon_gtk_builder_get_widget ( builder , " ProxyEntry " ) ;
window - > AgentDefaultCheck = yon_gtk_builder_get_widget ( builder , " AgentDefaultCheck " ) ;
window - > AgentEntry = yon_gtk_builder_get_widget ( builder , " AgentEntry " ) ;
window - > CronEntry = yon_gtk_builder_get_widget ( builder , " CronEntry " ) ;
window - > UpdatesDelayDefaultCheck = yon_gtk_builder_get_widget ( builder , " UpdatesDelayDefaultCheck " ) ;
window - > UpdatesDelay Entry = yon_gtk_builder_get_widget ( builder , " UpdatesDelay Entry " ) ;
window - > UpdatesDelay Spin = yon_gtk_builder_get_widget ( builder , " UpdatesDelay Spin " ) ;
window - > UpdatesRequestDelayDefaultCheck = yon_gtk_builder_get_widget ( builder , " UpdatesRequestDelayDefaultCheck " ) ;
window - > UpdatesRequestDelay Entry = yon_gtk_builder_get_widget ( builder , " UpdatesRequestDelay Entry " ) ;
window - > UpdatesRequestDelay Spin = yon_gtk_builder_get_widget ( builder , " UpdatesRequestDelay Spin " ) ;
g_signal_connect ( G_OBJECT ( window - > CancelButton ) , " clicked " , G_CALLBACK ( on_subwindow_close ) , NULL ) ;
g_signal_connect ( G_OBJECT ( window - > PortDefaultCheck ) , " clicked " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button_inversed ) , window - > PortSpin ) ;
g_signal_connect ( G_OBJECT ( window - > CacheDefaultCheck ) , " clicked " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button_inversed ) , window - > CacheEntry ) ;
g_signal_connect ( G_OBJECT ( window - > CacheDefaultCheck ) , " clicked " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button_inversed ) , window - > CacheButton ) ;
g_signal_connect ( G_OBJECT ( window - > InactivityDurationDefaultCheck ) , " clicked " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button_inversed ) , window - > InactivityDurationSpin ) ;
g_signal_connect ( G_OBJECT ( window - > CacheTimeoutDefaultCheck ) , " clicked " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button_inversed ) , window - > CacheTimeoutSpin ) ;
g_signal_connect ( G_OBJECT ( window - > ProxyCheck ) , " clicked " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button ) , window - > ProxyEntry ) ;
g_signal_connect ( G_OBJECT ( window - > AgentDefaultCheck ) , " clicked " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button_inversed ) , window - > AgentEntry ) ;
g_signal_connect ( G_OBJECT ( window - > UpdatesDelayDefaultCheck ) , " clicked " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button_inversed ) , window - > UpdatesDelaySpin ) ;
g_signal_connect ( G_OBJECT ( window - > UpdatesRequestDelayDefaultCheck ) , " clicked " , G_CALLBACK ( yon_gtk_widget_set_sensitive_from_toggle_button_inversed ) , window - > UpdatesRequestDelaySpin ) ;
gtk_widget_show ( window - > Window ) ;
return window ;
@ -899,6 +1424,16 @@ void on_cell_renderer_toggle_toggled(GtkWidget *, gchar* path, GtkWidget *table)
}
}
void on_column_resize ( GtkTreeViewColumn * , GParamSpec * , main_window * widgets ) {
GList * list = gtk_tree_view_get_columns ( GTK_TREE_VIEW ( widgets - > WebPublicationTree ) ) ;
int width_configuration = gtk_tree_view_column_get_width ( g_list_nth_data ( list , 0 ) ) + gtk_tree_view_column_get_width ( g_list_nth_data ( list , 1 ) ) + gtk_tree_view_column_get_width ( g_list_nth_data ( list , 2 ) ) + gtk_tree_view_column_get_width ( g_list_nth_data ( list , 3 ) ) + gtk_tree_view_column_get_width ( g_list_nth_data ( list , 4 ) ) ;
// int width_system = gtk_tree_view_column_get_width(g_list_nth_data(list,5))+gtk_tree_view_column_get_width(g_list_nth_data(list,6))+gtk_tree_view_column_get_width(g_list_nth_data(list,7));
g_list_free ( list ) ;
gtk_tree_view_column_set_fixed_width ( gtk_tree_view_get_column ( GTK_TREE_VIEW ( widgets - > WebPublicationUpperTree ) , 0 ) , width_configuration ) ;
// gtk_tree_view_column_set_fixed_width(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->WebPublicationUpperTree),1),width_system);
}
/**yon_main_window_complete(main_window *widgets)
* [ EN ]
*
@ -920,6 +1455,7 @@ void yon_main_window_complete(main_window *widgets){
widgets - > UpdateModeCombo = yon_gtk_builder_get_widget ( builder , " UpdateModeCombo " ) ;
widgets - > UpdateIntervalDefaultCheck = yon_gtk_builder_get_widget ( builder , " UpdateIntervalDefaultCheck " ) ;
widgets - > UpdateIntervalSpin = yon_gtk_builder_get_widget ( builder , " UpdateIntervalSpin " ) ;
widgets - > UpdateToggleCell = GTK_CELL_RENDERER ( gtk_builder_get_object ( builder , " UpdateToggleCell " ) ) ;
widgets - > UpdateIntervalCombo = yon_gtk_builder_get_widget ( builder , " UpdateIntervalCombo " ) ;
widgets - > UpdateRepoListCombo = yon_gtk_builder_get_widget ( builder , " UpdateRepoListCombo " ) ;
widgets - > UpdateRepoTree = yon_gtk_builder_get_widget ( builder , " UpdateRepoTree " ) ;
@ -936,6 +1472,8 @@ void yon_main_window_complete(main_window *widgets){
widgets - > RecieveDBFromNetCheck = yon_gtk_builder_get_widget ( builder , " RecieveDBFromNetCheck " ) ;
widgets - > PublicationTree = yon_gtk_builder_get_widget ( builder , " PublicationTree " ) ;
widgets - > PublicationUpdateButton = yon_gtk_builder_get_widget ( builder , " PublicationUpdateButton " ) ;
widgets - > PublicationToggleCell = GTK_CELL_RENDERER ( gtk_builder_get_object ( builder , " PublicationToggleCell " ) ) ;
widgets - > PublicationCombo = yon_gtk_builder_get_widget ( builder , " PublicationCombo " ) ;
widgets - > WebPublicationUpdateButton = yon_gtk_builder_get_widget ( builder , " WebPublicationUpdateButton " ) ;
widgets - > WebPublicationAddButton = yon_gtk_builder_get_widget ( builder , " WebPublicationAddButton " ) ;
widgets - > WebPublicationEditButton = yon_gtk_builder_get_widget ( builder , " WebPublicationEditButton " ) ;
@ -948,6 +1486,9 @@ void yon_main_window_complete(main_window *widgets){
widgets - > MirrorEditButton = yon_gtk_builder_get_widget ( builder , " MirrorEditButton " ) ;
widgets - > MirrorRemoveButton = yon_gtk_builder_get_widget ( builder , " MirrorRemoveButton " ) ;
widgets - > MirrorConfigureButton = yon_gtk_builder_get_widget ( builder , " MirrorConfigureButton " ) ;
widgets - > BootCheck = yon_gtk_builder_get_widget ( builder , " BootCheck " ) ;
widgets - > DateEntry = yon_gtk_builder_get_widget ( builder , " DateEntry " ) ;
widgets - > WebPublicationUpperTree = yon_gtk_builder_get_widget ( builder , " WebPublicationUpperTree " ) ;
widgets - > UpdateRepoList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " UpdateRepoList " ) ) ;
widgets - > ReposList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " ReposList " ) ) ;
widgets - > PublicationList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " PublicationList " ) ) ;
@ -969,6 +1510,27 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect ( G_OBJECT ( widgets - > MirrorEditButton ) , " clicked " , G_CALLBACK ( on_mirror_edit ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > WebPublicationEditButton ) , " clicked " , G_CALLBACK ( on_web_publish_edit ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > RepositoriesEditButton ) , " clicked " , G_CALLBACK ( on_repo_edit ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > MirrorConfigureButton ) , " clicked " , G_CALLBACK ( on_mirror_configure ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveMenuItem ) , " activate " , G_CALLBACK ( on_config_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveGlobalMenuItem ) , " activate " , G_CALLBACK ( on_config_global_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveLocalMenuItem ) , " activate " , G_CALLBACK ( on_config_local_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveCustomMenuItem ) , " activate " , G_CALLBACK ( on_config_custom_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadGlobalMenuItem ) , " activate " , G_CALLBACK ( on_config_global_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadLocalMenuItem ) , " activate " , G_CALLBACK ( on_config_local_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadCustomMenuItem ) , " activate " , G_CALLBACK ( on_config_custom_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > UpdateToggleCell ) , " toggled " , G_CALLBACK ( on_toggle_cell_toggled ) , widgets - > UpdateRepoList ) ;
g_signal_connect ( G_OBJECT ( widgets - > PublicationToggleCell ) , " toggled " , G_CALLBACK ( on_toggle_cell_toggled ) , widgets - > PublicationList ) ;
GList * list = gtk_tree_view_get_columns ( GTK_TREE_VIEW ( widgets - > WebPublicationTree ) ) ;
for ( unsigned int i = 0 ; i < g_list_length ( list ) ; i + + ) {
g_signal_connect_after ( G_OBJECT ( g_list_nth_data ( list , i ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
yon_window_config_add_listener ( g_list_nth_data ( list , i ) , yon_char_append ( " UserUnitsColumn " , yon_char_from_int ( i ) ) , " fixed-width " , YON_TYPE_INT ) ;
}
}
{
yon_gtk_tree_view_minimal_fixed_size_set_full ( GTK_TREE_VIEW ( widgets - > MirrorTree ) ) ;
@ -977,8 +1539,10 @@ void yon_main_window_complete(main_window *widgets){
yon_gtk_tree_view_minimal_fixed_size_set_full ( GTK_TREE_VIEW ( widgets - > RepositoriesTree ) ) ;
yon_gtk_tree_view_minimal_fixed_size_set_full ( GTK_TREE_VIEW ( widgets - > WebPublicationTree ) ) ;
}
yon_root_button_setup ( ( template_main_window * ) widgets , main_config . launch_arguments , main_config . launch_size ) ;
yon_load_proceed ( YON_CONFIG_LOCAL ) ;
yon_interface_update ( widgets ) ;
yon_save_window_set_postsave_function ( on_save_done , widgets ) ;
}
int main ( int argc , char * argv [ ] ) {
@ -993,9 +1557,12 @@ int main(int argc, char *argv[]){
yon_ubl_setup_arguments ( argc , argv , & unfound , & size , NULL ) ;
gtk_init ( & argc , & argv ) ;
template_main_window * widgets = yon_ubl_window_setup ( ) ;
yon_root_button_setup ( widgets , argv , argc ) ;
yon_main_window_complete ( ( main_window * ) widgets ) ;
char * path = yon_char_unite ( yon_ubl_user_get_home_directory ( ) , " /.config/ " , LocaleName , " / " , LocaleName , " .conf " , NULL ) ;
yon_window_config_load ( path ) ;
main_config . launch_arguments = yon_char_parsed_copy ( argv , argc ) ;
main_config . launch_size = argc ;
if ( getuid ( ) ! = 0 ) {
textdomain ( template_ui_LocaleName ) ;
yon_ubl_status_box_render ( ROOT_WARNING_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;