Merge pull request 'Added password entry symbol blocking function' (#52) from YanTheKaller/libublsettings-gtk3:master into master

Reviewed-on: #52
master v1.49
Dmitry Razumov 2 months ago
commit d2d114de99

@ -500,6 +500,11 @@ void yon_on_entry_set_allowed_symbols(GtkEntry *target, char *symbols){
g_signal_connect(G_OBJECT(target),"insert-text",G_CALLBACK(yon_on_insert_allowed_check),symbols);
}
void yon_gtk_entry_allow_password_symbols(GtkEntry *target){
g_return_if_fail(GTK_IS_ENTRY(target));
g_signal_connect(G_OBJECT(target),"insert-text",G_CALLBACK(yon_on_insert_allowed_check),yon_char_new("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!\"#$%&\'()*+,-./;<=>?@[\\]^_`{|}~"));
}
int yon_ip_check(char *ip){
if (!strstr(ip,".")){
int pixmask = atoi(ip);

@ -46,7 +46,7 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi
vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
VtePty *pty = vte_pty_new_sync(VTE_PTY_DEFAULT,NULL,NULL);
vte_terminal_set_pty(VTE_TERMINAL(terminal),pty);
char *install_command=yon_char_unite("tput reset; tput cup 0 0; tput ed; ",command,"; STATUS=$?; stty -echo; unset PS1; exit ${STATUS}","\n",NULL);
char *install_command=yon_char_unite("PS1=\"\";tput reset; tput cup 0 0; tput ed; ",command,"; STATUS=$?; stty -echo; unset PS1; exit ${STATUS}","\n",NULL);
if(endwork_function)
g_signal_connect(G_OBJECT(terminal), "child-exited", G_CALLBACK(endwork_function), endwork_function_argument);
printf("%s\n",install_command);

@ -338,6 +338,44 @@ void yon_combo_box_set_default(GtkComboBoxText *target, char *command, char*(res
g_thread_new("combo_get_default",(GThreadFunc)__yon_combo_set_default,target_struct);
}
void on_widget_changed(GObject* target, GdkEvent*, gpointer user_data){
char *config_parameter = g_object_get_data(target,"config_parameter");
char *get_command = g_object_get_data(target,"get_command");
char *object_property = g_object_get_data(target,"object_property");
GValue value = G_VALUE_INIT;
g_object_get_property(target,object_property,&value);
char *value_str = g_strdup_value_contents(&value);
if (!yon_char_is_empty(value_str)||strcmp(value_str,"[invalid GValue]")){
yon_config_register(config_parameter,get_command,value_str);
}
if (!yon_char_is_empty(value_str)) free(value_str);
}
void yon_gtk_widget_register_parameter(GtkWidget *target, char *config_parameter, char *get_command, char *object_property){
g_return_if_fail(G_IS_OBJECT(target));
char *signal_name = yon_char_unite("notify::",object_property,NULL);
g_object_set_data(G_OBJECT(target),"config_parameter",yon_char_new(config_parameter));
g_object_set_data(G_OBJECT(target),"get_command",yon_char_new(get_command));
g_object_set_data(G_OBJECT(target),"object_property",yon_char_new(object_property));
g_signal_connect(G_OBJECT(target),signal_name,G_CALLBACK(on_widget_changed),NULL);
}
dictionary *__register_widgets = NULL;
void yon_gtk_widget_register_parameter_manual(GtkWidget *target, char *config_parameter, char *get_command, char *object_property){
yon_dictionary_add_or_create_if_exists_with_data(__register_widgets,NULL,target);
g_object_set_data(G_OBJECT(target),"config_parameter",yon_char_new(config_parameter));
g_object_set_data(G_OBJECT(target),"get_command",yon_char_new(get_command));
g_object_set_data(G_OBJECT(target),"object_property",yon_char_new(object_property));
}
void yon_gtk_widget_register_parameter_activate(){
dictionary *cur;
for_dictionaries(cur,__register_widgets){
on_widget_changed(yon_dictionary_get_data(cur,GObject*),NULL,NULL);
}
}
// dictionary *__yon_config_listeners = NULL;
// typedef struct {
// GtkWidget *target;

@ -531,6 +531,8 @@ void yon_on_text_insert_only_digits(GtkEditable *editable, const gchar *text, gi
void yon_gtk_entry_block_restricted_symbols(GtkEntry *target);
void yon_gtk_entry_allow_password_symbols(GtkEntry *target);
void yon_gtk_entry_block_languages(GtkEntry *target);
void yon_gtk_entry_block_symbols(GtkEntry *target, char *symbols);
@ -608,4 +610,7 @@ void yon_combo_box_set_default(GtkComboBoxText *target, char *command, char*(res
int yon_ip_mask_get_bits(char *mask);
int yon_ip_check(char *ip);
void yon_gtk_widget_register_parameter(GtkWidget *target, char *config_parameter, char *get_command, char *object_property);
void yon_gtk_widget_register_parameter_manual(GtkWidget *target, char *config_parameter, char *get_command, char *object_property);
void yon_gtk_widget_register_parameter_activate();
#endif
Loading…
Cancel
Save